Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php eval(gzinflate(base64_decode('FZq3coRaFkU/Z94rAqCxXRPhvfckU3jvPV8/rVBBF7rcc/ZeS63iTP..
Decoded Output download
class licencexeModel extends licencexe { function init() { } function getConfig() { $__cache = &$GLOBALS['licencexe']['config']; if(is_object($__cache)) { return $__cache; } $config = getModel('module')->getModuleConfig('licencexe'); if(!$config->licence_expiration_notice) { $config->licence_expiration_notice = 0; } if(!$config->licence_ad_position) { $config->licence_ad_position = 'top'; } if(!$config->licence_ad_margin) { $config->licence_ad_margin = 0; } if(!$config->licence_ad_padding) { $config->licence_ad_padding = 0; } return $__cache = $config; } function checkModuleInstall() { $__cache = &$GLOBALS['licencexe']['check_install']; if($__cache === true) { return true; } $oModuleModel = getModel('module'); if(!$oModuleModel->getTrigger('moduleObject.proc', 'licencexe', 'controller', 'triggerBeforeModule', 'before')) { return false; } if(!$oModuleModel->getTrigger('display', 'licencexe', 'controller', 'triggerDisplay', 'before')) { return false; } if(!is_dir(LICENCE_XE_DIR_PATH)) { return false; } if(!is_writable('files') || !is_writable(LICENCE_XE_DIR_PATH)) { return false; } $sync_time_file = LICENCE_XE_DIR_PATH . md5(LICENCE_XE_SERVER) . '.tl'; if(file_exists($sync_time_file) && !is_writable($sync_time_file)) { return false; } if(!file_exists('modules/licencexe/licencexe.admin.controller.php')) { return false; } if(!file_exists('modules/licencexe/licencexe.admin.view.php')) { return false; } if(!file_exists('modules/licencexe/licencexe.class.php')) { return false; } if(!file_exists('modules/licencexe/licencexe.controller.php')) { return false; } if(!file_exists('modules/licencexe/licencexe.model.php')) { return false; } if(!method_exists($this, 'getConfig')) return false; if(!method_exists($this, 'checkModuleInstall')) return false; if(!method_exists($this, 'getServerData')) return false; if(!method_exists($this, 'getProductInfo')) return false; if(!method_exists($this, 'getProductList')) return false; if(!method_exists($this, 'getLicenceAdInfo')) return false; if(!method_exists($this, 'getLicenceAdList')) return false; if(!method_exists($this, 'getRandomAd')) return false; if(!method_exists($this, 'getLicenceInfo')) return false; if(!method_exists($this, 'getInstallCheck')) return false; if(!method_exists($this, 'LimitProductUse')) return false; if(!method_exists($this, 'NoticeLicenceExpiration')) return false; if(!method_exists($this, 'insertLicenceAd')) return false; if(!method_exists($this, 'getLicenceFile')) return false; if(!method_exists($this, 'compareVersionList')) return false; if(!method_exists($this, 'versionText')) return false; if(!method_exists($this, 'checkSyncDataTime')) return false; if(!method_exists($this, 'saveSyncDataTime')) return false; if(!method_exists($this, 'parsMarginPadding')) return false; if(!method_exists($this, 'getLicenceUrl')) return false; if(!method_exists($this, 'getLicenceData')) return false; if(!method_exists($this, 'xdate')) return false; if(!method_exists($this, 'encrypt')) return false; if(!method_exists($this, 'decrypt')) return false; $oLicencexeClass = getClass('licencexe'); if(!method_exists($oLicencexeClass, 'moduleInstall')) return false; if(!method_exists($oLicencexeClass, 'checkUpdate')) return false; if(!method_exists($oLicencexeClass, 'moduleUpdate')) return false; if(!method_exists($oLicencexeClass, 'recompileCache')) return false; $oLicencexeAdminView = getAdminView('licencexe'); if(!method_exists($oLicencexeAdminView, 'init')) return false; if(!method_exists($oLicencexeAdminView, 'dispLicencexeAdminList')) return false; if(!method_exists($oLicencexeAdminView, 'dispLicencexeAdminSetting')) return false; $oLicencexeAdminController = getAdminController('licencexe'); if(!method_exists($oLicencexeAdminController, 'procLicencexeAdminAuth')) return false; if(!method_exists($oLicencexeAdminController, 'procLicencexeAdminCancel')) return false; if(!method_exists($oLicencexeAdminController, 'procLicencexeAdminSetting')) return false; $oLicencexeController = getController('licencexe'); if(!method_exists($oLicencexeController, 'procLicencexeAuth')) return false; if(!method_exists($oLicencexeController, 'procLicencexeCancel')) return false; if(!method_exists($oLicencexeController, 'procLicencexeUpdate')) return false; if(!method_exists($oLicencexeController, 'triggerBeforeModule')) return false; if(!method_exists($oLicencexeController, 'triggerDisplay')) return false; if($this->getServerData('P')->licencexe !== true || $this->getServerData('A')->licencexe !== true) { return false; } return $__cache = true; } function getServerData($type, $new_auto = false) { $__cache = &$GLOBALS['licencexe']['server_data'][$type]; if(is_object($__cache) && !$this->checkSyncDataTime($type)) { return $__cache; } if(Context::get('act') == 'getLicenceserverProductList' || Context::get('act') == 'getLicenceserverAdList') { return $__cache = new stdClass; } if(!is_dir(LICENCE_XE_DIR_PATH) || !is_writable('files') || !is_writable(LICENCE_XE_DIR_PATH)) { return $__cache = new stdClass; } $sync_time_file = LICENCE_XE_DIR_PATH . md5(LICENCE_XE_SERVER) . '.tl'; if(file_exists($sync_time_file) && !is_writable($sync_time_file)) { return $__cache = new stdClass; } if($type == 'P') { $act = 'getLicenceserverProductList'; $sign = 'pl'; } else if($type == 'A') { $act = 'getLicenceserverAdList'; $sign = 'al'; } $data_file = LICENCE_XE_DIR_PATH . md5(LICENCE_XE_SERVER) . '.' . $sign; if(!file_exists($data_file) || $this->checkSyncDataTime($type) || $new_auto) { if($buff = $this->getLicenceData($act)) { if($sodata = $this->decrypt($buff, 'e2nf6i1yo')) { $connected = true; } } $requested = true; } $indata = new stdClass; if(isset($connected)) { eval($sodata); } else { if(!file_exists($data_file)) { return $__cache = new stdClass; } if($buff = FileHandler::readFile($data_file)) { if($sodata = $this->decrypt($buff,'e2nf6i1yo')) { eval($sodata); } } } if($indata->licencexe !== true) { return $__cache = new stdClass; } if(isset($requested)) { if(isset($connected)) { FileHandler::writeFile($data_file, $buff); } else { $indata->disconnected = true; } $this->saveSyncDataTime($type); } return $__cache = $indata; } function getProductInfo($product_srl) { $product_info = $this->getServerData('P')->list[$product_srl]; if(!is_object($product_info)) { return new stdClass; } return $product_info; } function getProductList() { $product_list = $this->getServerData('P')->list; if(!is_array($product_list)) { return array(); } return $product_list; } function getLicenceAdInfo($ad_srl) { $ad_info = $this->getServerData('A')->list[$ad_srl]; if(!is_object($ad_info)) { return new stdClass; } return $ad_info; } function getLicenceAdList($manager_srl = null, $mobile = false, $ad_size = null) { $__cache = &$GLOBALS['licencexe']['ad_list'][$manager_srl . ($mobile ? 'Y' : 'N') . $ad_size]; if(is_array($__cache)) { return $__cache; } $ad_list = $this->getServerData('A')->list; if(!is_array($ad_list)) { return array(); } else if(!$manager_srl) { return $ad_list; } $output = array(); foreach($ad_list as $no => $val) { if(($mobile && !$val->mobile) || ($ad_size && $val->ad_size != $ad_size) || ($val->manager_srl != $manager_srl)) { continue; } if($val->exposure) { $exposure = $val->exposure; } else { $exposure = 1; } for($i = 0; $i < $exposure; $i++) { $output[] = $val; } } return $__cache = $output; } function getRandomAd($manager_srl, $mobile = false, $ad_size = null) { $__cache = &$GLOBALS['licencexe']['random_ad'][$manager_srl . ($mobile ? 'Y' : 'N') . $ad_size]; if(!isset($__cache)) { $ad_list = $this->getLicenceAdList($manager_srl, $mobile, $ad_size); if(empty($ad_list) && $ad_size) { $ad_list = $this->getLicenceAdList($manager_srl, $mobile); } if(empty($ad_list) && $mobile) { $ad_list = $this->getLicenceAdList($manager_srl, false, $ad_size); } if(empty($ad_list)) { $ad_list = $this->getLicenceAdList($manager_srl); } if(empty($ad_list)) { return $__cache = new stdClass; } $__cache = $ad_list; } else if(is_array($__cache)) { $ad_list = $__cache; } else { return new stdClass; } $random_key = (count($ad_list) > 1) ? mt_rand(0, count($ad_list) - 1) : 0; return $ad_list[$random_key]; } function getLicenceInfo($app_id, $product_info = null) { $__cache = &$GLOBALS['licencexe']['licence'][$app_id]; $licence_url = $this->getLicenceUrl(false); if(!is_object($__cache)) { $licence_file = $this->getLicenceFile($app_id); if(is_object($product_info) && !file_exists($licence_file) && $product_info->noregist_licence) { if($product_info->valid_date) { $nolicence_file = LICENCE_XE_DIR_PATH . md5($app_id . 'noregist') . '.licence'; if(!file_exists($nolicence_file)) { $expiration_date = date('YmdHis', strtotime(sprintf('+%s day', $product_info->valid_date)) - date('Z')); FileHandler::writeFile($nolicence_file, $this->encrypt($expiration_date, 'e2nf6i1yo')); } else { $expiration_date = $this->decrypt(FileHandler::readFile($nolicence_file), 'e2nf6i1yo'); } if(!$expiration_date) { $expiration_date = 1; } } else { $expiration_date = 0; } $licence = new stdClass; $licence->app_id = $app_id; $licence->licence_name = $product_info->noregist_licence; $licence->licence_url = $licence_url; $licence->advertisement = $product_info->advertisement; $licence->expiration_date = $expiration_date; $licence->status = 'N'; } if(!is_object($licence)) { if(!file_exists($licence_file)) { return $__cache = new stdClass; } if(!$load_licence = $this->decrypt(FileHandler::readFile($licence_file), 'e2nf6i1yo')) { return $__cache = new stdClass; } $licence = new stdClass; eval($load_licence); if(!$licence->auth_date) { return $__cache = new stdClass; } } $__cache = $licence; } else if($__cache->auth_date) { $licence = $__cache; } else { return new stdClass; } if($licence->status != 'N' || $licence->expiration_date && $licence->expiration_date < date('YmdHis', time() - date('Z'))) { return new stdClass; } if($licence_url != $licence->licence_url && (!$licence->allow_domain || !in_array($licence_url, $licence->allow_domain))) { return new stdClass; } return $licence; } function getInstallCheck($product_info) { if(!$product_info->app_type) { return false; } $app_info = new stdClass; switch($product_info->app_type) { case 'A' : $oAddonModel = getAdminModel('addon'); $app_path = $oAddonModel->getAddonPath($product_info->app_name); if(!file_exists($app_path . 'conf/info.xml')) { return false; } $buff = FileHandler::readFile($app_path . $product_info->app_name . '.addon.php'); if($buff && preg_match('/\$GLOBALS([^\;]*)\_\_LICENCE\_([^\;]*)\_\_([^\;]*)\;/i', $buff, $matches)) { eval($matches[0]); if($installed_version = $GLOBALS['__LICENCE_' . $product_info->app_id . '__']) { return $installed_version; } } $app_info = $oAddonModel->getAddonInfoXml($product_info->app_name); break; case 'M' : $app_path = ModuleHandler::getModulePath($product_info->app_name); if(!file_exists($app_path . 'conf/info.xml')) { return false; } getClass($product_info->app_name); if($installed_version = $GLOBALS['__LICENCE_' . $product_info->app_id . '__']) { return $installed_version; } if(defined('__' . $product_info->app_name . '_Module_Version__')) { eval(sprintf('$installed_version = __%s_Module_Version__;', $product_info->app_name)); return $installed_version; } $app_info = getModel('module')->getModuleInfoXml($product_info->app_name); break; case 'W' : $oWidgetModel = getModel('widget'); $app_path = $oWidgetModel->getWidgetPath($product_info->app_name); if(!file_exists($app_path . 'conf/info.xml')) { return false; } $buff = FileHandler::readFile($app_path . $product_info->app_name . '.class.php'); if($buff && preg_match('/\$GLOBALS([^\;]*)\_\_LICENCE\_([^\;]*)\_\_([^\;]*)\;/i', $buff, $matches)) { eval($matches[0]); if($installed_version = $GLOBALS['__LICENCE_' . $product_info->app_id . '__']) { return $installed_version; } } $app_info = $oWidgetModel->getWidgetInfo($product_info->app_name); break; case 'L' : $app_name_id = explode('.', $product_info->app_name); if(count($app_name_id) >= 2) { $type = $app_name_id[0] ? 'M' : 'P'; $app_name = $app_name_id[1]; } else { $type = 'P'; $app_name = $product_info->app_name; } $oLayoutModel = getModel('layout'); $app_path = $oLayoutModel->getLayoutPath($app_name, $type); if(!file_exists($app_path . 'conf/info.xml')) { return false; } $buff = FileHandler::readFile($app_path . 'layout.html'); if($buff && preg_match('/\$GLOBALS([^\;]*)\_\_LICENCE\_([^\;]*)\_\_([^\;]*)\;/i', $buff, $matches)) { eval($matches[0]); if($installed_version = $GLOBALS['__LICENCE_' . $product_info->app_id . '__']) { return $installed_version; } } $app_info = $oLayoutModel->getLayoutInfo($app_name, null, $type); break; case 'S' : $app_name_id = explode('.', $product_info->app_name); if(count($app_name_id) >= 3) { $module = $app_name_id[0]; $type = $app_name_id[1]; $app_name = $app_name_id[2]; } else { $module = $app_name_id[0]; $app_name = $app_name_id[1]; } $module_path = ModuleHandler::getModulePath($module); if($type) { $skin_dir = strtolower($type) . '.skins'; } else { $skin_dir = 'skins'; } $app_path = sprintf('%s%s/%s/', $module_path, $skin_dir, $app_name); if(!file_exists($app_path . 'skin.xml')) { return false; } $buff = FileHandler::readFile($app_path . 'list.html'); if($buff && preg_match('/\$GLOBALS([^\;]*)\_\_LICENCE\_([^\;]*)\_\_([^\;]*)\;/i', $buff, $matches)) { eval($matches[0]); if($installed_version = $GLOBALS['__LICENCE_' . $product_info->app_id . '__']) { return $installed_version; } } $app_info = getModel('module')->loadSkinInfo($module_path, $app_name, $skin_dir); break; } if(($product_info->producer || $product_info->email_address) && $app_info->version && !empty($app_info->author)) { foreach($app_info->author as $key => $val) { if($val->name == $product_info->producer || $val->email_address == $product_info->email_address) { return $app_info->version; } } } return false; } function getInstallCheckByAppid($app_id) { $product_list = $this->getProductList(); foreach($product_list as $key => $val) { if($val->app_id == $app_id) { return $this->getInstallCheck($val); } } return false; } function LimitProductUse($product_info, &$obj, $msg = null) { if(!$product_info->app_type) { return self::makeObject(); } if(!$msg) { $msg = sprintf(Context::getLang('msg_not_auth_licence_app'), $product_info->product_name); } switch($product_info->app_type) { case 'A' : if($obj->act == 'dispAddonAdminIndex') { $html = sprintf('<script>jQuery(function($){$(\'input[type=checkbox][value="%s"]\').each(function(){$(this).click(function(){alert(\'%s\');return false;});});});</script>', $product_info->app_name, Context::getLang($msg)); Context::addHtmlFooter($html); } else if(($obj->act == 'dispAddonAdminSetup' && Context::get('selected_addon') == $product_info->app_name) || ($obj->act == 'procAddonAdminToggleActivate' && Context::get('addon') == $product_info->app_name)) { return self::makeObject(-1, $msg); } $site_srl = Context::get('site_module_info')->site_srl; if(!getAdminModel('addon')->isActivatedAddon($product_info->app_name, $site_srl, 'pc', 'site') && !getAdminModel('addon')->isActivatedAddon($product_info->app_name, $site_srl, 'mobile', 'site')) { return self::makeObject(); } $args = new stdClass; $args->is_used = 'N'; $args->is_used_m = 'N'; $args->fixed = 'N'; $args->addon = $product_info->app_name; $args->site_srl = $site_srl; executeQuery('addon.updateSiteAddon', $args); executeQuery('addon.updateAddon', $args); getController('addon')->makeCacheFile($site_srl, 'pc', 'site'); getController('addon')->makeCacheFile($site_srl, 'mobile', 'site'); break; case 'M' : return self::makeObject(-1, $msg); case 'W' : if(Context::getResponseMethod() != 'HTML') { return self::makeObject(); } $GLOBALS['_xe_loaded_widgets_'][$product_info->app_name] = new obinWidget($msg); if(($obj->act == 'dispWidgetGenerateCode' || $obj->act == 'dispWidgetAdminGenerateCode' || $obj->act == 'dispWidgetGenerateCodeInPage') && Context::get('selected_widget') == $product_info->app_name) { return self::makeObject(-1, $msg); } break; case 'L' : if(Context::getResponseMethod() != 'HTML') { return self::makeObject(); } $app_name_id = explode('.', $product_info->app_name); if(count($app_name_id) >= 2) { $type = $app_name_id[0] ? 'M' : 'P'; $app_name = $app_name_id[1]; } else { $type = 'P'; $app_name = $product_info->app_name; } if(!$ctype = Context::get('type')) { $ctype = 'P'; } $oLayoutModel = getModel('layout'); if($obj->act == 'dispLayoutAdminModify' || $obj->act == 'dispLayoutAdminEdit') { $layout_info = $oLayoutModel->getLayout(Context::get('layout_srl')); if($layout_info->layout == $app_name && $layout_info->layout_type == $type) { return self::makeObject(-1, $msg); } } else if($obj->act == 'dispLayoutAdminInstanceList' && Context::get('layout') == $app_name && $ctype == $type) { return self::makeObject(-1, $msg); } if(Mobile::isFromMobilePhone()) { $layout_srl = $obj->module_info->mlayout_srl; } else { $layout_srl = $obj->module_info->layout_srl; } if($layout_srl == -1) { $viewType = (Mobile::isFromMobilePhone()) ? 'M' : 'P'; $layout_srl = getAdminModel('layout')->getSiteDefaultLayout($viewType, $obj->module_info->site_srl); } $layout_info = $oLayoutModel->getLayout($layout_srl); if(!$layout_info->layout_srl) { return self::makeObject(); } if($layout_info->layout == $app_name && $layout_info->layout_type == $type) { $obj->module_info->mlayout_srl = 0; $obj->module_info->layout_srl = 0; } break; case 'S' : if(Context::getResponseMethod() != 'HTML') { return self::makeObject(); } $app_name_id = explode('.', $product_info->app_name); if(count($app_name_id) >= 3) { $module = $app_name_id[0]; $type = $app_name_id[1] ? 'M' : 'P'; $app_name = $app_name_id[2]; } else { $module = $app_name_id[0]; $type = 'P'; $app_name = $app_name_id[1]; } $oModuleModel = getModel('module'); if(preg_match('/SkinInfo/i', $obj->act)) { $module_info = $oModuleModel->getModuleInfoByModuleSrl(Context::get('module_srl')); $ctype = (preg_match('/mobile/i', $obj->act)) ? 'M' : 'P'; if($ctype == 'M') { $skin = $module_info->mskin; } else { $skin = $module_info->skin; } if($skin == '/USE_DEFAULT/') { $skin = $oModuleModel->getModuleDefaultSkin($module, $type); } if($module_info->module == $module && $skin == $app_name && $type == $ctype) { return self::makeObject(-1, $msg); } } $viewType = (Mobile::isFromMobilePhone()) ? 'M' : 'P'; if(Mobile::isFromMobilePhone()) { $skin = $obj->module_info->mskin; } else { $skin = $obj->module_info->skin; } if($skin == '/USE_DEFAULT/') { $skin = $oModuleModel->getModuleDefaultSkin($module, $viewType); } if($obj->module_info->module == $module && $skin == $app_name && $viewType == $type && !preg_match('/Admin/', $obj->act)) { return self::makeObject(-1, $msg); } break; } return self::makeObject(); } function NoticeLicenceExpiration($product_info) { if(!$notice_day = $this->getConfig()->licence_expiration_notice) { return false; } $notice_file = LICENCE_XE_DIR_PATH . $product_info->app_id . '.en'; $licence_info = $this->getLicenceInfo($product_info->app_id, $product_info); if(!$licence_info->licence_url || !$licence_info->expiration_date) { FileHandler::removeFile($notice_file); return false; } $expiration_date = date('YmdHis', strtotime($licence_info->expiration_date) + date('Z')); $notice_date = date('YmdHis', strtotime(sprintf('%s -%s day', $expiration_date, $notice_day))); if($notice_date < date('YmdHis') && !file_exists($notice_file)) { FileHandler::writeFile($notice_file, '1'); $expiration_day = (strtotime($expiration_date) - time()) / 86400; $expiration_day = intval($expiration_day) ? intval($expiration_day) : round($expiration_day, 1); if($expiration_day < 0) { return false; } $title = sprintf(Context::getLang('licence_expiration_notice_title'), $product_info->product_name, $expiration_day); $content = sprintf(Context::getLang('licence_expiration_notice_content'), $product_info->product_name, $licence_info->licence_name, $this->xdate($licence_info->expiration_date), Context::getRequestUri()); getController('communication')->sendMessage(4, 4, $title, $content, true); $member_config = getModel('module')->getModuleConfig('member'); if($member_config->webmaster_email) { $oMail = new Mail(); $oMail->setTitle($title); $oMail->setContent($content); $oMail->setSender('Licence XE', $member_config->webmaster_email); $oMail->setReceiptor($member_config->webmaster_name ? $member_config->webmaster_name : 'webmaster', $member_config->webmaster_email); $oMail->send(); } } else if(file_exists($notice_file) && $notice_date > date('YmdHis')) { FileHandler::removeFile($notice_file); } } function insertLicenceAd($product_info, &$output) { if($product_info->app_type != 'M' || !$product_info->app_name) { return false; } if(Context::get('act') && preg_match('/^([a-z]+)([A-Z])([a-z0-9\_]+)Admin(.*)$/', Context::get('act'))) { return false; } if(!$module_info = Context::get('module_info')) { $module_info = new stdClass; } if(!preg_match('/^([a-z]+)' . ucwords($product_info->app_name) . '([A-Z])(.*)$/', Context::get('act')) && !in_array($product_info->app_name, array(Context::get('module'), $module_info->module))) { return false; } $licence_info = $this->getLicenceInfo($product_info->app_id, $product_info); if(!$licence_info->licence_url || $licence_info->advertisement != 'Y') { return false; } $mobile = (Mobile::isFromMobilePhone() || Mobile::isMobileCheckByAgent()); $config = $this->getConfig(); if(preg_match_all('!<div([^\>]*)id="licence_advertisement_([^\"]*)"></div>!is', $output, $matches)) { for($i = 0; $i < count($matches[0]); $i++) { if($matches[1][$i]) { $ad = $this->getRandomAd($product_info->manager_srl, $mobile, $matches[1][$i]); } else { $ad = $this->getRandomAd($product_info->manager_srl, $mobile); } $output = str_replace($matches[0][$i], $ad->ad_code, $output); } } else { if($config->licence_ad_position == 'top' && !$mobile) { $width = 468; $height = 60; $ad_size = $width . '*' . $height; $position = 'top:0;left:50%;'.sprintf('width:%spx;height:%spx;margin-left:-%spx;', $width, $height, $width/2); } else if($config->licence_ad_position == 'left' && !$mobile) { $width = 160; $height = 600; $ad_size = $width . '*' . $height; $position = 'left:0;bottom:50%;'.sprintf('width:%spx;height:%spx;margin-bottom:-%spx;', $width, $height, $height/2); } else if($config->licence_ad_position == 'right' && !$mobile) { $width = 160; $height = 600; $ad_size = $width . '*' . $height; $position = 'right:0;bottom:50%;'.sprintf('width:%spx;height:%spx;margin-bottom:-%spx;', $width, $height, $height/2); } else if($config->licence_ad_position == 'bottom' || $mobile) { if($mobile) { $width = 150; $height = 60; } else { $width = 400; $height = 110; } $ad_size = $width . '*' . $height; $position = 'bottom:0;left:50%;'.sprintf('width:%spx;height:%spx;margin-left:-%spx;', $width, $height, $width/2); } $ad_code = $this->getRandomAd($product_info->manager_srl, $mobile, $ad_size)->ad_code; $margin = $this->parsMarginPadding($config->licence_ad_margin)->mpstring; $padding = $this->parsMarginPadding($config->licence_ad_padding)->mpstring; $z_index = '99999999999999999999999999'; Context::addHtmlFooter(sprintf('<div style="position:fixed;z-index:%s;margin:%s;padding:%s;%soverflow:hidden;">%s</div>', $z_index, $margin, $padding, $position, $ad_code)); } return true; } function getLicenceFile($app_id) { return LICENCE_XE_DIR_PATH . md5($app_id) . '.licence'; } function compareVersionList($installed_version, $version_list) { if(empty($version_list)) { return false; } foreach($version_list as $key => $val) { if(preg_match('/^(\<|\>)(.*)$/', $val, $matches)) { if(version_compare($installed_version, $matches[2], $matches[1])) { return true; } } else { if($installed_version == $val) { return true; } } } return false; } function versionText($version_list) { if(empty($version_list)) { return ''; } foreach($version_list as $key => $val) { if(preg_match('/^(\<|\>)(.*)$/', $val, $matches)) { if($matches[1] == '<') { $val = sprintf(Context::getLang('less_than_version'), $matches[2]); } else if($matches[1] == '>') { $val = sprintf(Context::getLang('more_than_version'), $matches[2]); } } $output[$key] = $val; } return implode(', ', $output); } function checkSyncDataTime($type) { $sync_time_file = LICENCE_XE_DIR_PATH . md5(LICENCE_XE_SERVER) . '.tl'; if(!file_exists($sync_time_file)) { return true; } $__cache = &$GLOBALS['licencexe']['sync_time_info']; if(!is_array($__cache)) { if(!($sync_time_info = $this->decrypt(FileHandler::readFile($sync_time_file), 'e2nf6i1yo')) || empty($sync_time_info)) { return true; } $info = explode('|@|', $sync_time_info); if(!isset($info[0]) || !isset($info[1])) { return true; } $__cache = $info; } else { $info = $__cache; } if($type == 'P') { $sync_time = $info[0]; $auto_time = 1; } else if($type == 'A') { $sync_time = $info[1]; $auto_time = 2; } return date('YmdHis', strtotime(sprintf('%s +%s day', $sync_time, $auto_time))) < date('YmdHis'); } function saveSyncDataTime($type) { $sync_time_file = LICENCE_XE_DIR_PATH . md5(LICENCE_XE_SERVER) . '.tl'; if(file_exists($sync_time_file) && $sync_time_info = $this->decrypt(FileHandler::readFile($sync_time_file), 'e2nf6i1yo')) { if(!empty($sync_time_info)) { $info = explode('|@|', $sync_time_info); if($type == 'P') { $info[0] = date('YmdHis'); } else if($type == 'A') { $info[1] = date('YmdHis'); } } } if(!isset($info)) { $info = array(); if($type == 'P') { $info[0] = date('YmdHis'); $info[1] = '0'; } else if($type == 'A') { $info[0] = '0'; $info[1] = date('YmdHis'); } } FileHandler::writeFile($sync_time_file, $this->encrypt(implode('|@|', $info), 'e2nf6i1yo')); } function parsMarginPadding($val, $fillter = true) { $mapa = explode(' ', $val); $pars = new stdClass; $pars->top_value = (int) (str_replace('px', '', $mapa[0]) ? str_replace('px', '', $mapa[0]) : 0); $pars->right_value = (int) (str_replace('px', '', $mapa[1]) ? str_replace('px', '', $mapa[1]) : 0); $pars->bottom_value = (int) (str_replace('px', '', $mapa[2]) ? str_replace('px', '', $mapa[2]) : 0); $pars->left_value = (int) (str_replace('px', '', $mapa[3]) ? str_replace('px', '', $mapa[3]) : 0); if($fillter) { if($pars->top_value && $pars->top_value > 0 && $pars->top_value < 101) { $pars->top = $pars->top_value; if($pars->top != 0) { $pars->top .= 'px'; } } if($pars->right_value && $pars->right_value > 0 && $pars->right_value < 101) { $pars->right = $pars->right_value; if($pars->right != 0) { $pars->right .= 'px'; } } if($pars->bottom_value && $pars->bottom_value > 0 && $pars->bottom_value < 101) { $pars->bottom = $pars->bottom_value; if($pars->bottom != 0) { $pars->bottom .= 'px'; } } if($pars->left_value && $pars->left_value > 0 && $pars->left_value < 101) { $pars->left = $pars->left_value; if($pars->left != 0) { $pars->left .= 'px'; } } if(($pars->top_value && $pars->top_value < 0) || ($pars->right_value && $pars->right_value < 0) || ($pars->bottom_value && $pars->bottom_value < 0) || ($pars->left_value && $pars->left_value < 0)) { $pars->negative = true; } if(($pars->top_value && $pars->top_value > 100) || ($pars->right_value && $pars->right_value > 100) || ($pars->bottom_value && $pars->bottom_value > 100) || ($pars->left_value && $pars->left_value > 100)) { $pars->limit = true; } } else { if($pars->top_value) { $pars->top = $pars->top_value; if($pars->top != 0) { $pars->top .= 'px'; } } if($pars->right_value) { $pars->right = $pars->right_value; if($pars->right != 0) { $pars->right .= 'px'; } } if($pars->bottom_value) { $pars->bottom = $pars->bottom_value; if($pars->bottom != 0) { $pars->bottom .= 'px'; } } if($pars->left_value) { $pars->left = $pars->left_value; if($pars->left != 0) { $pars->left .= 'px'; } } } if($pars->top) { $pars->mpstring = $pars->top; } if($pars->right) { $pars->mpstring .= ' ' . $pars->right; } if($pars->bottom) { $pars->mpstring .= ' ' . $pars->bottom; } if($pars->left) { $pars->mpstring .= ' ' . $pars->left; } if(!$pars->mpstring) { $pars->mpstring = 0; } return $pars; } function getLicenceUrl($check = true) { $__cache = &$GLOBALS['licencexe']['licence_url']; if(isset($__cache)) { return $__cache; } $url_info = parse_url('http://' . $_SERVER['HTTP_HOST']); if($check) { if($default_url = Context::getDefaultUrl()) { $default_info = parse_url($default_url); if($url_info['host'] !== $default_info['host']) { return $__cache = false; } } } return $__cache = $url_info['host']; } function getLicenceData($request, $timeout = 3) { if(!is_array($request)) { $params = array(); $params['act'] = $request; } else { $params = $request; } if(defined('RX_VERSION')) { $params['cms'] = 'rx'; $params['cms_name'] = 'Rhymix'; $params['cms_version'] = RX_VERSION; } else if(defined('__XE__')) { $params['cms'] = 'xe'; $params['cms_name'] = 'XpressEngine'; if(defined('__XE_VERSION__')) { $params['cms_version'] = __XE_VERSION__; } else if(defined('__ZBXE_VERSION__')) { $params['cms_version'] = __ZBXE_VERSION__; } } $params['licencexe_version'] = LICENCE_XE_VERSION; $params['request_url'] = Context::getRequestUri(); $params['module'] = 'licenceserver'; return FileHandler::getRemoteResource(LICENCE_XE_SERVER, null, $timeout, 'POST', 'application/x-www-form-urlencoded', array(), array(), $params, array('ssl_verify_peer' => false)); } function xdate($str, $format = 'Y-m-d H:i:s') { return date($format, strtotime($str) + date('Z') + zgap()); } function encrypt($plain_text, $password, $iv_len = 16) { $plain_text .= ""; $n = strlen($plain_text); if($n % 16) $plain_text .= str_repeat("", 16 - ($n % 16)); $i = 0; while($iv_len-- >0){ $enc_text .= chr(mt_rand() & 0xff); } $iv = substr($password ^ $enc_text, 0, 512); while($i <$n){ $block = substr($plain_text, $i, 16) ^ pack('H*', md5($iv)); $enc_text .= $block; $iv = substr($block . $iv, 0, 512) ^ $password; $i += 16; } return base64_encode($enc_text); } function decrypt($enc_text, $password, $iv_len = 16) { $enc_text = base64_decode($enc_text); $n = strlen($enc_text); $i = $iv_len; $plain_text = ''; $iv = substr($password ^ substr($enc_text, 0, $iv_len), 0, 512); while($i <$n){ $block = substr($enc_text, $i, 16); $plain_text .= $block ^ pack('H*', md5($iv)); $iv = substr($block . $iv, 0, 512) ^ $password; $i += 16; } return preg_replace('/*$/', '', $plain_text); } } class obinWidget extends WidgetHandler { var $msg = null; function obinWidget($msg) { $this->msg = $msg; } function proc() { return sprintf('<div style="padding:10px;border:1px solid #4a505c;">%s</div>', $this->msg); } }
Did this file decode correctly?
Original Code
<?php eval(gzinflate(base64_decode('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')));
Function Calls
| strtr | 1 |
| gzinflate | 4 |
| base64_decode | 5 |
Stats
| MD5 | 51dbce09acd5255657d601b13b737f6b |
| Eval Count | 5 |
| Decode Time | 206 ms |