����JFIF���������
1#@!#!123s
D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
share
/
ai-bolit
/
ai-bolit
/
Filename :
ai-bolit-hoster.php
back
Copy
<?php /////////////////////////////////////////////////////////////////////////// // Version: HOSTER-30.4.9 // Copyright 2018-2020 CloudLinux Software Inc. /////////////////////////////////////////////////////////////////////////// ini_set('memory_limit', '1G'); ini_set('xdebug.max_nesting_level', 500); define('SHORT_PHP_TAG', strtolower(ini_get('short_open_tag')) == 'on' || strtolower(ini_get('short_open_tag')) == 1); ////////////////////////////////////////////////////////////////////////// $vars = new Variables(); $vars->users = new UserList(); $lang = 'RU'; $snum = ''; if (isCli()) { if (strpos($argv[$argc - 1], '--eng') !== false) { $lang = 'EN'; } } else { define('NEED_REPORT', true); } Translate::setLang($lang); // put 1 for expert mode, 0 for basic check and 2 for paranoid mode // установите 1 для режима "Обычное сканирование", 0 для быстрой проверки и 2 для параноидальной проверки (диагностика при лечении сайтов) define('AI_EXPERT_MODE', 2); define('AI_HOSTER', 1); define('CLOUD_ASSIST_LIMIT', 5000); $defaults = [ 'path' => __DIR__, 'scan_all_files' => (AI_EXPERT_MODE == 2), // full scan (rather than just a .js, .php, .html, .htaccess) 'scan_delay' => 0, // delay in file scanning to reduce system load 'max_size_to_scan' => '650K', 'max_size_to_cloudscan' => '650K', 'no_rw_dir' => 0, 'skip_ext' => '', 'skip_cache' => false, 'report_mask' => JSONReport::REPORT_MASK_FULL, 'use_template_in_path' => false, ]; define('DEBUG_MODE', 0); define('DEBUG_PERFORMANCE', 0); define('AIBOLIT_START_TIME', time()); define('START_TIME', microtime(true)); define('DIR_SEPARATOR', '/'); define('AIBOLIT_MAX_NUMBER', 200); define('MIN_FILE_SIZE_FOR_CHECK', 12); //12b - The minimum possible file size for the initial checking define('MAX_FILE_SIZE_FOR_CHECK', 268435456); //256Mb - The maximum possible file size for the initial checking define('DOUBLECHECK_FILE', 'AI-BOLIT-DOUBLECHECK.php'); if ((isset($_SERVER['OS']) && stripos('Win', $_SERVER['OS']) !== false)) { define('DIR_SEPARATOR', '\\'); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (!(function_exists("file_put_contents") && is_callable("file_put_contents"))) { echo "#####################################################\n"; echo "file_put_contents() is disabled. Cannot proceed.\n"; echo "#####################################################\n"; exit; } define('AI_VERSION', 'HOSTER-30.4.9'); //////////////////////////////////////////////////////////////////////////// $g_SpecificExt = false; $g_UpdatedJsonLog = 0; error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING); srand(time()); set_time_limit(0); ini_set('max_execution_time', '900000'); ini_set('realpath_cache_size', '16M'); ini_set('realpath_cache_ttl', '1200'); ini_set('pcre.backtrack_limit', '1000000'); ini_set('pcre.recursion_limit', '200000'); ini_set('pcre.jit', '1'); $filter = new FileFilter(); $finder = new Finder($filter); if (!AI_HOSTER) { $finder->setCollectDoorways(true); $finder->setCollectBigFiles(true); } $finder->setCollectSymlinks(true); if (!function_exists('stripos')) { function stripos($par_Str, $par_Entry, $Offset = 0) { return strpos(strtolower($par_Str), strtolower($par_Entry), $Offset); } } /** * Determine php script is called from the command line interface * @return bool */ function isCli() { return PHP_SAPI == 'cli'; } /** * Print to console * @param mixed $text * @param bool $add_lb Add line break * @return void */ function stdOut($text, $add_lb = true) { if (!isCli()) { return; } if (is_bool($text)) { $text = $text ? 'true' : 'false'; } else if (is_null($text)) { $text = 'null'; } if (!is_scalar($text)) { $text = print_r($text, true); } if ((!BOOL_RESULT) && (!JSON_STDOUT)) { @fwrite(STDOUT, $text . ($add_lb ? "\n" : '')); } } /** * Print progress * * @param int $num Current file * @param $par_File * @param $vars */ function printProgress($num, $par_File, $vars) { global $g_UpdatedJsonLog, $g_AddPrefix, $g_NoPrefix; $total_files = $vars->foundTotalFiles; $elapsed_time = microtime(true) - START_TIME; $percent = number_format($total_files ? $num * 100 / $total_files : 0, 1); $stat = ''; $left_files = 0; $left_time = 0; $elapsed_seconds = 0; if ($elapsed_time >= 1) { $elapsed_seconds = round($elapsed_time, 0); $fs = floor($num / $elapsed_seconds); $left_files = $total_files - $num; if ($fs > 0) { $left_time = ($left_files / $fs); //ceil($left_files / $fs); $stat = ' [Avg: ' . round($fs, 2) . ' files/s' . ($left_time > 0 ? ' Left: ' . AibolitHelpers::seconds2Human($left_time) : '') . '] [Mlw:' . (count($vars->criticalPHP) + count($vars->warningPHP)) . '|' . (count($vars->criticalJS) + count($vars->phishing)) . ']'; } } $l_FN = substr($par_File, -60); $text = "$percent% [$l_FN] $num of {$total_files}. " . $stat; $text = str_pad($text, 160, ' ', STR_PAD_RIGHT); stdOut(str_repeat(chr(8), 160) . $text, false); $data = [ 'self' => __FILE__, 'started' => AIBOLIT_START_TIME, 'updated' => time(), 'progress' => $percent, 'time_elapsed' => $elapsed_seconds, 'time_left' => round($left_time), 'files_left' => $left_files, 'files_total' => $total_files, 'current_file' => substr($g_AddPrefix . str_replace($g_NoPrefix, '', $par_File), -160) ]; if (function_exists('aibolit_onProgressUpdate')) { aibolit_onProgressUpdate($data); } if (defined('PROGRESS_LOG_FILE') && (time() - $g_UpdatedJsonLog > 1)) { if (function_exists('json_encode')) { file_put_contents(PROGRESS_LOG_FILE, json_encode($data)); } else { file_put_contents(PROGRESS_LOG_FILE, serialize($data)); } $g_UpdatedJsonLog = time(); } if (defined('SHARED_MEMORY')) { shmop_write(SHARED_MEMORY, str_repeat("\0", shmop_size(SHARED_MEMORY)), 0); if (function_exists('json_encode')) { shmop_write(SHARED_MEMORY, json_encode($data), 0); } else { shmop_write(SHARED_MEMORY, serialize($data), 0); } } } if (isCli()) { $cli_options = [ 'y' => 'deobfuscate', 'c:' => 'avdb:', 'm:' => 'memory:', 's:' => 'size:', 'a' => 'all', 'd:' => 'delay:', 'l:' => 'list:', 'r:' => 'report:', 'f' => 'fast', 'j:' => 'file:', 'p:' => 'path:', 'q' => 'quite', 'e:' => 'cms:', 'x:' => 'mode:', 'k:' => 'skip:', 'n' => 'sc', 'o:' => 'json_report:', 't:' => 'php_report:', 'z:' => 'progress:', 'g:' => 'handler:', 'b' => 'smart', 'u:' => 'username:', 'h' => 'help' ]; $cli_longopts = [ 'deobfuscate', 'avdb:', 'cmd:', 'noprefix:', 'addprefix:', 'scan:', 'one-pass', 'smart', 'with-2check', 'skip-cache', 'username:', 'no-html', 'json-stdout', 'listing:', 'encode-b64-fn', 'cloud-assist:', 'cloudscan-size:', 'with-suspicious', 'rapid-account-scan:', 'rapid-account-scan-type:', 'extended-report', 'factory-config:', 'shared-mem-progress:', 'create-shared-mem', 'max-size-scan-bytes:', 'input-fn-b64-encoded', 'use-heuristics', 'use-heuristics-suspicious', 'use-heuristics-ignore', 'resident', 'detached:', 'log:', 'log-level:', 'use-template-in-path', 'ignore-list:', 'ignore-filenames:', 'only-filepaths:', 'skip-files-older:', 'skip-root-owner', 'skip-system-owner', 'follow-symlink', 'ignore-quarantine', 'quiet', 'use-filters', 'csv_report:', 'no-users', 'stat', 'skip-imunify360-storage', 'rapid-scan-rescan-frequency:' ]; $cli_longopts = array_merge($cli_longopts, array_values($cli_options)); $reports = []; $options = getopt(implode('', array_keys($cli_options)), $cli_longopts); if (isset($options['h']) || isset($options['help'])) { $memory_limit = ini_get('memory_limit'); echo <<<HELP Revisium AI-Bolit - an Intelligent Malware File Scanner for Websites. Usage: php {$_SERVER['PHP_SELF']} [OPTIONS] [PATH] Current default path is: {$defaults['path']} -j, --file=FILE Full path to single file to check -p, --path=PATH Directory path to scan, by default the file directory is used Current path: {$defaults['path']} --use-template-in-path Use template in path(-p, --path). For example: /home*/*/public_html -p, --listing=FILE Scan files from the listing. E.g. --listing=/tmp/myfilelist.txt Use --listing=stdin to get listing from stdin stream --extended-report To expand the report --ignore-list=FILE This file will be contain the list of ignored files when scanning. The files are base64-encoded and occupy one line for one file. --ignore-filenames=<templates> Skip files with the same name by template. Example: *.php,*abc.abc,config.* --only-filepaths=<templates> Take only the paths matching this pattern. Example: /check/*.php,*.abc --skip-files-older=UNIXTIME If set then we ignore the files created or modified earlier than the specified date --skip-root-owner If set, we skip root's owner files --skip-system-owner If set, we skip system's owner files --skip-imunify360-storage If set, we skip /var/imunify360/cleanup_storage --follow-symlink If set then we follow symlink --ignore-quarantine If set, we ignore the files in the folder ".imunify.quarantined" if root is owner of it -x, --mode=INT Set scan mode. 0 - for basic, 1 - for expert and 2 for paranoic. -k, --skip=jpg,... Skip specific extensions. E.g. --skip=jpg,gif,png,xls,pdf --scan=php,... Scan only specific extensions. E.g. --scan=php,htaccess,js --cloud-assist=TOKEN Enable cloud assisted scanning. Disabled by default. --with-suspicious Detect suspicious files. Disabled by default. --rapid-account-scan=<dir> Enable rapid account scan. Use <dir> for base db dir. Need to set only root permissions(700) --rapid-account-scan-type=<type> Type rapid account scan. <type> = NONE|ALL|SUSPICIOUS, def:SUSPICIOUS --rapid-scan-rescan-frequency=<n> Rescan RX_GOOD files strategy <n> = 1 = ALL|2 = 1/2|3 = 1/3... --use-heuristics Enable heuristic algorithms and mark found files as malicious. --use-heuristics-suspicious Enable heuristic algorithms and mark found files as suspicious. --use-heuristics-ignore Enable heuristic algorithms and skip found files. -r, --report=PATH -o, --json_report=FILE Full path to create json-file with a list of found malware --csv_report=FILE Full path to create csv-file with a list of found malware -l, --list=FILE Full path to create plain text file with a list of found malware --no-html Disable HTML report --no-users Disable users list in report --stat Add stat() data to files in report --encode-b64-fn Encode file names in a report with base64 (for internal usage) --input-fn-b64-encoded Base64 encoded input filenames in listing or stdin --smart Enable smart mode (skip cache files and optimize scanning) -m, --memory=SIZE Maximum amount of memory a script may consume. Current value: $memory_limit Can take shorthand byte values (1M, 1G...) -s, --size=SIZE Scan files are smaller than SIZE with signatures. 0 - All files. Current value: {$defaults['max_size_to_scan']} --max-size-scan-bytes=SIZE Scan first <bytes> for large(can set by --size) files with signatures. --cloudscan-size Scan files are smaller than SIZE with cloud assisted scan. 0 - All files. Current value: {$defaults['max_size_to_cloudscan']} -d, --delay=INT Delay in milliseconds when scanning files to reduce load on the file system (Default: 1) -a, --all Scan all files (by default scan. js,. php,. html,. htaccess) --one-pass Do not calculate remaining time --with-2check Create or use AI-BOLIT-DOUBLECHECK.php file -z, --progress=FILE Runtime progress of scanning, saved to the file, full path required. --shared-mem-progress=<ID> Runtime progress of scanning, saved to the shared memory <ID>. --create-shared-mem Need to create shared memory segment <ID> for --shared-mem-progress. -u, --username=<username> Run scanner with specific user id and group id, e.g. --username=www-data -g, --hander=FILE External php handler for different events, full path to php file required. --cmd="command [args...]" Run command after scanning --help Display this help and exit * Mandatory arguments listed below are required for both full and short way of usage. HELP; exit; } $l_FastCli = false; if ((isset($options['memory']) && !empty($options['memory']) && ($memory = $options['memory'])) || (isset($options['m']) && !empty($options['m']) && ($memory = $options['m']))) { $memory = AibolitHelpers::getBytes($memory); if ($memory > 0) { $defaults['memory_limit'] = $memory; ini_set('memory_limit', $memory); } } if (isset($options['no-users'])) { $vars->users = null; } $avdb = ''; if ((isset($options['avdb']) && !empty($options['avdb']) && ($avdb = $options['avdb'])) || (isset($options['c']) && !empty($options['c']) && ($avdb = $options['c']))) { if (file_exists($avdb)) { $defaults['avdb'] = $avdb; } } if ((isset($options['file']) && !empty($options['file']) && ($file = $options['file']) !== false) || (isset($options['j']) && !empty($options['j']) && ($file = $options['j']) !== false)) { define('SCAN_FILE', $file); } if (isset($options['deobfuscate']) || isset($options['y'])) { define('AI_DEOBFUSCATE', true); } if ((isset($options['list']) && !empty($options['list']) && ($file = $options['list']) !== false) || (isset($options['l']) && !empty($options['l']) && ($file = $options['l']) !== false)) { $reports[PlainReport::class] = $file; } if(isset($options['with-2check'])) { $reports[DoublecheckReport::class] = DOUBLECHECK_FILE; } if ((isset($options['listing']) && !empty($options['listing']) && ($listing = $options['listing']) !== false)) { if (file_exists($listing) && is_file($listing) && is_readable($listing)) { define('LISTING_FILE', $listing); } if ($listing == 'stdin') { define('LISTING_FILE', $listing); } } if ((isset($options['ignore-list']) && !empty($options['ignore-list']) && ($ignore_list_file = $options['ignore-list']) !== false)) { if (file_exists($ignore_list_file) && is_file($ignore_list_file) && is_readable($ignore_list_file)) { $filter->setIgnoreListFile($ignore_list_file); } } if ((isset($options['ignore-filenames']) && !empty($options['ignore-filenames']) && ($ignore_filenames = $options['ignore-filenames']) !== false)) { $filter->setIgnoreFilenames($ignore_filenames); } if ((isset($options['only-filepaths']) && !empty($options['only-filepaths']) && ($only_filepathes = $options['only-filepaths']) !== false)) { $filter->setOnlyFilepaths($only_filepathes); } if ((isset($options['skip-files-older']) && !empty($options['skip-files-older']) && ($skip_files_older = $options['skip-files-older']) !== false)) { $filter->setSkipFilesOlder($skip_files_older); } if (isset($options['skip-imunify360-storage'])) { $filter->setSkipImunifyStorage(); } if (isset($options['skip-root-owner'])) { $filter->setSkipRootOwner(); } if (isset($options['skip-system-owner'])) { $max_min_uid = getMaxMinUid(); $filter->setUidRange($max_min_uid); $filter->setSkipSystemOwner(true); unset($max_min_uid); } if (isset($options['follow-symlink'])) { $filter->setFollowSymlink(); } if (isset($options['ignore-quarantine'])) { $filter->setIgnoreQuarantine(); } if (isset($options['use-filters'])) { $filter->setImunifyFilters(); } if ((isset($options['json_report']) && !empty($options['json_report']) && ($file = $options['json_report']) !== false) || (isset($options['o']) && !empty($options['o']) && ($file = $options['o']) !== false)) { $reports[JSONReport::class] = $file; if (!function_exists('json_encode')) { die('json_encode function is not available. Enable json extension in php.ini'); } } if (isset($options['csv_report']) && !empty($options['csv_report']) && ($file = $options['csv_report']) !== false) { $reports[CSVReport::class] = $file; } if ((isset($options['php_report']) && !empty($options['php_report']) && ($file = $options['php_report']) !== false) || (isset($options['t']) && !empty($options['t']) && ($file = $options['t']) !== false)) { $reports[PHPReport::class] = $file; } $env_log = getenv('AIBOLIT_RESIDENT_LOG'); $env_log_level = getenv('AIBOLIT_RESIDENT_LOG_LEVEL'); if ((isset($options['log']) && !empty($options['log']) && ($log_file = $options['log']) !== false) || ($env_log !== false && ($log_file = $env_log) !== false)) { define('LOG_FILE', $log_file); } if ((isset($options['log-level']) && !empty($options['log-level']) && ($log_level = $options['log-level']) !== false) || ($env_log_level !== false && ($log_level = $env_log_level) !== false)) { define('LOG_LEVEL', $log_level); } if (defined('LOG_FILE') && !defined('LOG_LEVEL')) { define('LOG_LEVEL', 'INFO'); } if ((isset($options['handler']) && !empty($options['handler']) && ($file = $options['handler']) !== false) || (isset($options['g']) && !empty($options['g']) && ($file = $options['g']) !== false)) { if (file_exists($file)) { define('AIBOLIT_EXTERNAL_HANDLER', $file); } } if ((isset($options['progress']) && !empty($options['progress']) && ($file = $options['progress']) !== false) || (isset($options['z']) && !empty($options['z']) && ($file = $options['z']) !== false)) { define('PROGRESS_LOG_FILE', $file); } if (isset($options['create-shared-mem'])) { define('CREATE_SHARED_MEMORY', true); } else { define('CREATE_SHARED_MEMORY', false); } if (isset($options['shared-mem-progress']) && !empty($options['shared-mem-progress']) && ($sh_mem = $options['shared-mem-progress']) !== false) { if (CREATE_SHARED_MEMORY) { @$shid = shmop_open((int)$sh_mem, "n", 0666, 5000); } else { @$shid = shmop_open((int)$sh_mem, "w", 0, 0); } if (!empty($shid)) { define('SHARED_MEMORY', $shid); } else { die('Error with shared-memory.'); } } if ((isset($options['size']) && ($size = $options['size']) !== false) || (isset($options['s']) && ($size = $options['s']) !== false)) { $size = AibolitHelpers::getBytes($size); $defaults['max_size_to_scan'] = $size > 0 ? $size : 0; } if (isset($options['cloudscan-size']) && !empty($options['cloudscan-size']) && ($cloudscan_size = $options['cloudscan-size']) !== false) { $cloudscan_size = AibolitHelpers::getBytes($cloudscan_size); $defaults['max_size_to_cloudscan'] = $cloudscan_size > 0 ? $cloudscan_size : 0; } if (isset($options['max-size-scan-bytes']) && !empty($options['max-size-scan-bytes'])) { define('MAX_SIZE_SCAN_BYTES', AibolitHelpers::getBytes($options['max-size-scan-bytes'])); } else { define('MAX_SIZE_SCAN_BYTES', 0); } if ((isset($options['username']) && !empty($options['username']) && ($username = $options['username']) !== false) || (isset($options['u']) && !empty($options['u']) && ($username = $options['u']) !== false)) { if (!empty($username) && ($info = posix_getpwnam($username)) !== false) { posix_setgid($info['gid']); posix_setuid($info['uid']); $defaults['userid'] = $info['uid']; $defaults['groupid'] = $info['gid']; } else { echo ('Invalid username'); exit(-1); } } if ((isset($options['file']) && !empty($options['file']) && ($file = $options['file']) !== false) || ((isset($options['j']) && !empty($options['j']) && ($file = $options['j']) !== false) && (isset($options['q'])))) { $BOOL_RESULT = true; } if (isset($options['json-stdout'])) { define('JSON_STDOUT', true); } else { define('JSON_STDOUT', false); } if (isset($options['b']) || isset($options['smart'])) { define('SMART_SCAN', 1); } if (isset($options['f'])) { $l_FastCli = true; } if (isset($options['q']) || isset($options['quite']) || isset($options['quiet'])) { $BOOL_RESULT = true; } if (isset($options['x'])) { define('AI_EXPERT', $options['x']); } else if (isset($options['mode'])) { define('AI_EXPERT', $options['mode']); } else { define('AI_EXPERT', AI_EXPERT_MODE); } if (AI_EXPERT < 2) { $g_SpecificExt = true; $defaults['scan_all_files'] = false; } else { $defaults['scan_all_files'] = true; } define('BOOL_RESULT', $BOOL_RESULT); if ((isset($options['delay']) && !empty($options['delay']) && ($delay = $options['delay']) !== false) || (isset($options['d']) && !empty($options['d']) && ($delay = $options['d']) !== false)) { $delay = (int) $delay; if (!($delay < 0)) { $defaults['scan_delay'] = $delay; } } if ((isset($options['skip']) && !empty($options['skip']) && ($ext_list = $options['skip']) !== false) || (isset($options['k']) && !empty($options['k']) && ($ext_list = $options['k']) !== false)) { $defaults['skip_ext'] = $ext_list; } if (isset($options['n']) || isset($options['skip-cache'])) { $defaults['skip_cache'] = true; } if (isset($options['scan'])) { $ext_list = strtolower(trim($options['scan'], " ,\t\n\r\0\x0B")); if ($ext_list != '') { $l_FastCli = true; $filter->setSensitiveExt($ext_list); $g_SensitiveFiles = $filter->getSensitiveExt(); $g_SpecificExt = true; } } if (isset($options['cloud-assist'])) { define('CLOUD_ASSIST_TOKEN', $options['cloud-assist']); } if (isset($options['rapid-account-scan'])) { define('RAPID_ACCOUNT_SCAN', $options['rapid-account-scan']); } if (defined('RAPID_ACCOUNT_SCAN')) { if (isset($options['rapid-account-scan-type'])) { define('RAPID_ACCOUNT_SCAN_TYPE', $options['rapid-account-scan-type']); } else { define('RAPID_ACCOUNT_SCAN_TYPE', 'SUSPICIOUS'); } } if (!(defined('RAPID_ACCOUNT_SCAN') && RAPID_ACCOUNT_SCAN_TYPE === 'SUSPICIOUS')) { $options['rapid-scan-rescan-frequency'] = false; } if (isset($options['with-suspicious'])) { define('AI_EXTRA_WARN', true); } if (isset($options['extended-report'])) { define('EXTENDED_REPORT', true); } if (isset($options['all'])||isset($options['a'])) { $defaults['scan_all_files'] = true; $g_SpecificExt = false; } if (isset($options['cms'])) { define('CMS', $options['cms']); } else if (isset($options['e'])) { define('CMS', $options['e']); } if (!defined('SMART_SCAN')) { define('SMART_SCAN', 0); } if (!defined('AI_DEOBFUSCATE')) { define('AI_DEOBFUSCATE', false); } if (!defined('AI_EXTRA_WARN')) { define('AI_EXTRA_WARN', false); } $l_SpecifiedPath = false; if ((isset($options['path']) && !empty($options['path']) && ($path = $options['path']) !== false) || (isset($options['p']) && !empty($options['p']) && ($path = $options['p']) !== false) ) { $defaults['path'] = $path; $l_SpecifiedPath = true; } $defaults['use_template_in_path'] = isset($options['use-template-in-path']); if (isset($options['noprefix']) && !empty($options['noprefix']) && ($g_NoPrefix = $options['noprefix']) !== false) { } else { $g_NoPrefix = ''; } if (isset($options['addprefix']) && !empty($options['addprefix']) && ($g_AddPrefix = $options['addprefix']) !== false) { } else { $g_AddPrefix = ''; } if (isset($options['use-heuristics-ignore'])) { define('USE_HEURISTICS_IGNORE', true); } if (isset($options['use-heuristics'])) { define('USE_HEURISTICS', true); } if (isset($options['use-heuristics-suspicious'])) { define('USE_HEURISTICS_SUSPICIOUS', true); } if (defined('USE_HEURISTICS') && defined('USE_HEURISTICS_SUSPICIOUS')) { die('You can not use --use-heuristic and --use-heuristic-suspicious the same time.'); } $l_SuffixReport = str_replace('/var/www', '', $defaults['path']); $l_SuffixReport = str_replace('/home', '', $l_SuffixReport); $l_SuffixReport = preg_replace('~[/\\\.\s]~', '_', $l_SuffixReport); $l_SuffixReport .= "-" . rand(1, 999999); if ((isset($options['report']) && ($report = $options['report']) !== false) || (isset($options['r']) && ($report = $options['r']) !== false)) { $report = str_replace('@PATH@', $l_SuffixReport, $report); $report = str_replace('@RND@', rand(1, 999999), $report); $report = str_replace('@DATE@', date('d-m-Y-h-i'), $report); define('REPORT', $report); define('NEED_REPORT', true); } if (isset($options['no-html'])) { define('REPORT', 'no@email.com'); } defined('ENCODE_FILENAMES_WITH_BASE64') || define('ENCODE_FILENAMES_WITH_BASE64', isset($options['encode-b64-fn'])); defined('INPUT_FILENAMES_BASE64_ENCODED') || define('INPUT_FILENAMES_BASE64_ENCODED', isset($options['input-fn-b64-encoded'])); defined('REPORT') || define('REPORT', 'AI-BOLIT-REPORT-' . $l_SuffixReport . '-' . date('d-m-Y_H-i') . '.html'); $last_arg = max(1, sizeof($_SERVER['argv']) - 1); if (isset($_SERVER['argv'][$last_arg])) { $path = $_SERVER['argv'][$last_arg]; if (substr($path, 0, 1) != '-' && (substr($_SERVER['argv'][$last_arg - 1], 0, 1) != '-' || array_key_exists(substr($_SERVER['argv'][$last_arg - 1], -1), $cli_options) ) ) { $defaults['path'] = $path; } } define('ONE_PASS', isset($options['one-pass'])); // BEGIN of configuring the factory $factoryConfig = [ RapidAccountScan::class => RapidAccountScan::class, RapidScanStorage::class => RapidScanStorage::class, CloudAssistedStorage::class => CloudAssistedStorage::class, DbFolderSpecification::class => DbFolderSpecification::class, CriticalFileSpecification::class => CriticalFileSpecification::class, CloudAssistedRequest::class => CloudAssistedRequest::class, CSVReport::class => CSVReport::class, JSONReport::class => JSONReport::class, PHPReport::class => PHPReport::class, PlainReport::class => PlainReport::class, DoublecheckReport::class => DoublecheckReport::class, HTMLReport::class => HTMLReport::class, DetachedMode::class => DetachedMode::class, ResidentMode::class => ResidentMode::class, Logger::class => Logger::class, ]; if (isset($options['factory-config'])) { $optionalFactoryConfig = require($options['factory-config']); $factoryConfig = array_merge($factoryConfig, $optionalFactoryConfig); } Factory::configure($factoryConfig); // END of configuring the factory } else { define('AI_EXPERT', AI_EXPERT_MODE); define('ONE_PASS', true); } if (ONE_PASS && defined('CLOUD_ASSIST_TOKEN')) { die('Both parameters(one-pass and cloud-assist) not supported'); } if (defined('RAPID_ACCOUNT_SCAN') && !defined('CLOUD_ASSIST_TOKEN')) { die('CloudScan should be enabled'); } if (defined('CREATE_SHARED_MEMORY') && CREATE_SHARED_MEMORY == true && !defined('SHARED_MEMORY')) { die('shared-mem-progress should be enabled and ID specified.'); } if (defined('RAPID_ACCOUNT_SCAN')) { if (!mkdir(RAPID_ACCOUNT_SCAN, 0700, true) && !is_dir(RAPID_ACCOUNT_SCAN)) { throw new Exception(sprintf('Directory "%s" was not created', RAPID_ACCOUNT_SCAN)); } $specification = Factory::instance()->create(DbFolderSpecification::class); if (!$specification->satisfiedBy(RAPID_ACCOUNT_SCAN)) { @unlink(RAPID_ACCOUNT_SCAN); die('Rapid DB folder error! Please check the folder.'); } } if (defined('RAPID_ACCOUNT_SCAN_TYPE') && !in_array(RAPID_ACCOUNT_SCAN_TYPE, array('NONE', 'ALL', 'SUSPICIOUS'))) { die('Wrong Rapid account scan type'); } if (defined('RAPID_ACCOUNT_SCAN') && !extension_loaded('leveldb')) { die('LevelDB extension needed for Rapid DB'); } $vars->blackFiles = []; if (DEBUG_MODE || DEBUG_PERFORMANCE) { $debug = new DebugMode(DEBUG_MODE, DEBUG_PERFORMANCE); } else { $debug = null; } $vars->signs = new LoadSignaturesForScan(isset($defaults['avdb']) ? $defaults['avdb'] : null, AI_EXPERT, DEBUG_PERFORMANCE); if ($vars->signs->getResult() == $vars->signs::SIGN_EXTERNAL) { stdOut('Loaded external signatures from ' . $defaults['avdb']); } else if ($vars->signs->getResult() == $vars->signs::SIGN_IMPORT) { stdOut('Loaded ' . __DIR__ . '/ai-bolit.sig signatures from ai-bolit.sig'); } else if (is_object($debug) && $vars->signs->getResult() == $vars->signs::SIGN_ERROR) { $debug->QCR_Debug('Import ai-bolit.sig ' . $vars->signs->getLastError()); } if (is_object($debug)) { $debug->QCR_Debug(); } if (isset($defaults['userid'])) { stdOut('Running from ' . $defaults['userid'] . ':' . $defaults['groupid']); } if (AI_EXTRA_WARN) { $sign_count = $vars->signs->getDBCountWithSuspicious(); } else { $sign_count = $vars->signs->getDBCount(); } stdOut('Malware signatures: ' . $sign_count); if ($g_SpecificExt) { stdOut("Scan specific extensions: " . implode(',', $g_SensitiveFiles)); } if (DEBUG_PERFORMANCE) { stdOut("Debug Performance Scan"); } // Init define('MAX_PREVIEW_LEN', 120); if (defined('AIBOLIT_EXTERNAL_HANDLER')) { include_once(AIBOLIT_EXTERNAL_HANDLER); stdOut("\nLoaded external handler: " . AIBOLIT_EXTERNAL_HANDLER . "\n"); if (function_exists("aibolit_onStart")) { aibolit_onStart(); } } // Perform full scan when running from command line if ($l_FastCli) { $defaults['scan_all_files'] = 0; } define('SCAN_ALL_FILES', (bool) $defaults['scan_all_files']); define('SCAN_DELAY', (int) $defaults['scan_delay']); define('MAX_SIZE_TO_SCAN', AibolitHelpers::getBytes($defaults['max_size_to_scan'])); define('MAX_SIZE_TO_CLOUDSCAN', AibolitHelpers::getBytes($defaults['max_size_to_cloudscan'])); if (SCAN_ALL_FILES) { $filter->setScanAll(); } if ($defaults['memory_limit'] && ($defaults['memory_limit'] = AibolitHelpers::getBytes($defaults['memory_limit'])) > 0) { ini_set('memory_limit', $defaults['memory_limit']); stdOut("Changed memory limit to " . $defaults['memory_limit']); } if (realpath($defaults['path']) === false) { define('ROOT_PATH', $defaults['path']); } else { define('ROOT_PATH', realpath($defaults['path'])); } if (!ROOT_PATH) { if (isCli()) { die(stdOut("Directory '{$defaults['path']}' not found!")); } } elseif (!$defaults['use_template_in_path'] && !is_readable(ROOT_PATH) && isCli()) { die2(stdOut("Cannot read directory '" . ROOT_PATH . "'!")); } define('CURRENT_DIR', getcwd()); if(!$defaults['use_template_in_path']) { chdir(ROOT_PATH); } if (isCli() && REPORT !== '' && REPORT !== 'no@email.com') { $report = str_replace('\\', '/', REPORT); $abs = strpos($report, '/') === 0 ? DIR_SEPARATOR : ''; $report = array_values(array_filter(explode('/', $report))); $report_file = array_pop($report); $report_path = realpath($abs . implode(DIR_SEPARATOR, $report)); define('REPORT_FILE', $report_file); define('REPORT_PATH', $report_path); if (REPORT_FILE && REPORT_PATH && is_file(REPORT_PATH . DIR_SEPARATOR . REPORT_FILE)) { @unlink(REPORT_PATH . DIR_SEPARATOR . REPORT_FILE); } if (!isset($options['no-html']) && defined('REPORT_FILE')) { $reports[HTMLReport::class] = REPORT_PATH . DIR_SEPARATOR . REPORT_FILE; } } if (defined('REPORT_PATH')) { $l_ReportDirName = REPORT_PATH; } $vars->options = $options; $path = $defaults['path']; $report_mask = $defaults['report_mask']; $extended_report = defined('EXTENDED_REPORT') && EXTENDED_REPORT; $rapid_account_scan_report = defined('RAPID_ACCOUNT_SCAN'); $max_size_to_scan = AibolitHelpers::getBytes(MAX_SIZE_TO_SCAN); $max_size_to_scan = $max_size_to_scan > 0 ? $max_size_to_scan : AibolitHelpers::getBytes('1m'); $max_size_to_scan = AibolitHelpers::bytes2Human($max_size_to_scan); $max_size = (MAX_SIZE_SCAN_BYTES > 0) ? MAX_FILE_SIZE_FOR_CHECK : (defined('CLOUD_ASSIST_TOKEN') ? max(MAX_SIZE_TO_SCAN, MAX_SIZE_TO_CLOUDSCAN) : MAX_SIZE_TO_SCAN); if ($max_size == 0) { $max_size = AibolitHelpers::getBytes('1m'); } $filter->setSizeRange(MIN_FILE_SIZE_FOR_CHECK, $max_size); $finder->setCollectBigElfs(defined('USE_HEURISTICS') || defined('USE_HEURISTICS_SUSPICIOUS')); $use_doublecheck = isset($options['with-2check']) && file_exists(DOUBLECHECK_FILE); $reportFactory = function ($reports) use ($vars, $path, $db_meta_info, $report_mask, $extended_report, $rapid_account_scan_report, $g_AddPrefix, $g_NoPrefix, $snum, $max_size_to_scan, $g_SpecificExt, $use_doublecheck) { foreach($reports as $report_class => $file) { yield Factory::instance()->create($report_class, [$vars->signs->_Mnemo, $path, $vars->signs->getDBLocation(), $vars->signs->getDBMetaInfoVersion(), $report_mask, $extended_report, $rapid_account_scan_report, AI_VERSION, AI_HOSTER, AI_EXTRA_WARN, AI_EXPERT, SMART_SCAN, ROOT_PATH, SCAN_ALL_FILES, $g_SpecificExt, DOUBLECHECK_FILE, $use_doublecheck, START_TIME, $snum, $max_size_to_scan, $g_AddPrefix, $g_NoPrefix, isset($reports[CSVReport::class]), $file, JSON_STDOUT, isset($vars->options['stat'])]); } }; define('QUEUE_FILENAME', ($l_ReportDirName != '' ? $l_ReportDirName . '/' : '') . 'AI-BOLIT-QUEUE-' . md5($defaults['path']) . '-' . rand(1000, 9999) . '.txt'); //////////////////////////////////////////////////////////////////////////// if (!isCli()) { header('Content-type: text/html; charset=utf-8'); } if (!$defaults['use_template_in_path'] && !is_readable(ROOT_PATH)) { echo Translate::getStr('warning.folder_read_permission'); exit; } if (isCli()) { if (defined('REPORT_PATH') && REPORT_PATH) { if (!is_writable(REPORT_PATH)) { die2("\nCannot write report. Report dir " . REPORT_PATH . " is not writable."); } else if (!REPORT_FILE) { die2("\nCannot write report. Report filename is empty."); } else if (($file = REPORT_PATH . DIR_SEPARATOR . REPORT_FILE) && is_file($file) && !is_writable($file)) { die2("\nCannot write report. Report file '$file' exists but is not writable."); } } } // detect version CMS $g_CmsListDetector = null; if (!$defaults['use_template_in_path']) { $g_KnownCMS = []; $g_CmsListDetector = new CmsVersionDetector(ROOT_PATH); $l_CmsDetectedNum = $g_CmsListDetector->getCmsNumber(); for ($tt = 0; ($tt < $l_CmsDetectedNum) && !AI_HOSTER; $tt++) { $vars->CMS[] = $g_CmsListDetector->getCmsName($tt) . ' v' . AibolitHelpers::makeSafeFn($g_CmsListDetector->getCmsVersion($tt), $g_AddPrefix, $g_NoPrefix); } } $g_AiBolitAbsolutePath = __DIR__; $l_IgnoreFilename = $g_AiBolitAbsolutePath . '/.aignore'; $l_DirIgnoreFilename = $g_AiBolitAbsolutePath . '/.adirignore'; $l_UrlIgnoreFilename = $g_AiBolitAbsolutePath . '/.aurlignore'; $filter->setIgnoreListPatterns($l_DirIgnoreFilename); if (SMART_SCAN) { $filter->setSmartScan(); } if (is_object($debug)) { $debug->QCR_Debug(); } $defaults['skip_ext'] = strtolower(trim($defaults['skip_ext'])); if ($defaults['skip_ext'] != '') { $filter->setIgnoreExt($defaults['skip_ext']); if (is_object($debug)) { $debug->QCR_Debug('Skip files with extensions: ' . implode(',', $filter->getIgnoreExt())); } stdOut('Skip extensions: ' . implode(',', $filter->getIgnoreExt())); } $use_listingfile = defined('LISTING_FILE'); $listing = false; if ($use_doublecheck) { $listing = DOUBLECHECK_FILE; } elseif ($use_listingfile) { $listing = LISTING_FILE; } $base64_encoded = INPUT_FILENAMES_BASE64_ENCODED; if (isset($options['resident'])) { $filter->setIgnorePathPattern(false); $filter->setDefaultExcludes(false); $filter->setScanAll(); } if (is_callable([$filter, 'generateCheckers'])) { $filter->generateCheckers(); } if (isset($options['detached'])) { $detached = Factory::instance()->create(DetachedMode::class, [$finder, $debug, $options['detached'], $vars, START_TIME, $reportFactory]); if (defined('LISTING_FILE')) { $detached->scanListing(LISTING_FILE, INPUT_FILENAMES_BASE64_ENCODED); } else { $detached->scanDirectories(ROOT_PATH); } exit(0); } if (isset($options['resident'])) { $logger = null; $levels = explode(',', LOG_LEVEL); $logger = new Logger(LOG_FILE, $levels); Factory::instance()->create(ResidentMode::class, [$finder, $debug, $reportFactory, $vars->signs, $logger, $options]); exit(0); } try { $scan = new Scanner($finder, $vars, $debug); if (defined('SCAN_FILE')) { // scan single file $filepath = INPUT_FILENAMES_BASE64_ENCODED ? FilepathEscaper::decodeFilepathByBase64(SCAN_FILE) : SCAN_FILE; stdOut("Start scanning file '" . $filepath . "'."); if (file_exists($filepath) && is_file($filepath) && is_readable($filepath)) { $vars->foundTotalFiles = 1; $s_file[] = $filepath; $base64_encoded = false; } else { stdOut("Error:" . $filepath . " either is not a file or readable"); } } elseif ($listing) { //scan listing if ($listing == 'stdin') { $lines = explode("\n", getStdin()); } else { $lines = new SplFileObject($listing); $lines->setFlags(SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE); } if (is_array($lines)) { $vars->foundTotalFiles = count($lines); } else if ($lines instanceof SplFileObject) { $lines->seek($lines->getSize()); $vars->foundTotalFiles = $lines->key(); $lines->seek(0); } $s_file = $lines; stdOut("Start scanning the list from '" . $listing . "'.\n"); } else { //scan by path $base64_encoded = true; file_exists(QUEUE_FILENAME) && unlink(QUEUE_FILENAME); $scan->QCR_ScanDirectories(ROOT_PATH); stdOut("Found $vars->foundTotalFiles files in $vars->foundTotalDirs directories."); stdOut("Start scanning '" . ROOT_PATH . "'.\n"); if (is_object($debug)) { $debug->QCR_Debug(); } stdOut(str_repeat(' ', 160), false); $s_file = new SplFileObject(QUEUE_FILENAME); $s_file->setFlags(SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE); } $scan->QCR_GoScan($s_file, null, $base64_encoded, $use_doublecheck, $filter); unset($s_file); @unlink(QUEUE_FILENAME); $vars->foundTotalDirs = $vars->totalFolder; if (defined('PROGRESS_LOG_FILE') && file_exists(PROGRESS_LOG_FILE)) { @unlink(PROGRESS_LOG_FILE); } if (CREATE_SHARED_MEMORY) { shmop_delete(SHARED_MEMORY); } if (defined('SHARED_MEMORY')) { shmop_close(SHARED_MEMORY); } } catch (Exception $e) { if (is_object($debug)) { $debug->QCR_Debug($e->getMessage()); } } if (is_object($debug)) { $debug->QCR_Debug(); } $vars->doorway = $finder->getDoorways(); $vars->symLinks = $finder->getSymlinks(); $vars->bigFiles = $finder->getBigFiles(); if (count($vars->bigFiles) > 0) { $scan->prepareBigFilesToCriticalList($vars->bigFiles, $vars); } $bigElfs = $finder->getBigElfFiles(); if (count($bigElfs) > 0) { $scan->prepareBigElfFilesToCriticalSusList($bigElfs, $vars); } list($snum, $i) = $scan->whitelisting(); //////////////////////////////////////////////////////////////////////////// if (BOOL_RESULT && (!defined('NEED_REPORT'))) { if ((count($vars->criticalPHP) > 0) || (count($vars->criticalJS) > 0) || (count($vars->phishing) > 0)) { exit(2); } else { exit(0); } } //////////////////////////////////////////////////////////////////////////// $time_taken = AibolitHelpers::seconds2Human(microtime(true) - START_TIME); stdOut("\nBuilding report [ mode = " . AI_EXPERT . " ]\n"); //stdOut("\nLoaded signatures: " . count($g_FlexDBShe) . " / " . count($g_JSVirSig) . "\n"); //////////////////////////////////////////////////////////////////////////// $scan_time = round(microtime(true) - START_TIME, 1); foreach($reportFactory($reports) as $report) { $report->generateReport($vars, $scan_time); $res = $report->write(); if ($res !== '') { stdOut($res); } } stdOut("\n"); stdOut("Building list of vulnerable scripts " . count($vars->vulnerable)); stdOut("Building list of shells " . count($vars->criticalPHP)); stdOut("Building list of js " . count($vars->criticalJS)); stdOut("Building list of unread files " . count($vars->notRead)); if (!AI_HOSTER) { stdOut("Building list of phishing pages " . count($vars->phishing)); stdOut("Building list of symlinks " . count($vars->symLinks)); } if (AI_EXTRA_WARN) { stdOut("Building list of suspicious files " . count($vars->warningPHP)); } //////////////////////////////////// if (!AI_HOSTER) { stdOut("Building list of adware " . count($vars->adwareList)); stdOut("Building list of bigfiles " . count($vars->bigFiles)); stdOut("Building list of doorways " . count($vars->doorway)); } if (!defined('REPORT') || REPORT === '') { die2('Report not written.'); } stdOut("Scanning complete! Time taken: " . AibolitHelpers::seconds2Human($scan_time)); if (DEBUG_PERFORMANCE) { $debug->printPerfomanceStats(); die(); } stdOut("\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); stdOut("Attention! DO NOT LEAVE either ai-bolit.php or AI-BOLIT-REPORT-<xxxx>-<yy>.html \nfile on server. COPY it locally then REMOVE from server. "); stdOut("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); if (isset($options['cmd'])) { stdOut("Run \"{$options['cmd']}\" "); system($options['cmd']); } if (is_object($debug)) { $debug->QCR_Debug(); } # exit with code $l_EC1 = count($vars->criticalPHP); $l_EC2 = count($vars->criticalJS) + count($vars->phishing) + count($vars->warningPHP); $code = 0; if ($l_EC1 > 0) { $code = 2; } else { if ($l_EC2 > 0) { $code = 1; } } $stat = array( 'php_malware' => count($vars->criticalPHP), 'cloudhash' => count($vars->blackFiles), 'js_malware' => count($vars->criticalJS), 'phishing' => count($vars->phishing) ); if (function_exists('aibolit_onComplete')) { aibolit_onComplete($code, $stat); } stdOut('Exit code ' . $code); exit($code); ############################################# END ############################################### function getStdin() { $stdin = ''; $f = @fopen('php://stdin', 'r'); while($line = fgets($f)) { $stdin .= $line; } fclose($f); return $stdin; } function die2($str) { if (function_exists('aibolit_onFatalError')) { aibolit_onFatalError($str); } die($str); } function getMaxMinUid($path = '/etc/login.defs') { $uid_min = 1000; $uid_max = 60000; if (!file_exists($path)) { $release = new OsReleaseInfo(); $ver = $release->getOsVersion(); if ($release->isIdLikeCentos() && $ver && (strpos($ver, '6') === 0)) { $uid_min = 500; $uid_max = 60000; } unset($ver); return [$uid_min, $uid_max]; } $file = file($path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); foreach ($file as $line) { $line = trim($line); if (strpos($line, 'UID_MIN') === 0) { list($key, $value) = preg_split('~\s+~', trim($line), 2, PREG_SPLIT_NO_EMPTY); $uid_min = intval(trim($value)); } if (strpos($line, 'UID_MAX') === 0) { list($key, $value) = preg_split('~\s+~', trim($line), 2, PREG_SPLIT_NO_EMPTY); $uid_max = intval(trim($value)); } } return [$uid_min, $uid_max]; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// The following instructions should be written the same pattern, /// because they are replaced by file content while building a release. /// See the release_aibolit_ru.sh file for details. class AibolitHelpers { /** * Format bytes to human readable * * @param int $bytes * * @return string */ public static function bytes2Human($bytes) { if ($bytes < 1024) { return $bytes . ' b'; } elseif (($kb = $bytes / 1024) < 1024) { return number_format($kb, 2) . ' Kb'; } elseif (($mb = $kb / 1024) < 1024) { return number_format($mb, 2) . ' Mb'; } elseif (($gb = $mb / 1024) < 1024) { return number_format($gb, 2) . ' Gb'; } else { return number_format($gb / 1024, 2) . 'Tb'; } } /** * Seconds to human readable * @param int $seconds * @return string */ public static function seconds2Human($seconds) { $r = ''; $_seconds = floor($seconds); $ms = $seconds - $_seconds; $seconds = $_seconds; if ($hours = floor($seconds / 3600)) { $r .= $hours . ' h '; $seconds %= 3600; } if ($minutes = floor($seconds / 60)) { $r .= $minutes . ' m '; $seconds %= 60; } if ($minutes < 3) { $r .= ' ' . (string)($seconds + ($ms > 0 ? round($ms) : 0)) . ' s'; } return $r; } /** * Get bytes from shorthand byte values (1M, 1G...) * @param int|string $val * @return int */ public static function getBytes($val) { $val = trim($val); $last = strtolower($val[strlen($val) - 1]); switch ($last) { case 't': $val *= 1024; case 'g': $val *= 1024; case 'm': $val *= 1024; case 'k': $val *= 1024; } return intval($val); } /** * Convert dangerous chars to html entities * * @param $par_Str * @param string $addPrefix * @param string $noPrefix * @param bool $replace_path * * @return string */ public static function makeSafeFn($par_Str, $addPrefix = '', $noPrefix = '', $replace_path = false) { if ($replace_path) { $lines = explode("\n", $par_Str); array_walk($lines, static function(&$n) use ($addPrefix, $noPrefix) { $n = $addPrefix . str_replace($noPrefix, '', $n); }); $par_Str = implode("\n", $lines); } return htmlspecialchars($par_Str, ENT_SUBSTITUTE | ENT_QUOTES); } public static function myCheckSum($str) { return hash('crc32b', $str); } } class Variables { public $structure = []; public $totalFolder = 0; public $totalFiles = 0; public $adwareList = []; public $criticalPHP = []; public $phishing = []; public $CMS = []; public $criticalJS = []; public $criticalJSFragment = []; public $blackFiles = []; public $notRead = []; public $bigFiles = []; public $criticalPHPSig = []; public $criticalPHPFragment = []; public $phishingSigFragment = []; public $phishingFragment = []; public $criticalJSSig = []; public $adwareListFragment = []; public $warningPHPSig = []; public $warningPHPFragment = []; public $warningPHP = []; public $vulnerable = []; public $counter = 0; public $foundTotalDirs = 0; public $foundTotalFiles = 0; public $files_and_ignored = 0; public $doorway = []; public $symLinks = []; public $skippedFolders = []; public $hashtable = null; public $fileinfo = null; public $rescanCount = 0; public $rescanRxGood = 0; public $options = []; public $signs = []; public $users = null; } class Logger { /** * $log_file - path and log file name * @var string */ protected $log_file; /** * $file - file * @var string */ protected $file; /** * dateFormat * @var string */ protected $dateFormat = 'd-M-Y H:i:s'; /** * @var array */ const LEVELS = ['ERROR' => 1, 'DEBUG' => 2, 'INFO' => 4, 'ALL' => 7]; /** * @var int */ private $level; /** * Class constructor * * @param string $log_file - path and filename of log * @param string|array $level - Level of logging * * @throws Exception */ public function __construct($log_file = null, $level = 'INFO') { if (!$log_file) { return; } if (is_array($level)) { foreach ($level as $v) { if (!isset(self::LEVELS[$v])) { $v = 'INFO'; } $this->level |= self::LEVELS[$v]; } } else { if (isset(self::LEVELS[$level])) { $this->level = self::LEVELS[$level]; } else { $this->level = self::LEVELS['INFO']; } } $this->log_file = $log_file; //Create log file if it doesn't exist. if (!file_exists($log_file)) { fopen($log_file, 'w') or exit("Can't create $log_file!"); } //Check permissions of file. if (!is_writable($log_file)) { //throw exception if not writable throw new Exception('ERROR: Unable to write to file!', 1); } } /** * Info method (write info message) * @param string $message * @return void */ public function info($message) { if ($this->level & self::LEVELS['INFO']) { $this->writeLog($message, 'INFO'); } } /** * Debug method (write debug message) * @param string $message * @return void */ public function debug($message) { if ($this->level & self::LEVELS['DEBUG']) { $this->writeLog($message, 'DEBUG'); } } /** * Error method (write error message) * @param string $message * @return void */ public function error($message) { if ($this->level & self::LEVELS['ERROR']) { $this->writeLog($message, 'ERROR'); } } /** * Write to log file * @param string $message * @param string $level * @return void */ public function writeLog($message, $level) { if (!$this->log_file) { return; } // open log file if (!is_resource($this->file)) { $this->openLog(); } //Grab time - based on timezone in php.ini $time = date($this->dateFormat); // Write time & message to end of file fwrite($this->file, "[$time] : [$level] - $message" . PHP_EOL); } /** * Open log file * @return void */ private function openLog() { $openFile = $this->log_file; // 'a' option = place pointer at end of file $this->file = fopen($openFile, 'a') or exit("Can't open $openFile!"); } /** * Class destructor */ public function __destruct() { if ($this->file) { fclose($this->file); } } } class LoadSignaturesForScan { private $sig_db = []; private $sig_db_meta_info = []; private $sig_db_location = 'internal'; private $mode; private $debug; public $_DBShe; public $X_DBShe; public $_FlexDBShe; public $X_FlexDBShe; public $XX_FlexDBShe; public $_ExceptFlex; public $_AdwareSig; public $_PhishingSig; public $_JSVirSig; public $X_JSVirSig; public $_SusDB; public $_SusDBPrio; public $_DeMapper; public $_Mnemo; public $whiteUrls; public $blackUrls; public $ownUrl = null; private $count; private $count_susp; private $result = 0; private $last_error = ''; const SIGN_INTERNAL = 1; const SIGN_EXTERNAL = 2; const SIGN_IMPORT = 3; const SIGN_ERROR = 9; public function __construct($avdb_file, $mode, $debug) { $this->mode = $mode; $this->debug = $debug; $this->sig_db_meta_info = [ 'build-date' => 'n/a', 'version' => 'n/a', 'release-type' => 'n/a', ]; if ($avdb_file && file_exists($avdb_file)) { $avdb = explode("\n", gzinflate(base64_decode(str_rot13(strrev(trim(file_get_contents($avdb_file))))))); $this->sig_db_location = 'external'; $this->_DBShe = explode("\n", base64_decode($avdb[0])); $this->X_DBShe = explode("\n", base64_decode($avdb[1])); $this->_FlexDBShe = explode("\n", base64_decode($avdb[2])); $this->X_FlexDBShe = explode("\n", base64_decode($avdb[3])); $this->XX_FlexDBShe = explode("\n", base64_decode($avdb[4])); $this->_ExceptFlex = explode("\n", base64_decode($avdb[5])); $this->_AdwareSig = explode("\n", base64_decode($avdb[6])); $this->_PhishingSig = explode("\n", base64_decode($avdb[7])); $this->_JSVirSig = explode("\n", base64_decode($avdb[8])); $this->X_JSVirSig = explode("\n", base64_decode($avdb[9])); $this->_SusDB = explode("\n", base64_decode($avdb[10])); $this->_SusDBPrio = explode("\n", base64_decode($avdb[11])); $this->_DeMapper = array_combine(explode("\n", base64_decode($avdb[12])), explode("\n", base64_decode($avdb[13]))); $this->_Mnemo = @array_flip(@array_combine(explode("\n", base64_decode($avdb[14])), explode("\n", base64_decode($avdb[15])))); // get meta information $avdb_meta_info = json_decode(base64_decode($avdb[16]), true); $this->sig_db_meta_info['build-date'] = $avdb_meta_info ? $avdb_meta_info['build-date'] : 'n/a'; $this->sig_db_meta_info['version'] = $avdb_meta_info ? $avdb_meta_info['version'] : 'n/a'; $this->sig_db_meta_info['release-type'] = $avdb_meta_info ? $avdb_meta_info['release-type'] : 'n/a'; if (count($this->_DBShe) <= 1) { $this->_DBShe = []; } if (count($this->X_DBShe) <= 1) { $this->X_DBShe = []; } if (count($this->_FlexDBShe) <= 1) { $this->_FlexDBShe = []; } if (count($this->X_FlexDBShe) <= 1) { $this->X_FlexDBShe = []; } if (count($this->XX_FlexDBShe) <= 1) { $this->XX_FlexDBShe = []; } if (count($this->_ExceptFlex) <= 1) { $this->_ExceptFlex = []; } if (count($this->_AdwareSig) <= 1) { $this->_AdwareSig = []; } if (count($this->_PhishingSig) <= 1) { $this->_PhishingSig = []; } if (count($this->X_JSVirSig) <= 1) { $this->X_JSVirSig = []; } if (count($this->_JSVirSig) <= 1) { $this->_JSVirSig = []; } if (count($this->_SusDB) <= 1) { $this->_SusDB = []; } if (count($this->_SusDBPrio) <= 1) { $this->_SusDBPrio = []; } $this->result = self::SIGN_EXTERNAL; } else { InternalSignatures::init(); $this->_DBShe = InternalSignatures::$_DBShe; $this->X_DBShe = InternalSignatures::$X_DBShe; $this->_FlexDBShe = InternalSignatures::$_FlexDBShe; $this->X_FlexDBShe = InternalSignatures::$X_FlexDBShe; $this->XX_FlexDBShe = InternalSignatures::$XX_FlexDBShe; $this->_ExceptFlex = InternalSignatures::$_ExceptFlex; $this->_AdwareSig = InternalSignatures::$_AdwareSig; $this->_PhishingSig = InternalSignatures::$_PhishingSig; $this->_JSVirSig = InternalSignatures::$_JSVirSig; $this->X_JSVirSig = InternalSignatures::$X_JSVirSig; $this->_SusDB = InternalSignatures::$_SusDB; $this->_SusDBPrio = InternalSignatures::$_SusDBPrio; $this->_DeMapper = InternalSignatures::$_DeMapper; $this->_Mnemo = InternalSignatures::$_Mnemo; // get meta information $avdb_meta_info = InternalSignatures::$db_meta_info; $this->sig_db_meta_info['build-date'] = $avdb_meta_info ? $avdb_meta_info['build-date'] : 'n/a'; $this->sig_db_meta_info['version'] = $avdb_meta_info ? $avdb_meta_info['version'] : 'n/a'; $this->sig_db_meta_info['release-type'] = $avdb_meta_info ? $avdb_meta_info['release-type'] : 'n/a'; $this->result = self::SIGN_INTERNAL; } // use only basic signature subset if ($mode < 2) { $this->X_FlexDBShe = []; $this->XX_FlexDBShe = []; $this->X_JSVirSig = []; } // Load custom signatures if (file_exists(__DIR__ . '/ai-bolit.sig')) { try { $s_file = new SplFileObject(__DIR__ . '/ai-bolit.sig'); $s_file->setFlags(SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE); foreach ($s_file as $line) { $this->_FlexDBShe[] = preg_replace('#\G(?:[^~\\\\]+|\\\\.)*+\K~#', '\\~', $line); // escaping ~ } $this->result = self::SIGN_IMPORT; $s_file = null; // file handler is closed } catch (Exception $e) { $this->result = self::SIGN_ERROR; $this->last_error = $e->getMessage(); } } $this->count = count($this->_JSVirSig) + count($this->X_JSVirSig) + count($this->_DBShe) + count($this->X_DBShe) + count($this->_FlexDBShe) + count($this->X_FlexDBShe) + count($this->XX_FlexDBShe); $this->count_susp = $this->count + count($this->_SusDB); if (!$debug) { $this->OptimizeSignatures(); } $this->_DBShe = array_map('strtolower', $this->_DBShe); $this->X_DBShe = array_map('strtolower', $this->X_DBShe); } private function OptimizeSignatures() { ($this->mode == 2) && ($this->_FlexDBShe = array_merge($this->_FlexDBShe, $this->X_FlexDBShe, $this->XX_FlexDBShe)); ($this->mode == 1) && ($this->_FlexDBShe = array_merge($this->_FlexDBShe, $this->X_FlexDBShe)); $this->X_FlexDBShe = $this->XX_FlexDBShe = []; ($this->mode == 2) && ($this->_JSVirSig = array_merge($this->_JSVirSig, $this->X_JSVirSig)); $this->X_JSVirSig = []; $count = count($this->_FlexDBShe); for ($i = 0; $i < $count; $i++) { if ($this->_FlexDBShe[$i] == '[a-zA-Z0-9_]+?\(\s*[a-zA-Z0-9_]+?=\s*\)') $this->_FlexDBShe[$i] = '\((?<=[a-zA-Z0-9_].)\s*[a-zA-Z0-9_]++=\s*\)'; if ($this->_FlexDBShe[$i] == '([^\?\s])\({0,1}\.[\+\*]\){0,1}\2[a-z]*e') $this->_FlexDBShe[$i] = '(?J)\.[+*](?<=(?<d>[^\?\s])\(..|(?<d>[^\?\s])..)\)?\g{d}[a-z]*e'; if ($this->_FlexDBShe[$i] == '$[a-zA-Z0-9_]\{\d+\}\s*\.$[a-zA-Z0-9_]\{\d+\}\s*\.$[a-zA-Z0-9_]\{\d+\}\s*\.') $this->_FlexDBShe[$i] = '\$[a-zA-Z0-9_]\{\d+\}\s*\.\$[a-zA-Z0-9_]\{\d+\}\s*\.\$[a-zA-Z0-9_]\{\d+\}\s*\.'; $this->_FlexDBShe[$i] = str_replace('http://.+?/.+?\.php\?a', 'http://[^?\s]++(?<=\.php)\?a', $this->_FlexDBShe[$i]); $this->_FlexDBShe[$i] = preg_replace('~\[a-zA-Z0-9_\]\+\K\?~', '+', $this->_FlexDBShe[$i]); $this->_FlexDBShe[$i] = preg_replace('~^\\\\[d]\+&@~', '&@(?<=\d..)', $this->_FlexDBShe[$i]); $this->_FlexDBShe[$i] = str_replace('\s*[\'"]{0,1}.+?[\'"]{0,1}\s*', '.+?', $this->_FlexDBShe[$i]); $this->_FlexDBShe[$i] = str_replace('[\'"]{0,1}.+?[\'"]{0,1}', '.+?', $this->_FlexDBShe[$i]); $this->_FlexDBShe[$i] = preg_replace('~^\[\'"\]\{0,1\}\.?|^@\*|^\\\\s\*~', '', $this->_FlexDBShe[$i]); } $this->optSig($this->_FlexDBShe); $this->optSig($this->_JSVirSig); $this->optSig($this->_AdwareSig); $this->optSig($this->_PhishingSig); $this->optSig($this->_SusDB); //optSig($g_SusDBPrio); //optSig($g_ExceptFlex); // convert exception rules $cnt = count($this->_ExceptFlex); for ($i = 0; $i < $cnt; $i++) { $this->_ExceptFlex[$i] = trim(Normalization::normalize($this->_ExceptFlex[$i])); if ($this->_ExceptFlex[$i] == '') unset($this->_ExceptFlex[$i]); } $this->_ExceptFlex = array_values($this->_ExceptFlex); } private function optSig(&$sigs) { $sigs = array_unique($sigs); // Add SigId foreach ($sigs as &$s) { $s .= '(?<X' . AibolitHelpers::myCheckSum($s) . '>)'; } unset($s); $fix = [ '([^\?\s])\({0,1}\.[\+\*]\){0,1}\2[a-z]*e' => '(?J)\.[+*](?<=(?<d>[^\?\s])\(..|(?<d>[^\?\s])..)\)?\g{d}[a-z]*e', 'http://.+?/.+?\.php\?a' => 'http://[^?\s]++(?<=\.php)\?a', '\s*[\'"]{0,1}.+?[\'"]{0,1}\s*' => '.+?', '[\'"]{0,1}.+?[\'"]{0,1}' => '.+?' ]; $sigs = str_replace(array_keys($fix), array_values($fix), $sigs); $fix = [ '~^\\\\[d]\+&@~' => '&@(?<=\d..)', '~^((\[\'"\]|\\\\s|@)(\{0,1\}\.?|[?*]))+~' => '' ]; $sigs = preg_replace(array_keys($fix), array_values($fix), $sigs); $this->optSigCheck($sigs); $tmp = []; foreach ($sigs as $i => $s) { if (!preg_match('~^(?>(?!\.[*+]|\\\\\d)(?:\\\\.|\[.+?\]|.))+$~', $s)) { unset($sigs[$i]); $tmp[] = $s; } } usort($sigs, 'strcasecmp'); $txt = implode("\n", $sigs); for ($i = 24; $i >= 1; ($i > 4) ? $i -= 4 : --$i) { $txt = preg_replace_callback('#^((?>(?:\\\\.|\\[.+?\\]|[^(\n]|\((?:\\\\.|[^)(\n])++\))(?:[*?+]\+?|\{\d+(?:,\d*)?\}[+?]?|)){' . $i . ',})[^\n]*+(?:\\n\\1(?![{?*+]).+)+#im', [$this, 'optMergePrefixes'], $txt); } $sigs = array_merge(explode("\n", $txt), $tmp); $this->optSigCheck($sigs); } private function optMergePrefixes($m) { $limit = 8000; $prefix = $m[1]; $prefix_len = strlen($prefix); $len = $prefix_len; $r = []; $suffixes = []; foreach (explode("\n", $m[0]) as $line) { if (strlen($line) > $limit) { $r[] = $line; continue; } $s = substr($line, $prefix_len); $len += strlen($s); if ($len > $limit) { if (count($suffixes) == 1) { $r[] = $prefix . $suffixes[0]; } else { $r[] = $prefix . '(?:' . implode('|', $suffixes) . ')'; } $suffixes = []; $len = $prefix_len + strlen($s); } $suffixes[] = $s; } if (!empty($suffixes)) { if (count($suffixes) == 1) { $r[] = $prefix . $suffixes[0]; } else { $r[] = $prefix . '(?:' . implode('|', $suffixes) . ')'; } } return implode("\n", $r); } private function optMergePrefixes_Old($m) { $prefix = $m[1]; $prefix_len = strlen($prefix); $suffixes = []; foreach (explode("\n", $m[0]) as $line) { $suffixes[] = substr($line, $prefix_len); } return $prefix . '(?:' . implode('|', $suffixes) . ')'; } /* * Checking errors in pattern */ private function optSigCheck(&$sigs) { $result = true; foreach ($sigs as $k => $sig) { if (trim($sig) == "") { if ($this->debug) { echo ("************>>>>> EMPTY\n pattern: " . $sig . "\n"); } unset($sigs[$k]); $result = false; } if (@preg_match('~' . $sig . '~smiS', '') === false) { $error = error_get_last(); if ($this->debug) { echo ("************>>>>> " . $error['message'] . "\n pattern: " . $sig . "\n"); } unset($sigs[$k]); $result = false; } } return $result; } public static function getSigId($l_Found) { foreach ($l_Found as $key => &$v) { if (is_string($key) && $v[1] != -1 && strlen($key) == 9) { return substr($key, 1); } } return null; } public function setOwnUrl($url) { if (isset($this->blackUrls)) { foreach ($this->blackUrls->getDb() as $black) { if (preg_match('~' . $black . '~msi', $url)) { $this->ownUrl = null; return; } } } $this->ownUrl = $url; } public function getOwnUrl() { return $this->ownUrl; } public function getDBLocation() { return $this->sig_db_location; } public function getDB() { return $this->sig_db; } public function getDBMetaInfo() { return $this->sig_db_meta_info; } public function getDBMetaInfoVersion() { return $this->sig_db_meta_info['version']; } public function getDBCount() { return $this->count; } public function getDBCountWithSuspicious() { return $this->count_susp; } public function getResult() { return $this->result; } public function getLastError() { return $this->last_error; } } class InternalSignatures { public static $_DBShe; public static $X_DBShe; public static $_FlexDBShe; public static $X_FlexDBShe; public static $XX_FlexDBShe; public static $_ExceptFlex; public static $_AdwareSig; public static $_PhishingSig; public static $_JSVirSig; public static $X_JSVirSig; public static $_SusDB; public static $_SusDBPrio; public static $_DeMapper; public static $_Mnemo; public static $db_meta_info; public static function init() { //BEGIN_SIG 11/02/2021 12:10:23 self::$_DBShe = unserialize(gzinflate(/*1613034623*/base64_decode("S7QysKquBQA="))); self::$X_DBShe = unserialize(gzinflate(/*1613034623*/base64_decode("S7QysKquBQA="))); self::$_FlexDBShe = unserialize(gzinflate(/*1613034623*/base64_decode("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"))); self::$X_FlexDBShe = unserialize(gzinflate(/*1613034623*/base64_decode("S7QysKquBQA="))); self::$XX_FlexDBShe = unserialize(gzinflate(/*1613034623*/base64_decode("S7QysKquBQA="))); self::$_ExceptFlex = unserialize(gzinflate(/*1613034623*/base64_decode("S7QysKquBQA="))); self::$_AdwareSig = unserialize(gzinflate(/*1613034623*/base64_decode("S7QysKquBQA="))); self::$_PhishingSig = unserialize(gzinflate(/*1613034623*/base64_decode("S7QysKquBQA="))); self::$_JSVirSig = unserialize(gzinflate(/*1613034623*/base64_decode("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"))); self::$X_JSVirSig = unserialize(gzinflate(/*1613034623*/base64_decode("S7QysKquBQA="))); self::$_SusDB = unserialize(gzinflate(/*1613034623*/base64_decode("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"))); self::$_SusDBPrio = unserialize(gzinflate(/*1613034623*/base64_decode("S7QysKquBQA="))); self::$_Mnemo = @array_flip(unserialize(gzinflate(/*1613034623*/base64_decode("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")))); self::$_DeMapper = unserialize(base64_decode("YTo1OntzOjEwOiJ3aXphcmQucGhwIjtzOjM3OiJjbGFzcyBXZWxjb21lU3RlcCBleHRlbmRzIENXaXphcmRTdGVwIjtzOjE3OiJ1cGRhdGVfY2xpZW50LnBocCI7czozNzoieyBDVXBkYXRlQ2xpZW50OjpBZGRNZXNzYWdlMkxvZygiZXhlYyI7czoxMToiaW5jbHVkZS5waHAiO3M6NDg6IkdMT0JBTFNbIlVTRVIiXS0+SXNBdXRob3JpemVkKCkgJiYgJGFyQXV0aFJlc3VsdCI7czo5OiJzdGFydC5waHAiO3M6NjA6IkJYX1JPT1QuJy9tb2R1bGVzL21haW4vY2xhc3Nlcy9nZW5lcmFsL3VwZGF0ZV9kYl91cGRhdGVyLnBocCI7czoxMDoiaGVscGVyLnBocCI7czo1ODoiSlBsdWdpbkhlbHBlcjo6Z2V0UGx1Z2luKCJzeXN0ZW0iLCJvbmVjbGlja2NoZWNrb3V0X3ZtMyIpOyI7fQ==")); self::$db_meta_info = unserialize(base64_decode("YTozOntzOjEwOiJidWlsZC1kYXRlIjtzOjEwOiIxNjEzMDM0NTQzIjtzOjc6InZlcnNpb24iO3M6MTM6IjIwMjEwMjExLTQ4MjIiO3M6MTI6InJlbGVhc2UtdHlwZSI7czoxMDoicHJvZHVjdGlvbiI7fQ==")); //END_SIG } } class CmsVersionDetector { const CMS_BITRIX = 'Bitrix'; const CMS_WORDPRESS = 'WordPress'; const CMS_JOOMLA = 'Joomla'; const CMS_DLE = 'Data Life Engine'; const CMS_IPB = 'Invision Power Board'; const CMS_WEBASYST = 'WebAsyst'; const CMS_OSCOMMERCE = 'OsCommerce'; const CMS_DRUPAL = 'Drupal'; const CMS_MODX = 'MODX'; const CMS_INSTANTCMS = 'Instant CMS'; const CMS_PHPBB = 'PhpBB'; const CMS_VBULLETIN = 'vBulletin'; const CMS_SHOPSCRIPT = 'PHP ShopScript Premium'; const CMS_VERSION_UNDEFINED = '0.0'; private $root_path; private $versions; private $types; public function __construct($root_path = '.') { $this->root_path = $root_path; $this->versions = []; $this->types = []; $version = ''; $dir_list = $this->getDirList($root_path); $dir_list[] = $root_path; foreach ($dir_list as $dir) { if ($this->checkBitrix($dir, $version)) { $this->addCms(self::CMS_BITRIX, $version); } if ($this->checkWordpress($dir, $version)) { $this->addCms(self::CMS_WORDPRESS, $version); } if ($this->checkJoomla($dir, $version)) { $this->addCms(self::CMS_JOOMLA, $version); } if ($this->checkDle($dir, $version)) { $this->addCms(self::CMS_DLE, $version); } if ($this->checkIpb($dir, $version)) { $this->addCms(self::CMS_IPB, $version); } if ($this->checkWebAsyst($dir, $version)) { $this->addCms(self::CMS_WEBASYST, $version); } if ($this->checkOsCommerce($dir, $version)) { $this->addCms(self::CMS_OSCOMMERCE, $version); } if ($this->checkDrupal($dir, $version)) { $this->addCms(self::CMS_DRUPAL, $version); } if ($this->checkMODX($dir, $version)) { $this->addCms(self::CMS_MODX, $version); } if ($this->checkInstantCms($dir, $version)) { $this->addCms(self::CMS_INSTANTCMS, $version); } if ($this->checkPhpBb($dir, $version)) { $this->addCms(self::CMS_PHPBB, $version); } if ($this->checkVBulletin($dir, $version)) { $this->addCms(self::CMS_VBULLETIN, $version); } if ($this->checkPhpShopScript($dir, $version)) { $this->addCms(self::CMS_SHOPSCRIPT, $version); } } } function getDirList($target) { $remove = [ '.', '..' ]; $directories = array_diff(scandir($target), $remove); $res = []; foreach ($directories as $value) { if (is_dir($target . '/' . $value)) { $res[] = $target . '/' . $value; } } return $res; } function isCms($name, $version) { for ($i = 0, $iMax = count($this->types); $i < $iMax; $i++) { if ((strpos($this->types[$i], $name) !== false) && (strpos($this->versions[$i], $version) !== false)) { return true; } } return false; } function getCmsList() { return $this->types; } function getCmsVersions() { return $this->versions; } function getCmsNumber() { return count($this->types); } function getCmsName($index = 0) { return $this->types[$index]; } function getCmsVersion($index = 0) { return $this->versions[$index]; } private function addCms($type, $version) { $this->types[] = $type; $this->versions[] = $version; } private function checkBitrix($dir, &$version) { $version = self::CMS_VERSION_UNDEFINED; $res = false; if (file_exists($dir . '/bitrix')) { $res = true; $tmp_content = @file_get_contents($this->root_path . '/bitrix/modules/main/classes/general/version.php'); if (preg_match('|define\("SM_VERSION","(.+?)"\)|smi', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; } } return $res; } private function checkWordpress($dir, &$version) { $version = self::CMS_VERSION_UNDEFINED; $res = false; if (file_exists($dir . '/wp-admin')) { $res = true; $tmp_content = @file_get_contents($dir . '/wp-includes/version.php'); if (preg_match('|\$wp_version\s*=\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; } } return $res; } private function checkJoomla($dir, &$version) { $version = self::CMS_VERSION_UNDEFINED; $res = false; if (file_exists($dir . '/libraries/joomla')) { $res = true; // for 1.5.x $tmp_content = @file_get_contents($dir . '/libraries/joomla/version.php'); if (preg_match('|var\s+\$RELEASE\s*=\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; if (preg_match('|var\s+\$DEV_LEVEL\s*=\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) { $version .= '.' . $tmp_ver[1]; } } // for 1.7.x $tmp_content = @file_get_contents($dir . '/includes/version.php'); if (preg_match('|public\s+\$RELEASE\s*=\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; if (preg_match('|public\s+\$DEV_LEVEL\s*=\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) { $version .= '.' . $tmp_ver[1]; } } // for 2.5.x and 3.x $tmp_content = @file_get_contents($dir . '/libraries/cms/version/version.php'); if (preg_match('|const\s+RELEASE\s*=\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; if (preg_match('|const\s+DEV_LEVEL\s*=\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) { $version .= '.' . $tmp_ver[1]; } } } return $res; } private function checkDle($dir, &$version) { $version = self::CMS_VERSION_UNDEFINED; $res = false; if (file_exists($dir . '/engine/engine.php')) { $res = true; $tmp_content = @file_get_contents($dir . '/engine/data/config.php'); if (preg_match('|\'version_id\'\s*=>\s*"(.+?)"|smi', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; } $tmp_content = @file_get_contents($dir . '/install.php'); if (preg_match('|\'version_id\'\s*=>\s*"(.+?)"|smi', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; } } return $res; } private function checkIpb($dir, &$version) { $version = self::CMS_VERSION_UNDEFINED; $res = false; if (file_exists($dir . '/ips_kernel')) { $res = true; $tmp_content = @file_get_contents($dir . '/ips_kernel/class_xml.php'); if (preg_match('|IP.Board\s+v([0-9\.]+)|si', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; } } return $res; } private function checkWebAsyst($dir, &$version) { $version = self::CMS_VERSION_UNDEFINED; $res = false; if (file_exists($dir . '/wbs/installer')) { $res = true; $tmp_content = @file_get_contents($dir . '/license.txt'); if (preg_match('|v([0-9\.]+)|si', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; } } return $res; } private function checkOsCommerce($dir, &$version) { $version = self::CMS_VERSION_UNDEFINED; $res = false; if (file_exists($dir . '/includes/version.php')) { $res = true; $tmp_content = @file_get_contents($dir . '/includes/version.php'); if (preg_match('|([0-9\.]+)|smi', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; } } return $res; } private function checkDrupal($dir, &$version) { $version = self::CMS_VERSION_UNDEFINED; $res = false; if (file_exists($dir . '/sites/all')) { $res = true; $tmp_content = @file_get_contents($dir . '/CHANGELOG.txt'); if (preg_match('|Drupal\s+([0-9\.]+)|smi', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; } } if (file_exists($dir . '/core/lib/Drupal.php')) { $res = true; $tmp_content = @file_get_contents($dir . '/core/lib/Drupal.php'); if (preg_match('|VERSION\s*=\s*\'(\d+\.\d+\.\d+)\'|smi', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; } } if (file_exists($dir . 'modules/system/system.info')) { $res = true; $tmp_content = @file_get_contents($dir . 'modules/system/system.info'); if (preg_match('|version\s*=\s*"\d+\.\d+"|smi', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; } } return $res; } private function checkMODX($dir, &$version) { $version = self::CMS_VERSION_UNDEFINED; $res = false; if (file_exists($dir . '/manager/assets')) { $res = true; // no way to pick up version } return $res; } private function checkInstantCms($dir, &$version) { $version = self::CMS_VERSION_UNDEFINED; $res = false; if (file_exists($dir . '/plugins/p_usertab')) { $res = true; $tmp_content = @file_get_contents($dir . '/index.php'); if (preg_match('|InstantCMS\s+v([0-9\.]+)|smi', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; } } return $res; } private function checkPhpBb($dir, &$version) { $version = self::CMS_VERSION_UNDEFINED; $res = false; if (file_exists($dir . '/includes/acp')) { $res = true; $tmp_content = @file_get_contents($dir . '/config.php'); if (preg_match('|phpBB\s+([0-9\.x]+)|smi', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; } } return $res; } private function checkVBulletin($dir, &$version) { $version = self::CMS_VERSION_UNDEFINED; $res = false; // removed dangerous code from here, see DEF-10390 for details return $res; } private function checkPhpShopScript($dir, &$version) { $version = self::CMS_VERSION_UNDEFINED; $res = false; if (file_exists($dir . '/install/consts.php')) { $res = true; $tmp_content = @file_get_contents($dir . '/install/consts.php'); if (preg_match('|STRING_VERSION\',\s*\'(.+?)\'|smi', $tmp_content, $tmp_ver)) { $version = $tmp_ver[1]; } } return $res; } } class CloudAssistedRequest { const API_URL = 'https://api.imunify360.com/api/hashes/check'; private $timeout = 60; private $server_id = ''; public function __construct($server_id, $timeout = 60) { $this->server_id = $server_id; $this->timeout = $timeout; } public function checkFilesByHash($list_of_hashes = []) { if (empty($list_of_hashes)) { return [ [], [], [], 'white' => [], 'black' => [], 'verdicts_black' => [], ]; } $result = $this->request($list_of_hashes); $white = isset($result['white']) ? $result['white'] : []; $black = isset($result['black']) ? $result['black'] : []; $verdicts_black = isset($result['verdicts_black']) ? $result['verdicts_black'] : []; return [ $white, $black, $verdicts_black, 'white' => $white, 'black' => $black, 'verdicts_black' => $verdicts_black, ]; } // ///////////////////////////////////////////////////////////////////////// private function request($list_of_hashes) { $url = self::API_URL . '?server_id=' . urlencode($this->server_id) . '&indexed=1'; $data = [ 'hashes' => $list_of_hashes, ]; $json_hashes = json_encode($data); $info = []; try { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL , $url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST , 'POST'); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST , false); curl_setopt($ch, CURLOPT_TIMEOUT , $this->timeout); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT , $this->timeout); curl_setopt($ch, CURLOPT_RETURNTRANSFER , true); curl_setopt($ch, CURLOPT_HTTPHEADER , array('Content-Type: application/json')); curl_setopt($ch, CURLOPT_POSTFIELDS , $json_hashes); $response_data = curl_exec($ch); $info = curl_getinfo($ch); $errno = curl_errno($ch); curl_close($ch); } catch (Exception $e) { throw new Exception($e->getMessage()); } $http_code = isset($info['http_code']) ? $info['http_code'] : 0; if ($http_code !== 200) { if ($errno == 28) { throw new Exception('Reuqest timeout! Return code: ' . $http_code . ' Curl error num: ' . $errno); } throw new Exception('Invalid response from the Cloud Assisted server! Return code: ' . $http_code . ' Curl error num: ' . $errno); } $result = json_decode($response_data, true); if (is_null($result)) { throw new Exception('Invalid json format in the response!'); } if (isset($result['error'])) { throw new Exception('API server returned error!'); } if (!isset($result['result'])) { throw new Exception('API server returned error! Cannot find field "result".'); } return $result['result']; } } /** * Class Report */ abstract class Report { const MAX_ROWS = 15000; const AIBOLIT_MAX_NUMBER = 200; /** * Report constructor. * @param $mnemo * @param $path * @param $db_location * @param $db_meta_info_version * @param $report_mask * @param $extended_report * @param $rapid_account_scan * @param $ai_version * @param $ai_hoster * @param $ai_extra_warn * @param $ai_expert * @param $ai_smart * @param $root_path * @param $scan_all * @param $specific_ext * @param $doublecheck * @param $use_doublecheck * @param $start * @param $snum * @param $max_size * @param $add_prefix * @param $no_prefix * @param $small * @param $file * @param $echo * @param $stat */ public function __construct($mnemo, $path, $db_location, $db_meta_info_version, $report_mask, $extended_report, $rapid_account_scan, $ai_version, $ai_hoster, $ai_extra_warn, $ai_expert, $ai_smart, $root_path, $scan_all, $specific_ext, $doublecheck, $use_doublecheck, $start, $snum, $max_size, $add_prefix, $no_prefix, $small, $file, $echo, $stat) { } /** * Generate report * @param $vars * @param $scan_time * @return mixed */ public function generateReport($vars, $scan_time) { } /** * Write report to file and return string to stdout after write attempt * @return string */ public function write() { } protected static function convertToUTF8($text) { if (function_exists('mb_convert_encoding')) { $text = @mb_convert_encoding($text, 'utf-8', 'auto'); $text = @mb_convert_encoding($text, 'UTF-8', 'UTF-8'); } return $text; } } /** * Class JSONReport report all data to JSON */ class JSONReport extends Report { const REPORT_MASK_DOORWAYS = 1<<2; const REPORT_MASK_SUSP = 1<<3; const REPORT_MASK_FULL = self::REPORT_MASK_DOORWAYS | self::REPORT_MASK_SUSP; protected $raw_report; private $extended_report; private $rapid_account_scan; private $ai_extra_warn; private $ai_hoster; private $report_mask; private $noPrefix; private $addPrefix; private $mnemo; private $small; protected $file; private $echo; private $stat; public function __construct($mnemo, $path, $db_location, $db_meta_info_version, $report_mask, $extended_report, $rapid_account_scan, $ai_version, $ai_hoster, $ai_extra_warn, $ai_expert, $ai_smart, $root_path, $scan_all, $specific_ext, $doublecheck, $use_doublecheck, $start, $snum, $max_size, $add_prefix, $no_prefix, $small = false, $file = false, $echo = false, $stat = false) { $this->mnemo = $mnemo; $this->ai_extra_warn = $ai_extra_warn; $this->extended_report = $extended_report; $this->rapid_account_scan = $rapid_account_scan; $this->ai_hoster = $ai_hoster; $this->report_mask = $report_mask; $this->addPrefix = $add_prefix; $this->noPrefix = $no_prefix; $this->small = $small; $this->echo = $echo; $this->stat = $stat; $this->raw_report = []; $this->raw_report['summary'] = [ 'scan_path' => $path, 'report_time' => time(), 'ai_version' => $ai_version, 'db_location' => $db_location, 'db_version' => $db_meta_info_version, ]; $this->file = $file; if($this->file) { @unlink($this->file); @unlink($this->file . '.tmp'); } } public function generateReport($vars, $scan_time) { $tmp = clone $vars; if (!$this->small) { $tmp->criticalPHP = array_slice($tmp->criticalPHP, 0, self::MAX_ROWS); $tmp->criticalJS = array_slice($tmp->criticalJS, 0, self::MAX_ROWS); $tmp->notRead = array_slice($tmp->notRead, 0, self::AIBOLIT_MAX_NUMBER); $tmp->symLinks = array_slice($tmp->symLinks, 0, self::AIBOLIT_MAX_NUMBER); $tmp->warningPHP = array_slice($tmp->warningPHP, 0, self::AIBOLIT_MAX_NUMBER); $tmp->bigFiles = array_slice($tmp->bigFiles, 0, self::AIBOLIT_MAX_NUMBER); $tmp->doorway = array_slice($tmp->doorway, 0, self::AIBOLIT_MAX_NUMBER); $this->generateJSONTables($tmp); } $this->generateSummary($tmp, $scan_time); } private function generateSummary($vars, $scan_time) { $summary_counters = []; $summary_counters['redirect'] = 0; //count($vars->redirect); $summary_counters['critical_php'] = count($vars->criticalPHP); $summary_counters['critical_js'] = count($vars->criticalJS); $summary_counters['cloudhash'] = count($vars->blackFiles); $summary_counters['phishing'] = count($vars->phishing); $summary_counters['unix_exec'] = 0; // count($g_UnixExec); $summary_counters['iframes'] = 0; // count($g_Iframer); $summary_counters['not_read'] = count($vars->notRead); $summary_counters['base64'] = 0; // count($g_Base64); $summary_counters['heuristics'] = 0; // count($g_HeuristicDetected); $summary_counters['symlinks'] = count($vars->symLinks); $summary_counters['big_files_skipped'] = count($vars->bigFiles); $summary_counters['suspicious'] = count($vars->warningPHP); $this->raw_report['summary']['counters'] = $summary_counters; $this->raw_report['summary']['total_files'] = $vars->foundTotalFiles; $this->raw_report['summary']['scan_time'] = $scan_time; if (isset($vars->users)) { $this->raw_report['summary']['users'] = $vars->users->getList(); } if ($this->extended_report && $this->rapid_account_scan) { $this->raw_report['summary']['counters']['rescan_count'] = $vars->rescanCount; $this->raw_report['summary']['counters']['rescan_rxgood'] = $vars->rescanRxGood; } } private function generateJSONTables($vars) { $this->raw_report['vulners'] = $this->getRawJsonVuln($vars->vulnerable, $vars); if (count($vars->criticalPHP) > 0) { $this->raw_report['php_malware'] = $this->getRawJson($vars->criticalPHP, $vars, $vars->criticalPHPFragment, $vars->criticalPHPSig); } if (count($vars->blackFiles) > 0) { $this->raw_report['cloudhash'] = $this->getRawBlackData($vars->blackFiles); } if (count($vars->criticalJS) > 0) { $this->raw_report['js_malware'] = $this->getRawJson($vars->criticalJS, $vars, $vars->criticalJSFragment, $vars->criticalJSSig); } if (count($vars->notRead) > 0) { $this->raw_report['not_read'] = $this->getSimpleList($vars->notRead); } if (count($vars->phishing) > 0) { $this->raw_report['phishing'] = $this->getRawJson($vars->phishing, $vars, $vars->phishingFragment, $vars->phishingSigFragment); } if (count($vars->symLinks) > 0) { $this->raw_report['sym_links'] = $this->getSimpleList($vars->symLinks); } if (count($vars->adwareList) > 0) { $this->raw_report['adware'] = $this->getRawJson($vars->adwareList, $vars, $vars->adwareListFragment); } if (count($vars->bigFiles) > 0) { $this->raw_report['big_files'] = $this->getSimpleList($vars->bigFiles); } if ((count($vars->doorway) > 0) && JSONReport::checkMask($this->report_mask, JSONReport::REPORT_MASK_DOORWAYS)) { $this->raw_report['doorway'] = $this->getRawJson($vars->doorway, $vars); } if (count($vars->CMS) > 0) { $this->raw_report['cms'] = $this->getSimpleList($vars->CMS); } if ($this->ai_extra_warn) { if ((count($vars->warningPHP) > 0) && JSONReport::checkMask($this->report_mask, JSONReport::REPORT_MASK_FULL)) { $this->raw_report['suspicious'] = $this->getRawJson($vars->warningPHP, $vars, $vars->warningPHPFragment, $vars->warningPHPSig); } } } public static function checkMask($mask, $need) { return (($mask & $need) == $need); } public function write() { $ret = ''; $res = @json_encode($this->raw_report); if ($this->file!== '.' && $l_FH = fopen($this->file . '.tmp', 'w')) { fputs($l_FH, $res); fclose($l_FH); if (rename($this->file . '.tmp', $this->file)) { $ret = "Report written to '$this->file'."; } else { $ret = "Cannot create '$this->file'."; } } if ($this->echo) { echo $res; } return $ret; } //////////////////////////////////////////////////////////////////////////// private function getRawJsonVuln($par_List, $vars) { $results = []; $l_Src = [ '"', '<', '>', '&', ''', '<' . '?php.' ]; $l_Dst = [ '"', '<', '>', '&', '\'', '<' . '?php ' ]; for ($i = 0, $iMax = count($par_List); $i < $iMax; $i++) { $l_Pos = $par_List[$i]['ndx']; $fn = $this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$l_Pos]); $res['fn'] = ENCODE_FILENAMES_WITH_BASE64 ? base64_encode($fn) : self::convertToUTF8($fn); $res['sig'] = $par_List[$i]['id']; $res['ct'] = $vars->structure['c'][$l_Pos]; $res['mt'] = $vars->structure['m'][$l_Pos]; $res['et'] = $vars->structure['e'][$l_Pos]; $res['sz'] = $vars->structure['s'][$l_Pos]; $res['sigid'] = 'vuln_' . md5($vars->structure['n'][$l_Pos] . $par_List[$i]['id']); $results[] = $res; } return $results; } private function getRawJson($par_List, $vars, $par_Details = null, $par_SigId = null) { $results = []; $l_Src = [ '"', '<', '>', '&', ''', '<' . '?php.' ]; $l_Dst = [ '"', '<', '>', '&', '\'', '<' . '?php ' ]; for ($i = 0, $iMax = count($par_List); $i < $iMax; $i++) { if ($par_SigId != null) { $l_SigId = 'id_' . $par_SigId[$i]; } else { $l_SigId = 'id_n' . rand(1000000, 9000000); } $l_Pos = $par_List[$i]; $fn = $this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$l_Pos]); $res['fn'] = ENCODE_FILENAMES_WITH_BASE64 ? base64_encode($fn) : self::convertToUTF8($fn); if ($par_Details != null) { $res['sig'] = preg_replace('|(L\d+).+__AI_MARKER__|smi', '[$1]: ...', $par_Details[$i]); $res['sig'] = preg_replace('/[^\x20-\x7F]/', '.', $res['sig']); $res['sig'] = preg_replace('/__AI_MARKER__/', ' @!!!>', $res['sig']); $res['sig'] = str_replace($l_Src, $l_Dst, $res['sig']); } $res['sig'] = self::convertToUTF8($res['sig']); $res['ct'] = $vars->structure['c'][$l_Pos]; $res['mt'] = $vars->structure['m'][$l_Pos]; $res['sz'] = $vars->structure['s'][$l_Pos]; $res['et'] = $vars->structure['e'][$l_Pos]; $res['hash'] = $vars->structure['crc'][$l_Pos]; $res['sigid'] = $l_SigId; if (isset($vars->structure['sha256'][$l_Pos])) { $res['sha256'] = $vars->structure['sha256'][$l_Pos]; } else { $res['sha256'] = ''; } if (isset($par_SigId) && isset($this->mnemo[$par_SigId[$i]])) { $res['sn'] = $this->mnemo[$par_SigId[$i]]; } else { $res['sn'] = ''; } if ($this->stat) { $res['uid'] = $vars->structure['u'][$l_Pos]; $res['gid'] = $vars->structure['g'][$l_Pos]; $res['mode'] = $vars->structure['p'][$l_Pos]; } $results[] = $res; } return $results; } private function getRawBlackData($black_list) { $result = []; foreach ($black_list as $filename => $hash) { try { $stat = @stat($filename); if (!$stat) { continue; } $sz = $stat['size']; $ct = $stat['ctime']; $mt = $stat['mtime']; $u = $stat['uid']; $g = $stat['gid']; $p = sprintf("0%o", 0777 & $stat['mode']); } catch (Exception $e) { continue; } $item = [ 'fn' => ENCODE_FILENAMES_WITH_BASE64 ? base64_encode($filename) : $filename, 'sig' => '', 'ct' => $ct, 'mt' => $mt, 'et' => $hash['ts'], 'sz' => $sz, 'hash' => $hash['h'], 'sigid' => crc32($filename), 'sn' => isset($hash['sn']) ? $hash['sn'] : 'cld' ]; if ($this->stat) { $item['uid'] = $u; $item['gid'] = $g; $item['mode'] = $p; } $result[] = $item; } return $result; } private function getSimpleList($list) { if (!ENCODE_FILENAMES_WITH_BASE64) { return $list; } foreach ($list as &$item) { $item = base64_encode($item); } unset($item); return $list; } } /** * Class JSONReport report all data to JSON */ class PHPReport extends JSONReport { public function write() { $ret = ''; $res = @serialize($this->raw_report); if ($l_FH = fopen($this->file . '.tmp', 'w')) { fputs($l_FH, $res); fclose($l_FH); if (rename($this->file . '.tmp', $this->file)) { $ret = "Report written to '$this->file'."; } else { $ret = "Cannot create '$this->file'."; } } return $ret; } //////////////////////////////////////////////////////////////////////////// } /** * Class PlainReport report to text file */ class PlainReport extends Report { private $extended_report; private $rapid_account_scan; private $ai_extra_warn; private $ai_hoster; private $noPrefix; private $addPrefix; private $mnemo; private $file; private $raw_report; public function __construct($mnemo, $path, $db_location, $db_meta_info_version, $report_mask, $extended_report, $rapid_account_scan, $ai_version, $ai_hoster, $ai_extra_warn, $ai_expert, $ai_smart, $root_path, $scan_all, $specific_ext, $doublecheck, $use_doublecheck, $start, $snum, $max_size, $add_prefix, $no_prefix, $small = false, $file = false, $echo = false, $stat = false) { $this->mnemo = $mnemo; $this->ai_extra_warn = $ai_extra_warn; $this->extended_report = $extended_report; $this->rapid_account_scan = $rapid_account_scan; $this->ai_hoster = $ai_hoster; $this->addPrefix = $add_prefix; $this->noPrefix = $no_prefix; $this->file = $file; if($this->file) { @unlink($this->file); @unlink($this->file . '.tmp'); } $this->raw_report = ''; if (function_exists("gethostname") && is_callable("gethostname")) { $l_HostName = gethostname(); } else { $l_HostName = '???'; } $this->raw_report = "# Malware list detected by AI-Bolit (https://revisium.com/ai/) on " . date("d/m/Y H:i:s", time()) . " " . $l_HostName . "\n\n"; } public function generateReport($vars, $scan_time = false) { if (!$this->ai_hoster) { foreach ($vars->vulnerable as $l_Item) { $this->raw_report .= '[VULNERABILITY] ' . $this->replacePathArray($vars->structure['n'][$l_Item['ndx']]) . ' - ' . $l_Item['id'] . "\n"; } $this->raw_report .= "\n"; } if (count($vars->criticalPHP) > 0) { $this->raw_report .= '[SERVER MALWARE]' . "\n" . $this->printPlainList(array_slice($vars->criticalPHP, 0, self::MAX_ROWS), $vars, $vars->criticalPHPFragment) . "\n"; } if (count($vars->criticalJS) > 0) { $this->raw_report .= '[CLIENT MALWARE / JS]' . "\n" . $this->printPlainList(array_slice($vars->criticalJS, 0, self::MAX_ROWS), $vars, $vars->criticalJSFragment) . "\n"; } if (count($vars->notRead) > 0) { $this->raw_report .= '[SCAN ERROR / SKIPPED]' . "\n" . $this->printPlainList(array_slice($vars->notRead, 0, self::AIBOLIT_MAX_NUMBER), $vars) . "\n\n"; } if (count($vars->phishing) > 0) { $this->raw_report .= '[PHISHING]' . "\n" . $this->printPlainList($vars->phishing, $vars, $vars->phishingFragment) . "\n"; } if (count($vars->symLinks) > 0) { $this->raw_report .= '[SYMLINKS]' . "\n" . $this->printPlainList(array_slice($vars->symLinks, 0, self::AIBOLIT_MAX_NUMBER), $vars) . "\n\n"; } if ($this->ai_extra_warn) { if (count($vars->warningPHP) > 0) { $this->raw_report .= '[SUSPICIOUS]' . "\n" . $this->printPlainList(array_slice($vars->warningPHP, 0, self::AIBOLIT_MAX_NUMBER), $vars, $vars->warningPHPFragment) . "\n"; } } if (count($vars->adwareList) > 0) { $this->raw_report .= '[ADWARE]' . "\n" . $this->printPlainList($vars->adwareList, $vars, $vars->adwareListFragment) . "\n"; } if (count($vars->bigFiles) > 0) { $this->raw_report .= '[BIG FILES / SKIPPED]' . "\n" . $this->printPlainList(array_slice($vars->bigFiles, 0, self::AIBOLIT_MAX_NUMBER), $vars) . "\n\n"; } $this->raw_report = preg_replace('|__AI_MARKER__|smi', ' %> ', $this->raw_report); } public function write() { $ret = ''; if ($l_FH = fopen($this->file . '.tmp', "w")) { fputs($l_FH, $this->raw_report); fclose($l_FH); } if (rename($this->file . '.tmp', $this->file)) { $ret = "Report written to '$this->file'."; } else { $ret = "Cannot create '$this->file'."; } return $ret; } //////////////////////////////////////////////////////////////////////////// private function printPlainList($par_List, $vars, $par_Details = null) { $l_Result = ""; $l_Src = [ '"', '<', '>', '&', ''' ]; $l_Dst = [ '"', '<', '>', '&', '\'' ]; for ($i = 0, $iMax = count($par_List); $i < $iMax; $i++) { $l_Pos = $par_List[$i]; if ($par_Details != null) { $l_Body = preg_replace('|(L\d+).+__AI_MARKER__|smi', '$1: ...', $par_Details[$i]); $l_Body = preg_replace('/[^\x20-\x7F]/', '.', $l_Body); $l_Body = str_replace($l_Src, $l_Dst, $l_Body); } else { $l_Body = ''; } if (is_file($vars->structure['n'][$l_Pos])) { $l_Result .= $this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$l_Pos]) . "\t\t\t" . $l_Body . "\n"; } else { $l_Result .= $this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$par_List[$i]]) . "\n"; } } return $l_Result; } private function replacePathArray($par_Arr) { array_walk($par_Arr, function(&$n) { $n = $this->addPrefix . str_replace($this->noPrefix, '', $n); }); return $par_Arr; } } /** * Class CSVReport report table data to CSV */ class CSVReport extends Report { const CRITICAL_PHP = 'p'; const CRITICAL_JS = 'j'; const SUSPICIOUS = 's'; const PHISHING = 'h'; const VULNERABLE = 'v'; const CLOUDHASH = 'c'; const BIG_FILES = 'b'; const NOT_READ = 'n'; const DOORWAY = 'd'; const SYMLINKS = 'm'; const ADWARE = 'a'; const CMS = 'e'; private $extended_report; private $rapid_account_scan; private $ai_extra_warn; private $ai_hoster; private $noPrefix; private $addPrefix; private $mnemo; private $file; private $stat; public function __construct($mnemo, $path, $db_location, $db_meta_info_version, $report_mask, $extended_report, $rapid_account_scan, $ai_version, $ai_hoster, $ai_extra_warn, $ai_expert, $ai_smart, $root_path, $scan_all, $specific_ext, $doublecheck, $use_doublecheck, $start, $snum, $max_size, $add_prefix, $no_prefix, $small = false, $file = false, $echo = false, $stat = false) { $this->mnemo = $mnemo; $this->ai_extra_warn = $ai_extra_warn; $this->extended_report = $extended_report; $this->rapid_account_scan = $rapid_account_scan; $this->ai_hoster = $ai_hoster; $this->addPrefix = $add_prefix; $this->noPrefix = $no_prefix; $this->file = $file; $this->stat = $stat; if($this->file) { @unlink($this->file); @unlink($this->file . '.tmp'); } } public function generateReport($vars, $scan_time = false) { $this->writeRawCSVVuln($vars->vulnerable, $vars); if (count($vars->criticalPHP) > 0) { $this->writeRawCSV($vars->criticalPHP, $vars, self::CRITICAL_PHP, $vars->criticalPHPFragment, $vars->criticalPHPSig); } if (count($vars->blackFiles) > 0) { $this->writeRawBlackData($vars->blackFiles); } if (count($vars->criticalJS) > 0) { $this->writeRawCSV($vars->criticalJS, $vars, self::CRITICAL_JS, $vars->criticalJSFragment, $vars->criticalJSSig); } if (count($vars->notRead) > 0) { $this->writeListCSV(self::NOT_READ, $vars->notRead); } if (count($vars->phishing) > 0) { $this->writeRawCSV($vars->phishing, $vars, self::PHISHING, $vars->phishingFragment, $vars->phishingSigFragment); } if (count($vars->symLinks) > 0) { $this->writeListCSV(self::SYMLINKS, $vars->symLinks); } if (count($vars->adwareList) > 0) { $this->writeRawCSV($vars->adwareList, $vars, self::ADWARE, $vars->adwareListFragment); } if (count($vars->bigFiles) > 0) { $this->writeListCSV(self::BIG_FILES, $vars->bigFiles); } if (count($vars->doorway) > 0) { $this->writeRawCSV($vars->doorway, $vars, self::DOORWAY); } if (count($vars->CMS) > 0) { $this->writeListCSV(self::CMS, $vars->CMS); } if ($this->ai_extra_warn) { if (count($vars->warningPHP) > 0) { $this->writeRawCSV($vars->warningPHP, $vars, self::SUSPICIOUS, $vars->warningPHPFragment, $vars->warningPHPSig); } } } public function write() { $ret = ''; if ($this->file) { if (rename($this->file . '.tmp', $this->file)) { $ret = "Report written to '$this->file'."; } else { $ret = "Cannot create '$this->file'."; } } return $ret; } //////////////////////////////////////////////////////////////////////////// private function writeRawCSVVuln($par_List, $vars) { if (count($par_List) === 0) { return; } $fh = fopen($this->file . '.tmp', 'a+'); for ($i = 0, $iMax = count($par_List); $i < $iMax; $i++) { $res = []; $l_Pos = $par_List[$i]['ndx']; $fn = $this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$l_Pos]); $res[] = self::VULNERABLE; $res[] = ENCODE_FILENAMES_WITH_BASE64 ? base64_encode($fn) : self::convertToUTF8($fn); $res[] = $par_List[$i]['id']; $res[] = $vars->structure['c'][$l_Pos]; $res[] = $vars->structure['m'][$l_Pos]; $res[] = $vars->structure['s'][$l_Pos]; $res[] = $vars->structure['e'][$l_Pos]; $res[] = 'vuln_' . md5($vars->structure['n'][$l_Pos] . $par_List[$i]['id']); $res[] = ''; $res[] = ''; $res[] = ''; if ($this->stat) { $res[] = ''; $res[] = ''; $res[] = ''; } fputcsv($fh, $res); } fflush($fh); fclose($fh); } private function writeListCSV($section, $list) { if (count($list) === 0) { return; } $fh = fopen($this->file . '.tmp', "a+"); for ($i = 0, $iMax = count($list); $i < $iMax; $i++) { $res = []; $res[] = $section; $res[] = ENCODE_FILENAMES_WITH_BASE64 ? base64_encode($list[$i]) : $list[$i]; $res[] = ''; $res[] = ''; $res[] = ''; $res[] = ''; $res[] = ''; $res[] = ''; $res[] = ''; $res[] = ''; $res[] = ''; if ($this->stat) { $res[] = ''; $res[] = ''; $res[] = ''; } fputcsv($fh, $res); } fflush($fh); fclose($fh); } private function writeRawCSV($par_List, $vars, $section = '', $par_Details = null, $par_SigId = null) { if (count($par_List) === 0) { return; } $fh = fopen($this->file . '.tmp', "a+"); $l_Src = [ '"', '<', '>', '&', ''', '<' . '?php.', '\\' ]; $l_Dst = [ '"', '<', '>', '&', '\'', '<' . '?php ', '' ]; for ($i = 0, $iMax = count($par_List); $i < $iMax; $i++) { $res = []; $res[] = $section; if ($par_SigId != null) { $l_SigId = 'id_' . $par_SigId[$i]; } else { $l_SigId = 'id_n' . rand(1000000, 9000000); } $l_Pos = $par_List[$i]; $fn = $this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$l_Pos]); $res[] = ENCODE_FILENAMES_WITH_BASE64 ? base64_encode($fn) : self::convertToUTF8($fn); if ($par_Details != null) { $sig = preg_replace('|(L\d+).+__AI_MARKER__|smi', '[$1]: ...', $par_Details[$i]); $sig = preg_replace('/[^\x20-\x7F]/', '.', $sig); $sig = preg_replace('/__AI_MARKER__/', ' @!!!>', $sig); $sig = str_replace($l_Src, $l_Dst, $sig); $sig = self::convertToUTF8($sig); } $res[] = $sig; $res[] = $vars->structure['c'][$l_Pos]; $res[] = $vars->structure['m'][$l_Pos]; $res[] = $vars->structure['s'][$l_Pos]; $res[] = $vars->structure['e'][$l_Pos]; $res[] = $l_SigId; $res[] = $vars->structure['crc'][$l_Pos]; if (isset($par_SigId) && isset($this->mnemo[$par_SigId[$i]])) { $res[] = $this->mnemo[$par_SigId[$i]]; } else { $res[] = ''; } if (isset($vars->structure['sha256'][$l_Pos])) { $res[] = $vars->structure['sha256'][$l_Pos]; } else { $res[] = ''; } if ($this->stat) { $res[] = $vars->structure['u'][$l_Pos]; $res[] = $vars->structure['g'][$l_Pos]; $res[] = $vars->structure['p'][$l_Pos]; } fputcsv($fh, $res); } fflush($fh); fclose($fh); } private function writeRawBlackData($black_list) { if (count($black_list) === 0) { return; } $fh = fopen($this->file . '.tmp', 'a+'); foreach ($black_list as $filename => $hash) { $res = []; try { $stat = @stat($filename); if (!$stat) { continue; } $sz = $stat['size']; $ct = $stat['ctime']; $mt = $stat['mtime']; $u = $stat['uid']; $g = $stat['gid']; $p = sprintf("0%o", 0777 & $stat['mode']); } catch (Exception $e) { continue; } $res[] = self::CLOUDHASH; $res[] = ENCODE_FILENAMES_WITH_BASE64 ? base64_encode($filename) : $filename; $res[] = ''; $res[] = $ct; $res[] = $mt; $res[] = $sz; $res[] = $hash['ts']; $res[] = crc32($filename); $res[] = $hash['h']; $res[] = isset($hash['sn']) ? $hash['sn'] : 'cld'; $res[] = ''; if ($this->stat) { $res[] = $u; $res[] = $g; $res[] = $p; } fputcsv($fh, $res); } fflush($fh); fclose($fh); } } /** * Class DoublecheckReport generate doublecheck file */ class DoublecheckReport extends Report { private $raw_report; private $skip = false; private $file = false; private $res = ''; public function __construct($mnemo, $path, $db_location, $db_meta_info_version, $report_mask, $extended_report, $rapid_account_scan, $ai_version, $ai_hoster, $ai_extra_warn, $ai_expert, $ai_smart, $root_path, $scan_all, $specific_ext, $doublecheck, $use_doublecheck, $start, $snum, $max_size, $add_prefix, $no_prefix, $small = false, $file = false, $echo = false, $stat = false) { $this->raw_report = []; $this->file = $file; if(file_exists($this->file)) { $this->skip = true; $this->res .= $this->file . ' already exists.' . PHP_EOL; } else if ($l_FH = fopen($this->file . '.tmp', 'w')) { fputs($l_FH, '<?php die("Forbidden"); ?>' . "\n"); fclose($l_FH); } else { $this->skip = true; $this->res .= 'Error! Cannot create ' . $this->file . PHP_EOL; } } public function generateReport($vars, $scan_time) { if ($this->skip) { return; } $l_CurrPath = __DIR__; if (!isset($vars->criticalPHP)) { $vars->criticalPHP = []; } if (!isset($vars->criticalJS)) { $vars->criticalJS = []; } if (!isset($vars->phishing)) { $vars->phishing = []; } if (!isset($vars->adwareList)) { $vars->adwareList = []; } if (!isset($vars->redirect)) { $vars->redirect = []; } $this->raw_report = array_merge($vars->criticalPHP, $vars->criticalJS, $vars->phishing, $vars->adwareList, $vars->redirect); $this->raw_report = array_values(array_unique($this->raw_report)); for ($i = 0, $iMax = count($this->raw_report); $i < $iMax; $i++) { $this->raw_report[$i] = str_replace($l_CurrPath, '.', $vars->structure['n'][$this->raw_report[$i]]); } $this->raw_report = array_values(array_unique($this->raw_report)); if (count($this->raw_report) === 0) { $this->skip = true; unlink($this->file . '.tmp'); } } public function write() { $ret = ''; if ($this->skip) { return $this->res; } $fh = fopen($this->file . '.tmp', "a+"); for ($i = 0, $iMax = count($this->raw_report); $i < $iMax; $i++) { fputs($fh, $this->raw_report[$i] . "\n"); } fclose($fh); if (rename($this->file . '.tmp', $this->file)) { $ret = "Report written to '$this->file'."; } else { $ret = "Cannot create '$this->file'."; } return $ret; } } /** * Class HTMLReport report all data to HTML */ class HTMLReport extends Report { const REPORT_MASK_DOORWAYS = 1<<2; const REPORT_MASK_SUSP = 1<<3; const REPORT_MASK_FULL = self::REPORT_MASK_DOORWAYS | self::REPORT_MASK_SUSP; private $raw_report; private $extended_report; private $rapid_account_scan; private $ai_extra_warn; private $ai_hoster; private $report_mask; private $noPrefix; private $addPrefix; private $mnemo; private $small; private $file; private $echo; private $template; private $max_size; private $start; private $doublecheck; public function __construct($mnemo, $path, $db_location, $db_meta_info_version, $report_mask, $extended_report, $rapid_account_scan, $ai_version, $ai_hoster, $ai_extra_warn, $ai_expert, $ai_smart, $root_path, $scan_all, $specific_ext, $doublecheck, $use_doublecheck, $start, $snum, $max_size, $add_prefix, $no_prefix, $small = false, $file = false, $echo = false, $stat = false) { $this->mnemo = $mnemo; $this->ai_extra_warn = $ai_extra_warn; $this->extended_report = $extended_report; $this->rapid_account_scan = $rapid_account_scan; $this->ai_hoster = $ai_hoster; $this->report_mask = $report_mask; $this->addPrefix = $add_prefix; $this->noPrefix = $no_prefix; $this->small = $small; $this->echo = $echo; $this->max_size = $max_size; $this->start = $start; $this->doublecheck = $doublecheck; $this->raw_report = ''; $this->file = $file; if($this->file) { @unlink($this->file); @unlink($this->file . '.tmp'); } if (file_exists(dirname(__FILE__) . '/ai-design.html')) { $this->template = Template::create(file_get_contents(dirname(__FILE__) . '/ai-design.html')); } else { $this->template = Template::create(TemplateList::MAIN_PAGE); $this->template->set('msg1', Translate::getStr('data_table.length_menu')); $this->template->set('msg2', Translate::getStr('data_table.zero_records')); $this->template->set('msg3', Translate::getStr('data_table.info')); $this->template->set('msg4', Translate::getStr('data_table.info_empty')); $this->template->set('msg5', Translate::getStr('data_table.info_filtered')); $this->template->set('msg6', Translate::getStr('data_table.search')); $this->template->set('msg7', Translate::getStr('data_table.paginate.first')); $this->template->set('msg8', Translate::getStr('data_table.paginate.previous')); $this->template->set('msg9', Translate::getStr('data_table.paginate.next')); $this->template->set('msg10', Translate::getStr('data_table.paginate.last')); $this->template->set('msg11', Translate::getStr('data_table.aria.sort_ascending')); $this->template->set('msg12', Translate::getStr('data_table.aria.sort_descending')); } $this->template->set('MAIN_TITLE', Translate::getStr('header.scan_report_title')); $this->template->set('MODE', $ai_expert . '/' . $ai_smart); if (AI_EXPERT == 0) { $this->raw_report .= '<div class="rep">' . Translate::getStr('scan.offer_modes_after_express') . '</div>'; } $this->template->set('HEAD_TITLE', Translate::getStr('report_for') . $this->addPrefix . str_replace($this->noPrefix, '', $root_path)); $this->template->set('SERVICE_INFO', htmlspecialchars("[" . @ini_get('mbstring.internal_encoding') . "][" . $snum . "]")); $this->template->set('PATH_URL', (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $this->addPrefix . str_replace($this->noPrefix, '', $this->addSlash($root_path)))); $this->template->set('VERSION', $ai_version); $this->template->set('WARN_QUICK', (($scan_all || $specific_ext) ? '' : Translate::getStr('notice.scan_express', [$doublecheck]))); if ($use_doublecheck) { if (Translate::getStr('file.scanned_manual', [$this->doublecheck, $this->doublecheck]) != '') { $this->raw_report .= '<div class="rep">' . Translate::getStr('file.scanned_manual', [$this->doublecheck, $this->doublecheck]) . '</div>'; } } } public function generateReport($vars, $scan_time) { $l_ShowOffer = false; $this->template->set('SCANNED', Translate::getStr('info.files_checked', [$vars->totalFolder, $vars->totalFiles])); $l_Summary = '<div class="title">' . Translate::getStr('report.summary') . '</div>'; $l_Summary .= '<table cellspacing=0 border=0>'; if (count($vars->criticalPHP) > 0) { $l_Summary .= $this->makeSummary(Translate::getStr('malware'), count($vars->criticalPHP), "crit"); } if (count($vars->criticalJS) > 0) { $l_Summary .= $this->makeSummary(Translate::getStr('js_virused'), count($vars->criticalJS), "crit"); } if (count($vars->phishing) > 0) { $l_Summary .= $this->makeSummary(Translate::getStr('phishing_pages'), count($vars->phishing), "crit"); } if (count($vars->notRead) > 0) { $l_Summary .= $this->makeSummary(Translate::getStr('error.read_file'), count($vars->notRead), "crit"); } if (count($vars->warningPHP) > 0) { $l_Summary .= $this->makeSummary(Translate::getStr('suspicious'), count($vars->warningPHP), "warn"); } if (count($vars->bigFiles) > 0) { $l_Summary .= $this->makeSummary(Translate::getStr('skipped_large_file'), count($vars->bigFiles), "warn"); } if (count($vars->symLinks) > 0) { $l_Summary .= $this->makeSummary(Translate::getStr('link.symbolic'), count($vars->symLinks), "warn"); } $l_Summary .= "</table>"; $l_ArraySummary = []; $l_ArraySummary["redirect"] = count($vars->redirect); $l_ArraySummary["critical_php"] = count($vars->criticalPHP); $l_ArraySummary["critical_js"] = count($vars->criticalJS); $l_ArraySummary["phishing"] = count($vars->phishing); $l_ArraySummary["unix_exec"] = 0; // count($g_UnixExec); $l_ArraySummary["iframes"] = 0; // count($g_Iframer); $l_ArraySummary["not_read"] = count($vars->notRead); $l_ArraySummary["base64"] = 0; // count($g_Base64); $l_ArraySummary["heuristics"] = 0; // count($g_HeuristicDetected); $l_ArraySummary["symlinks"] = count($vars->symLinks); $l_ArraySummary["big_files_skipped"] = count($vars->bigFiles); $l_ArraySummary["suspicious"] = count($vars->warningPHP); if (function_exists('json_encode')) { $l_Summary .= "<!--[json]" . json_encode($l_ArraySummary) . "[/json]-->"; } $l_Summary .= "<div class=details style=\"margin: 20px 20px 20px 0\">" . Translate::getStr('notice.files_may_not_malicious') . "</div>\n"; $this->template->set('SUMMARY', $l_Summary); $this->raw_report .= Translate::getStr('critical.title'); if(!$this->ai_hoster) { if (count($vars->vulnerable) > 0) { $this->raw_report .= '<div class="note_vir">' . Translate::getStr('script.vulnerable') . ' (' . count($vars->vulnerable) . ')</div><div class="crit">'; foreach ($vars->vulnerable as $l_Item) { $this->raw_report .= '<li>' . AibolitHelpers::makeSafeFn($vars->structure['n'][$l_Item['ndx']], $this->addPrefix, $this->noPrefix, true) . ' - ' . $l_Item['id'] . '</li>'; } $this->raw_report .= '</div><p>' . PHP_EOL; } } if (count($vars->criticalPHP) > 0) { $criticalPHP = array_slice($vars->criticalPHP, 0, self::MAX_ROWS); $this->raw_report .= '<div class="note_vir">' . Translate::getStr('detected.shell_scripts') . ' (' . count($criticalPHP) . ')</div><div class="crit">'; $this->raw_report .= $this->printList($criticalPHP, $vars, $vars->criticalPHPFragment, $vars->criticalPHPSig, 'table_crit'); $this->raw_report .= '</div>' . PHP_EOL; $l_ShowOffer = true; } else { $this->raw_report .= '<div class="ok"><b>' . Translate::getStr('not_detected.shell_scripts') . '</b></div>'; } if (count($vars->criticalJS) > 0) { $criticalJS = array_slice($vars->criticalJS, 0, self::MAX_ROWS); $this->raw_report .= '<div class="note_vir">' . Translate::getStr('detected.javascript') . ' (' . count($criticalJS) . ')</div><div class="crit">'; $this->raw_report .= $this->printList($criticalJS, $vars, $vars->criticalJSFragment, $vars->criticalJSSig, 'table_vir'); $this->raw_report .= "</div>" . PHP_EOL; $l_ShowOffer = true; } if (count($vars->notRead) > 0) { $notRead = array_slice($vars->notRead, 0, self::AIBOLIT_MAX_NUMBER); $this->raw_report .= '<div class="note_vir">' . Translate::getStr('warning.reading_error') . ' (' . count($notRead) . ')</div><div class="crit">'; $this->raw_report .= $this->printList($notRead, $vars); $this->raw_report .= "</div><div class=\"spacer\"></div>" . PHP_EOL; } if (count($vars->phishing) > 0) { $this->raw_report .= '<div class="note_vir">' . Translate::getStr('detected.phishing_pages') . ' (' . count($vars->phishing) . ')</div><div class="crit">'; $this->raw_report .= $this->printList($vars->phishing, $vars, $vars->phishingFragment, $vars->phishingSigFragment, 'table_vir'); $this->raw_report .= "</div>" . PHP_EOL; $l_ShowOffer = true; } if (count($vars->redirect) > 0) { $l_ShowOffer = true; $this->raw_report .= '<div class="note_vir">' . Translate::getStr('suspicion.htaccess') . ' (' . count($vars->redirect) . ')</div><div class="crit">'; $this->raw_report .= "</div>" . PHP_EOL; } if (count($vars->symLinks) > 0) { $symLinks = array_slice($vars->symLinks, 0, self::AIBOLIT_MAX_NUMBER); $this->raw_report .= '<div class="note_vir">' . Translate::getStr('symlinks') . ' (' . count($symLinks) . ')</div><div class="crit">'; $this->raw_report .= nl2br(AibolitHelpers::makeSafeFn(implode("\n", $symLinks), $this->addPrefix, $this->noPrefix, true)); $this->raw_report .= "</div><div class=\"spacer\"></div>"; } if ($this->ai_extra_warn) { $l_WarningsNum = count($vars->warningPHP); if ($l_WarningsNum > 0) { $this->raw_report .= "<div style=\"margin-top: 20px\" class=\"title\">" . Translate::getStr('warnings') . "</div>"; } if ($l_WarningsNum > 0) { $warningPHP = array_slice($vars->warningPHP, 0, self::AIBOLIT_MAX_NUMBER); $this->raw_report .= '<div class="note_warn">' . Translate::getStr('suspicion.code') . ' (' . count($warningPHP) . ')</div><div class="warn">'; $this->raw_report .= $this->printList($warningPHP, $vars, $vars->warningPHPFragment, $vars->warningPHPSig, 'table_warn'); $this->raw_report .= '</div>' . PHP_EOL; } } $l_WarningsNum = count($vars->bigFiles) + count($vars->adwareList) + count($vars->doorway) + count($vars->warningPHP) + count($vars->skippedFolders); if ($l_WarningsNum > 0) { $this->raw_report .= "<div style=\"margin-top: 20px\" class=\"title\">" . Translate::getStr('warnings') . "</div>"; } if (count($vars->adwareList) > 0) { $this->raw_report .= '<div class="note_warn">' . Translate::getStr('detected.bad_links') . '</div><div class="warn">'; $this->raw_report .= $this->printList($vars->adwareList, $vars, $vars->adwareListFragment); $this->raw_report .= "</div>" . PHP_EOL; } if (count($vars->bigFiles) > 0) { $bigFiles = array_slice($vars->bigFiles, 0, self::AIBOLIT_MAX_NUMBER); $this->raw_report .= "<div class=\"note_warn\">" . Translate::getStr('skipped.large_file', [$this->max_size]) . '</div><div class="warn">'; $this->raw_report .= nl2br(AibolitHelpers::makeSafeFn(implode("\n", $bigFiles), $this->addPrefix, $this->noPrefix, true)); $this->raw_report .= "</div>"; } if (count($vars->doorway) > 0) { $doorway = array_slice($vars->doorway, 0, self::AIBOLIT_MAX_NUMBER); $this->raw_report .= '<div class="note_warn">' . Translate::getStr('suspicion.doorway') . '</div><div class="warn">'; $this->raw_report .= nl2br(AibolitHelpers::makeSafeFn(implode("\n", $doorway), $this->addPrefix, $this->noPrefix, true)); $this->raw_report .= "</div>" . PHP_EOL; } if (count($vars->CMS) > 0) { $this->raw_report .= "<div class=\"note_warn\">" . Translate::getStr('founded_CMS') . "<br/>"; $this->raw_report .= nl2br(AibolitHelpers::makeSafeFn(implode("\n", $vars->CMS), $this->addPrefix, $this->noPrefix)); $this->raw_report .= "</div>"; } if (function_exists('memory_get_peak_usage')) { $this->template->set('MEMORY', Translate::getStr('memory_used') . AibolitHelpers::bytes2Human(memory_get_peak_usage())); } if ($l_ShowOffer) { $this->template->set('OFFER', Translate::getStr('offer.when_has_critical')); } else { $this->template->set('OFFER', Translate::getStr('offer.when_no_critical')); } $this->template->set('OFFER_OUR_PRODUCTS', Translate::getStr('offer_our_products')); $this->template->set('CAUTION', Translate::getStr('сaution.aibolit_file')); $this->template->set('CREDITS', Translate::getStr('info.non_commercial_use')); $this->template->set('FOOTER', Translate::getStr('footer')); $this->template->set('STAT', Translate::getStr('info.time_elapsed', [$scan_time, date('d-m-Y в H:i:s', floor($this->start)), date('d-m-Y в H:i:s')])); //////////////////////////////////////////////////////////////////////////// $this->template->set('MAIN_CONTENT', $this->raw_report); } public function write() { $ret = ''; $res = $this->template->render(); if ($l_FH = fopen($this->file . '.tmp', "w")) { fputs($l_FH, $res); fclose($l_FH); } if (rename($this->file . '.tmp', $this->file)) { $ret = "Report written to '$this->file'."; } else { $ret = "Cannot create '$this->file'."; } return $ret; } //////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////// private function makeSummary($par_Str, $par_Number, $par_Style) { return '<tr><td class="' . $par_Style . '" width=400>' . $par_Str . '</td><td class="' . $par_Style . '">' . $par_Number . '</td></tr>'; } private function printList($par_List, $vars, $par_Details = null, $par_SigId = null, $par_TableName = null) { $i = 0; if ($par_TableName == null) { $par_TableName = 'table_' . rand(1000000, 9000000); } $l_Result = ''; $l_Result .= "<div class=\"flist\"><table cellspacing=1 cellpadding=4 border=0 id=\"" . $par_TableName . "\">"; $l_Result .= "<thead><tr class=\"tbgh" . ($i % 2) . "\">"; $l_Result .= "<th width=70%>" . Translate::getStr('path') . "</th>"; $l_Result .= "<th>" . Translate::getStr('property_change') . "</th>"; $l_Result .= "<th>" . Translate::getStr('content_change') . "</th>"; $l_Result .= "<th width=90>" . Translate::getStr('size') . "</th>"; $l_Result .= "<th width=0 class=\"hidd\">CRC32</th>"; $l_Result .= "<th width=0 class=\"hidd\"></th>"; $l_Result .= "<th width=0 class=\"hidd\"></th>"; $l_Result .= "<th width=0 class=\"hidd\"></th>"; $l_Result .= "</tr></thead><tbody>"; for ($i = 0, $iMax = count($par_List); $i < $iMax; $i++) { if ($par_SigId != null) { $l_SigId = 'id_' . $par_SigId[$i]; } else { $l_SigId = 'id_z' . rand(1000000, 9000000); } $l_Pos = $par_List[$i]; $l_Creat = $vars->structure['c'][$l_Pos] > 0 ? date("d/m/Y H:i:s", $vars->structure['c'][$l_Pos]) : '-'; $l_Modif = $vars->structure['m'][$l_Pos] > 0 ? date("d/m/Y H:i:s", $vars->structure['m'][$l_Pos]) : '-'; $l_Size = $vars->structure['s'][$l_Pos] > 0 ? AibolitHelpers::bytes2Human($vars->structure['s'][$l_Pos]) : '-'; if ($par_Details != null) { $l_WithMarker = preg_replace('|__AI_MARKER__|smi', '<span class="marker"> </span>', $par_Details[$i]); $l_Body = '<div class="details">'; if ($par_SigId != null) { $l_Body .= '<a href="#" onclick="return hsig(\'' . $l_SigId . '\')">[x]</a> '; } $l_Body .= $l_WithMarker . '</div>'; } else { $l_Body = ''; } $l_Result .= '<tr class="tbg' . ($i % 2) . '" o="' . $l_SigId . '">'; if (is_file($vars->structure['n'][$l_Pos])) { $l_Result .= '<td><div class="it"><a class="it">' . AibolitHelpers::makeSafeFn($this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$l_Pos]), $this->addPrefix, $this->noPrefix) . '</a></div>' . $l_Body . '</td>'; } else { $l_Result .= '<td><div class="it"><a class="it">' . AibolitHelpers::makeSafeFn($this->addPrefix . str_replace($this->noPrefix, '', $vars->structure['n'][$par_List[$i]]), $this->addPrefix, $this->noPrefix) . '</a></div></td>'; } $l_Result .= '<td align=center><div class="ctd">' . $l_Creat . '</div></td>'; $l_Result .= '<td align=center><div class="ctd">' . $l_Modif . '</div></td>'; $l_Result .= '<td align=center><div class="ctd">' . $l_Size . '</div></td>'; $l_Result .= '<td class="hidd"><div class="hidd">' . $vars->structure['crc'][$l_Pos] . '</div></td>'; $l_Result .= '<td class="hidd"><div class="hidd">' . 'x' . '</div></td>'; $l_Result .= '<td class="hidd"><div class="hidd">' . $vars->structure['m'][$l_Pos] . '</div></td>'; $l_Result .= '<td class="hidd"><div class="hidd">' . $l_SigId . '</div></td>'; $l_Result .= '</tr>'; } $l_Result .= "</tbody></table></div><div class=clear style=\"margin: 20px 0 0 0\"></div>"; return $l_Result; } private function addSlash($dir) { return rtrim($dir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR; } } class CloudAssistedFiles { private $white = []; private $black = []; public function __construct(CloudAssistedRequest $car, $file_list, $vars) { $list_of_hash = []; $list_of_filepath = []; foreach ($file_list as $index => $filepath) { if (!file_exists($filepath) || !is_readable($filepath) || is_dir($filepath)) { continue; } try { $list_of_hash[] = hash_file('sha256', $filepath); $list_of_filepath[] = $filepath; } catch (Exception $e) { } } unset($file_list); if ($vars->hashtable !== null) { $vars->hashtable->add($list_of_filepath, $list_of_hash); } try { list($white_raw, $black_raw, $verdicts_black_raw) = $car->checkFilesByHash($list_of_hash); } catch (Exception $e) { throw $e; } $this->white = $this->getListOfFile($white_raw, $list_of_hash, $list_of_filepath); $this->black = $this->getListOfFile($black_raw, $list_of_hash, $list_of_filepath, $verdicts_black_raw); unset($white_raw, $black_raw, $verdicts_black_raw, $list_of_hash, $list_of_filepath); } public function getWhiteList() { return $this->white; } public function getBlackList() { return $this->black; } // ========================================================================= private function getListOfFile($data_raw, $list_of_hash, $list_of_filepath, $verdicts = []) { $result = []; foreach ($data_raw as $index => $hash_index) { if (!isset($list_of_hash[$hash_index])) { continue; } $hash_result = [ 'h' => $list_of_hash[$hash_index], 'ts' => time(), ]; if ($verdicts) { if (!isset($verdicts[$index])) { throw new Exception('Wrong CloudAssisted format. List of verdicts has structure different from main list.'); } $hash_result['sn'] = $verdicts[$index]; } $result[$list_of_filepath[$hash_index]] = $hash_result; } return $result; } } class DetachedMode { protected $workdir; protected $scan_id; protected $pid_file; protected $report_file; protected $csvreport_file; protected $done_file; protected $vars; protected $start_time; protected $json_report; protected $sock_file; protected $reports; protected $finder; protected $debug; public function __construct($finder, $debug, $scan_id, $vars, $start_time, $json_report, $basedir = '/var/imunify360/aibolit/run', $sock_file = '/var/run/defence360agent/generic_sensor.sock.2') { $this->scan_id = $scan_id; $this->vars = $vars; $this->setWorkDir($basedir, $scan_id); $this->pid_file = $this->workdir . '/pid'; $this->report_file = $this->workdir . '/report.json'; $this->csvreport_file = $this->workdir . '/report.csv'; $this->done_file = $this->workdir . '/done'; $this->start_time = $start_time; $this->json_report = $json_report; $this->setSocketFile($sock_file); $this->savePid(); $this->checkWorkDir($this->workdir); if (isset($vars->options['json_report']) && !empty($vars->options['json_report']) && $vars->options['json_report'] !== '.') { $this->report_file = $vars->options['json_report']; } if (isset($vars->options['csv_report']) && !empty($vars->options['csv_report']) && $vars->options['csv_report'] !== '.') { $this->csvreport_file = $vars->options['csv_report']; $this->reports[CSVReport::class] = $this->csvreport_file; } $this->reports[JSONReport::class] = $this->report_file; $this->finder = $finder; $this->debug = $debug; } public function scanListing($listing, $use_base64) { $this->checkList($listing); $this->scanFilesFromListingFile($listing, $use_base64); $this->writeReport(); $this->complete(); } public function scanDirectories($dir) { file_exists(QUEUE_FILENAME) && unlink(QUEUE_FILENAME); $scan = new Scanner($this->finder, $this->vars); if (method_exists($scan, 'QCR_ScanDirectories')) { $scan->QCR_ScanDirectories($dir); } $this->scanFilesFromListingFile(QUEUE_FILENAME, true); file_exists(QUEUE_FILENAME) && unlink(QUEUE_FILENAME); $this->writeReport(); $this->complete(); unset($scan); } // ///////////////////////////////////////////////////////////////////////// protected function scanFilesFromListingFile($list_filepath, $use_base64 = false) { if (!is_file($list_filepath) || !is_readable($list_filepath)) { $this->vars->foundTotalFiles = 0; return; } $s_file = new SplFileObject($list_filepath); $s_file->setFlags(SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE); $s_file->seek($s_file->getSize()); $this->vars->foundTotalFiles = $s_file->key(); $s_file->seek(0); $scan = new Scanner($this->finder, $this->vars); if (method_exists($scan, 'QCR_GoScan')) { $scan->QCR_GoScan($s_file, null, $use_base64, false, $this->finder->getFilter()); $this->vars->bigFiles = $this->finder->getBigFiles(); if (count($this->vars->bigFiles) > 0) { $scan->prepareBigFilesToCriticalList($this->vars->bigFiles, $this->vars); } $bigElfs = $this->finder->getBigElfFiles(); if (count($bigElfs) > 0) { $scan->prepareBigElfFilesToCriticalSusList($bigElfs, $this->vars); } $scan->whitelisting(); } unset($scan); unset($s_file); unset($bigElfs); } protected function checkWorkDir($workdir) { if (!file_exists($workdir) && !mkdir($workdir) && !is_dir($workdir)) { die('Error! Cannot create workdir ' . $workdir . ' for detached scan.'); } elseif (file_exists($workdir) && !is_writable($workdir)) { die('Error! Workdir ' . $workdir . ' is not writable.'); } } protected function checkList($listing) { if (!file_exists($listing) || !is_readable($listing)) { die('Error! Listing file ' . $listing . ' not exists or not readable'); } } protected function savePid() { file_put_contents($this->pid_file, strval(getmypid())); } protected function writeReport() { $scan_time = round(microtime(true) - $this->start_time, 1); foreach($this->json_report->call($this, $this->reports) as $json_report) { $json_report->generateReport($this->vars, $scan_time); $json_report->write(); } } protected function complete() { @touch($this->done_file); $complete = [ 'method' => 'MALWARE_SCAN_COMPLETE', 'scan_id' => $this->scan_id, ]; $json_complete = json_encode($complete) . "\n"; $socket = fsockopen('unix://' . $this->sock_file); stream_set_blocking($socket, false); fwrite($socket, $json_complete); fclose($socket); } protected function setWorkDir($dir, $scan_id) { $this->workdir = $dir . '/' . $scan_id; } protected function setSocketFile($sock) { $this->sock_file = $sock; } } /** * Class ResidentMode used to stay aibolit alive in memory and wait for a job. */ class ResidentMode { /** * check upload folder every N seconds */ const CHECK_UPLOAD_TIME = 3; /** * time of last check upload jobs folder * @var */ protected $last_dir_check; /** * parent dir for all resident aibolit related * @var string */ protected $resident_dir; /** * directory for all jobs to be processed by aibolit * @var string */ protected $resident_in_dir; /** * directory with all the malicious files reports to be processed by imunify * @var string */ protected $resident_out_dir; /** * resident aibolit pid * @var string */ protected $aibolit_pid; /** * file lock used to make sure we start only one aibolit * @var string */ protected $aibolit_start_lock; /** * status file used to make sure aibolit didn't get stuck * @var string */ protected $aibolit_status_file; /** * number of seconds while aibolit will stay alive, while not receiving any work * @var int */ protected $stay_alive; /** * maximum number of seconds without updating ABOLIT_STATUS_FILE, * used to track if AIBOLIT is stuck, should be killed * @var int */ protected $stuck_timeout; /** * number of seconds scripts would wait for aibolit to finish / send signal * @var int */ protected $upload_timeout; /** * max number of files to pick * @var int */ protected $max_files_per_notify_scan; /** * timestamp of last scan * @var int */ protected $last_scan_time; /** * time to sleep between lifecycle iterations in microseconds */ protected $sleep_time; protected $scannedNotify = 0; protected $report; protected $logger; protected $resident_in_dir_notify; protected $resident_in_dir_upload; protected $watchdog_socket; protected $activation_socket; protected $systemd = false; protected $interval = 0; protected $lastKeepAlive = 0; protected $signs; protected $finder; protected $options; const JOB_UPLOAD = 'upload'; const JOB_NOTIFY = 'notify'; protected $upload_jobs = []; protected $notify_jobs = []; /** * ResidentMode constructor. * * @param $finder * @param $debug * @param Closure $report * @param $signs * @param Logger|null $logger * @param array $options * @param string $resident_dir * @param int $stay_alive * @param int $stuck_timeout * @param int $upload_timeout * @param int $max_files_per_notify_scan * @param int $sleep_time */ public function __construct( $finder, $debug, Closure $report, $signs, Logger $logger = null, $options = null, $resident_dir = '/var/imunify360/aibolit/resident', $stay_alive = 30, $stuck_timeout = 5, $upload_timeout = 10, $max_files_per_notify_scan = 500, $sleep_time = 100000 ) { $this->signs = $signs; $this->setResidentDir($resident_dir); $this->resident_in_dir = $this->resident_dir . '/in'; $this->resident_in_dir_upload = $this->resident_in_dir . '/upload-jobs'; $this->resident_in_dir_notify = $this->resident_in_dir . '/notify-jobs'; $this->resident_out_dir = $this->resident_dir . '/out'; $this->aibolit_pid = $this->resident_dir . '/aibolit.pid'; $this->aibolit_start_lock = $this->resident_dir . '/start.lock'; $this->aibolit_status_file = $this->resident_dir . '/aibolit.status'; $this->stay_alive = $stay_alive; $this->stuck_timeout = $stuck_timeout; $this->upload_timeout = $upload_timeout; if (!empty($max_files_per_notify_scan)) { $this->max_files_per_notify_scan = $max_files_per_notify_scan; } $this->sleep_time = $sleep_time; $this->report = $report; $this->logger = $logger; $this->options = $options; umask(0); if (!file_exists($this->resident_dir)) { if (!mkdir($this->resident_dir, 0777, true) && !is_dir($this->resident_dir)) { throw new Exception(sprintf('Directory "%s" was not created', $this->resident_dir)); } } if (!file_exists($this->resident_in_dir)) { if (!mkdir($this->resident_in_dir, 0755) && !is_dir($this->resident_in_dir)) { throw new Exception(sprintf('Directory "%s" was not created', $this->resident_in_dir)); } } if (!file_exists($this->resident_out_dir)) { if (!mkdir($this->resident_out_dir, 0755) && !is_dir($this->resident_out_dir)) { throw new Exception(sprintf('Directory "%s" was not created', $this->resident_out_dir)); } } if (!file_exists($this->resident_in_dir_notify)) { if (!mkdir($this->resident_in_dir_notify, 0700) && !is_dir($this->resident_in_dir_notify)) { throw new Exception(sprintf('Directory "%s" was not created', $this->resident_in_dir_notify)); } } if (!file_exists($this->resident_in_dir_upload)) { if (!mkdir($this->resident_in_dir_upload, 01777) && !is_dir($this->resident_in_dir_upload)) { throw new Exception(sprintf('Directory "%s" was not created', $this->resident_in_dir_upload)); } } $this->checkSpecs(); $addr = getenv('NOTIFY_SOCKET'); if ($addr[0] == '@') { $addr = "\0"; } if ($addr) { $this->systemd = true; } if ($this->systemd) { $this->watchdog_socket = fsockopen('udg://' . $addr); stream_set_blocking($this->watchdog_socket, false); $this->activation_socket = fopen('php://fd/3', 'r'); if ($this->activation_socket === false) { die("Something went wrong with activation socket."); } stream_set_blocking($this->activation_socket, false); if (getenv('WATCHDOG_USEC') !== false) { $this->interval = intval(getenv('WATCHDOG_USEC')); } else { $this->interval = 1000000; } } $this->finder = $finder; $this->debug = isset($debug) ? $debug : null; $this->lifeCycle(); } protected function isRootWriteable($folder) { if (!file_exists($folder) || !is_dir($folder)) { return false; } $owner_id = (int)fileowner($folder); if (function_exists('posix_getpwuid')) { $owner = posix_getpwuid($owner_id); if (!isset($owner['name']) || $owner['name'] !== 'root') { return false; } } elseif ($owner_id != 0) { return false; } $perms = fileperms($folder); if (($perms & 0x0100) // owner r && ($perms & 0x0080) // owner w && ($perms & 0x0040) && !($perms & 0x0800) // owner x && !($perms & 0x0010) // group without w && !($perms & 0x0002) // other without w ) { return true; } return false; } protected function isWorldWriteable($folder) { if (!file_exists($folder) || !is_dir($folder)) { return false; } $perms = fileperms($folder); if (($perms & 0x0004) // other r && ($perms & 0x0002) // other w && ($perms & 0x0200) // sticky bit ) { return true; } return false; } protected function checkSpecs() { if (!extension_loaded('posix')) { die('Error! For resident scan need posix extension.'); } elseif (!$this->isRootWriteable($this->resident_in_dir_notify)) { die('Error! Notify in dir ' . $this->resident_in_dir_notify . ' must be root writeable.'); } elseif (!$this->isWorldWriteable($this->resident_in_dir_upload)) { die('Error! Upload in dir ' . $this->resident_in_dir_upload . ' must be world writeable.'); } } protected function setResidentDir($dir) { $this->resident_dir = $dir; } protected function writeReport($vars, $scan_time, $type, $file) { $file = basename($file); $critPHP = count($vars->criticalPHP); $critJS = count($vars->criticalJS); $black = count($vars->blackFiles); $warning = count($vars->warningPHP); $malware = ($critPHP > 0) || ($critJS > 0) || ($black > 0) || ($warning > 0); if ($malware) { $this->debugLog("Job {$file}: Found malware. PHP: {$critPHP}; JS: {$critJS}; Black: {$black}; SUS: {$warning}"); } else { $this->debugLog("Job {$file}: No malware found."); } if ($type == 'upload') { $pid = (int)basename($file, '.upload_job'); if ($malware) { $this->debugLog("Job {$file}: Sending SIGUSR1 to {$pid}"); posix_kill($pid, SIGUSR1); } else { $this->debugLog("Job {$file}: Sending SIGUSR2 to {$pid}"); posix_kill($pid, SIGUSR2); } } elseif ($type == 'notify' && $malware) { $filename = basename($file, '.notify_job'); $reports[JSONReport::class] = $this->resident_out_dir . '/' . $filename . '.report'; foreach($this->report->call($this, $reports) as $report) { $report->generateReport($vars, $scan_time); $this->debugLog("Job {$file}: Creating report for job in {$filename}.report"); $report->write(); } unset($reports); } } /** * @param string $pattern * @param string $type * * @return bool */ protected function isJobFileExists($pattern, $type) { if ($type === self::JOB_UPLOAD) { if (empty($this->upload_jobs)) { $this->upload_jobs = glob($this->resident_in_dir . $pattern); if (!empty($this->upload_jobs)) { return true; } } else { return true; } } if ($type === self::JOB_NOTIFY) { if (empty($this->notify_jobs)) { $this->notify_jobs = glob($this->resident_in_dir . $pattern); if (!empty($this->notify_jobs)) { return true; } } else { return true; } } return false; } protected function isUploadJob() { $this->last_dir_check = microtime(true); if ($this->isJobFileExists('/upload-jobs/*.upload_job', self::JOB_UPLOAD)) { return true; } return false; } protected function scanJob($job_file, $type) { $start_time = microtime(true); $vars = new Variables(); $vars->blacklist = $this->blacklist; if ($type === 'notify') { $this->finder->getFilter()->setSkipSystemOwner(isset($this->options['skip-system-owner'])); } else { $this->finder->getFilter()->setSkipSystemOwner(false); } $vars->signs = $this->signs; $vars->users = new UserList(); $vars->options = $this->options; $files_to_scan = array(); $count = 0; $job = json_decode(file_get_contents($job_file)); $file = basename($job_file); $this->debugLog("Job {$file} received from queue."); if ($type == 'notify') { $files_to_scan = $job->files; $count = count($files_to_scan); $this->debugLog("Job {$file}: notify. {$count} files to be scanned"); if ($count > $this->max_files_per_notify_scan) { $this->debugLog("Job {$file}: Too many files to scan. Job skipped."); // TODO: show a warning: too many files to scan, the job was skipped return true; } if ($this->scannedNotify + $count > $this->max_files_per_notify_scan) { $this->scannedNotify = 0; unset($vars, $files_to_scan); return false; } else { $this->scannedNotify += $count; } } elseif ($type == 'upload') { $files_to_scan = $job->files; $count = count($files_to_scan); $this->debugLog("Job {$file}: upload. {$count} files to be scanned"); if ($count > 1) { $this->debugLog("Job {$file}: Too many files to scan. Job skipped."); // TODO: show a warning: too many files to scan, the job was skipped return true; } } $vars->foundTotalFiles = $count; $scan = new Scanner($this->finder, $vars, $this->debug); if (method_exists($scan, 'QCR_GoScan')) { if ($this->systemd) { $scan->QCR_GoScan($files_to_scan, [$this, 'keepAlive'], true, false, $this->finder->getFilter()); } else { $scan->QCR_GoScan($files_to_scan, null, true, false, $this->finder->getFilter()); } $scan->whitelisting(); } $scan_time = round(microtime(true) - $start_time, 1); $this->last_scan_time = time(); $this->writeReport($vars, $scan_time, $type, $job_file); unset($vars, $files_to_scan, $scan); if (defined('PROGRESS_LOG_FILE') && file_exists(PROGRESS_LOG_FILE)) { @unlink(PROGRESS_LOG_FILE); } if (defined('CREATE_SHARED_MEMORY') && CREATE_SHARED_MEMORY) { shmop_delete(SHARED_MEMORY); } if (defined('SHARED_MEMORY')) { shmop_close(SHARED_MEMORY); } return true; } protected function isNotifyJob() { if ($this->isJobFileExists('/notify-jobs/*.notify_job', self::JOB_NOTIFY)) { return true; } return false; } protected function scanUploadJob() { if (!empty($this->upload_jobs)) { foreach ($this->upload_jobs as $index => $upload_job) { $this->scanJob($upload_job, 'upload'); $file = basename($upload_job); $this->debugLog("Job {$file}: Removing job."); unlink($upload_job); unset($this->upload_jobs[$index]); } } } protected function scanNotifyJob() { if (!empty($this->notify_jobs)) { foreach ($this->notify_jobs as $index => $job) { $res = $this->scanJob($job, 'notify'); if ($res) { $file = basename($job); $this->debugLog("Job {$file}: Removing job."); unlink($job); unset($this->notify_jobs[$index]); } else { break; } } } } public function keepAlive() { if ((int)((microtime(true) - $this->lastKeepAlive) * 1000000) > $this->interval / 2) { stream_get_contents($this->activation_socket); fwrite($this->watchdog_socket, 'WATCHDOG=1'); $this->lastKeepAlive = microtime(true); } if (((microtime(true) - $this->last_dir_check) > self::CHECK_UPLOAD_TIME) && !$this->isDirEmpty($this->resident_in_dir_upload) && $this->isUploadJob() ) { $this->scanUploadJob(); } } protected function isDirEmpty($dir) { $it = new \FilesystemIterator($dir); return !$it->valid(); } protected function lifeCycle() { $this->debugLog("Starting resident-mode loop."); $this->last_scan_time = time(); while (true) { if ($this->systemd) { $this->keepAlive(); } while ($this->isUploadJob()) { $this->scanUploadJob(); } while ($this->isNotifyJob() && !$this->isUploadJob()) { $this->scanNotifyJob(); } if ($this->last_scan_time + $this->stay_alive < time()) { $this->debugLog("No more jobs. Shutting down."); break; } touch($this->aibolit_status_file); usleep($this->sleep_time); // 1/10 of second by default } if ($this->systemd) { fclose($this->watchdog_socket); fclose($this->activation_socket); } unlink($this->aibolit_status_file); } protected function debugLog($message) { if ($this->logger === null) { return; } $this->logger->debug($message); } } class DebugMode { private $debugMode = false; private $debugPerfomance = false; private $perfomance_stats = []; public function __construct($debugMode, $debugPerfomance) { $this->debugMode = $debugMode; $this->debugPerfomance = $debugPerfomance; } public function QCR_Debug($par_Str = "") { if ($this->debugMode) { return; } $l_MemInfo = ' '; if (function_exists('memory_get_usage')) { $l_MemInfo .= ' curmem=' . AibolitHelpers::bytes2Human(memory_get_usage()); } if (function_exists('memory_get_peak_usage')) { $l_MemInfo .= ' maxmem=' . AibolitHelpers::bytes2Human(memory_get_peak_usage()); } stdOut("\n" . date('H:i:s') . ': ' . $par_Str . $l_MemInfo . "\n"); } public function getDebugMode() { return $this->debugMode; } public function getDebugPerfomance() { return $this->debugPerfomance; } public function addPerfomanceItem($item, $time) { $this->perfomance_stats[$item] = isset($this->perfomance_stats[$item]) ? $this->perfomance_stats[$item] + $time : 0; } public function printPerfomanceStats() { $keys = array_keys($this->perfomance_stats); for ($i = 0, $iMax = count($keys); $i < $iMax; $i++) { $this->perfomance_stats[$keys[$i]] = round($this->perfomance_stats[$keys[$i]] * 1000000); } arsort($this->perfomance_stats); foreach ($this->perfomance_stats as $r => $v) { echo $v . "\t\t" . $r . "\n"; } } } class FileInfo { private $index = 0; private $inode = 0; private $filename = ''; private $size = 0; private $created = 0; private $modified = 0; private $hash = 0; private $sha256 = 0; private $sha1file = 0; private $content = ''; private $norm_content = ''; private $is_binary = 0; private $hashtable = null; private $uid = false; private $gid = false; private $mode = false; private $chunk_read = false; /** * @return int|string */ public function getSha1file() { if ($this->sha1file == 0) { $this->sha1file = sha1_file($this->filename); } return $this->sha1file; } /** * @return int|string */ public function getSha256file() { return hash_file('sha256', $this->filename); } public function __construct($filename, $index, $hashtable = null) { $this->index = $index; $this->filename = $filename; $this->hashtable = $hashtable; } /** * @return bool */ public function isBinary() { $header = ''; if ($this->is_binary !== 0) { return $this->is_binary; } if ($this->content == '') { $header = @file_get_contents($this->filename, false, null, 0, 4); } else { $header = substr($this->content, 0, 4); } $this->is_binary = ($header === chr(127) . 'ELF'); unset($header); return $this->is_binary; } /** * @return false|mixed|string */ public function getContent() { if ($this->content == '') { $this->content = @file_get_contents($this->filename); $this->chunk_read = false; } return $this->content; } /** * @return string */ public function getContentWithoutSpaces($max_size = false) { if($this->norm_content !== '') { return $this->norm_content; } if (!$max_size) { $this->norm_content = Normalization::strip_whitespace($this->getContent()); } else if(is_numeric($max_size)) { $this->norm_content = Normalization::strip_whitespace($this->getContentBytes($max_size)); } return $this->norm_content; } public function getContentBytes($max_bytes) { if ($this->content == '') { $this->content = @file_get_contents($this->filename, false, null, 0, $max_bytes); $this->chunk_read = true; } return $this->content; } /** * @param $text * @return string */ private function _hash_($text) { static $r; if (empty($r)) { for ($i = 0; $i < 256; $i++) { if ($i < 33 or $i > 127) { $r[chr($i)] = ''; } } } return sha1(strtr($text, $r)); } /** * @return integer */ public function getIndex() { return $this->index; } /** * @return string */ public function getFilename() { return $this->filename; } private function _setStat() { $info = stat($this->filename); $this->size = $info['size']; $this->created = $info['ctime']; $this->modified = $info['mtime']; $this->inode = $info['ino']; $this->uid = $info['uid']; $this->gid = $info['gid']; $this->mode = sprintf("0%o", 0777 & $info['mode']); } /** * @return int|mixed */ public function getSize() { if ($this->size == 0) { $this->_setStat(); } return $this->size; } /** * @return int|mixed */ public function isPartiallyRead() { return $this->chunk_read; } /** * @return int|mixed */ public function getInode() { if ($this->inode == 0) { $this->_setStat(); } return $this->inode; } /** * @return int|mixed */ public function getCreated() { if ($this->created == 0) { $this->_setStat(); } return $this->created; } /** * @return int|mixed */ public function getModified() { if ($this->modified == 0) { $this->_setStat(); } return $this->modified; } /** * @return int|string */ public function getHash() { if ($this->hash == 0) { $this->hash = $this->_hash_($this->getContentWithoutSpaces()); } return $this->hash; } /** * @return int|string */ public function getSha256() { if ($this->hashtable !== null && $this->hashtable->get($this->filename) !== false) { $this->sha256 = $this->hashtable->get($this->filename); } if ($this->hashtable === null && $this->sha256 === 0 && $this->content === '' ) { $this->sha256 = $this->getSha256file(); } if ($this->sha256 == 0) { $this->sha256 = hash('sha256', $this->getContent()); } return $this->sha256; } /** * @return int|mixed */ public function getUid() { if ($this->uid === false) { $this->_setStat(); } return $this->uid; } /** * @return int|mixed */ public function getGid() { if ($this->gid === false) { $this->_setStat(); } return $this->gid; } /** * @return int|mixed */ public function getMode() { if ($this->mode === false) { $this->_setStat(); } return $this->mode; } } class HashTable { private $hashes = []; public function add($paths, $hashes) { $this->hashes[0] = $paths; $this->hashes[1] = $hashes; } public function get($filename) { $index = array_search($filename, $this->hashes[0]); if ($index === false) { return false; } return $this->hashes[1][$index]; } } class Finder { const MAX_ALLOWED_PHP_HTML_IN_DIR = 600; private $sym_links = []; private $skipped_folders = []; private $doorways = []; private $big_files = []; private $big_elf_files = []; private $collect_skipped = false; private $collect_symLinks = false; private $collect_doorways = false; private $collect_bigfiles = false; private $collect_bigelffiles = false; private $total_dir_counter = 0; private $total_files_counter = 0; private $checked_hashes = []; private $initial_dir = ''; private $initial_level = null; private $level_limit = null; private $filter; public function __construct($filter = null, $level_limit = null) { $this->filter = $filter; $this->level_limit = $level_limit; } private function linkResolve($path) { return realpath($path); } private function resolve($path, $follow_symlinks) { if (!$follow_symlinks || !is_link($path)) { return $path; } return $this->linkResolve($path); } private function isPathCheckedAlready($path) { $root_hash = crc32($path); if (isset($this->checked_hashes[$root_hash])) { return true; } $this->checked_hashes[$root_hash] = ''; return false; } private function walk($path, $follow_symlinks) { $level = substr_count($path, '/'); if (isset($this->level_limit) && (($level - $this->initial_level + 1) > $this->level_limit)) { return; } $l_DirCounter = 0; $l_DoorwayFilesCounter = 0; if ($follow_symlinks && $this->isPathCheckedAlready($path)) { return; } # will not iterate dir, if it should be ignored if (!$this->filter->needToScan($path, false, true)) { if ($this->collect_skipped) { $this->skipped_folders[] = $path; } return; } $dirh = @opendir($path); if ($dirh === false) { return; } while (($entry = readdir($dirh)) !== false) { if ($entry == '.' || $entry == '..') { continue; } $entry = $path . DIRECTORY_SEPARATOR . $entry; if (is_link($entry)) { if ($this->collect_symLinks) { $this->sym_links[] = $entry; } if (!$follow_symlinks) { continue; } $real_path = $this->resolve($entry, true); } else { $real_path = $entry; } if (is_dir($entry)) { $l_DirCounter++; if ($this->collect_doorways && $l_DirCounter > self::MAX_ALLOWED_PHP_HTML_IN_DIR) { $this->doorways[] = $path; $l_DirCounter = -655360; } $this->total_dir_counter++; yield from $this->walk($real_path, $follow_symlinks); } else if (is_file($entry)) { $stat = stat($entry); if (!$stat) { continue; } if ($this->collect_doorways && is_callable([$this->filter, 'checkShortExt']) && $this->filter->checkShortExt($entry)) { $l_DoorwayFilesCounter++; if ($l_DoorwayFilesCounter > self::MAX_ALLOWED_PHP_HTML_IN_DIR) { $this->doorways[] = $path; $l_DoorwayFilesCounter = -655360; } } if ($follow_symlinks && $this->isPathCheckedAlready($real_path)) { continue; } if ($this->collect_bigfiles && is_callable([$this->filter, 'checkIsBig']) && $this->filter->checkIsBig($real_path)) { $this->big_files[] = $real_path; } if ($this->collect_bigelffiles && is_callable([$this->filter, 'checkIsBig']) && $this->filter->checkIsBig($real_path) && is_callable([$this->filter, 'checkIsElf']) && $this->filter->checkIsElf($real_path) ) { $this->big_elf_files[] = $real_path; } $need_to_scan = $this->filter->needToScan($real_path, $stat); if ($need_to_scan) { $this->total_files_counter++; yield $real_path; } } } closedir($dirh); } private function expandPath($path, $follow_symlinks) { if ($path) { if (is_dir($path)) { yield from $this->walk($path, $follow_symlinks); } else { if ($this->collect_bigfiles && is_callable([$this->filter, 'checkIsBig']) && $this->filter->checkIsBig($path)) { $this->big_files[] = $path; if ($this->collect_bigelffiles && is_callable([$this->filter, 'checkIsElf']) && $this->filter->checkIsElf($path)) { $this->big_elf_files[] = $path; } } $need_to_scan = $this->filter->needToScan($path); if ($need_to_scan) { yield $path; } } } } public function find($target) { if ($target === '/') { $target = '/*'; } if (is_string($target) && substr($target, -1) == DIRECTORY_SEPARATOR) { $target = substr($target, 0, -1); } if (is_callable([$this->filter, 'getGenerated']) && !$this->filter->getGenerated() && is_callable([$this->filter, 'generateCheckers']) ) { $this->filter->generateCheckers(); } # We shouldn't use iglob for list of paths, # cause they cannot contain * or regexp # but can contain invalid sequence e.g. [9-0] $paths = is_array($target) ? $target : new GlobIterator($target, FilesystemIterator::CURRENT_AS_PATHNAME); foreach ($paths as $path) { $this->initial_dir = realpath($path); $this->initial_level = substr_count($this->initial_dir, '/'); $path = $this->linkResolve($path); yield from $this->expandPath($path, $this->filter->isFollowSymlink()); } } private function convertTemplatesToRegexp($templates) { return '~(' . str_replace([',', '.', '*'], ['|', '\\.', '.*'], $templates) . ')~i'; } public function setLevelLimit($level) { $this->level_limit = $level; } public function getSymlinks() { return $this->sym_links; } public function getBigFiles() { return $this->big_files; } public function getBigElfFiles() { return $this->big_elf_files; } public function setCollectDoorways($flag) { $this->collect_doorways = $flag; } public function setCollectBigElfs($flag) { $this->collect_bigelffiles = $flag; } public function setCollectSymlinks($flag) { $this->collect_symLinks = $flag; } public function setCollectSkipped($flag) { $this->collect_skipped = $flag; } public function setCollectBigFiles($flag) { $this->collect_bigfiles = $flag; } public function getDoorways() { return $this->doorways; } public function skippedDirs() { return $this->skipped_folders; } public function getTotalDirs() { return $this->total_dir_counter; } public function getTotalFiles() { return $this->total_files_counter; } public function getFilter() { return $this->filter; } } class FileFilter { const IMUNIFY_CLEANUP_STORAGE = '/var/imunify360/cleanup_storage'; const LOG_AND_MAIL_PATTERN = [ '/sess\_\w*$', '/stat/usage\_\w+\.html', '/stat/site\_\w+\.html', '/webstat/awstats.*\.txt', '/awstats/awstats.*\.txt', '/awstats/.{1,80}\.pl', '/awstats/.{1,80}\.html', '/logs/error\_log\..*', '/logs/xferlog\..*', '/logs/access\_log\..*', '/domlogs/.+', '/logs/cron\..*', '/logs/exceptions/.+\.log(?:\.\d)?(?:\.gz)?$', '/mail(?:/[^/]+)*/[^,]+,S=[^,]+,W=.+', '/mail(?:/[^/]+)*/[^,]+,S=.+', '/mail(?:/[^/]+)*/storage/u\.[0-9]+', '/mail(?:/[^/]+)*/storage/m\.[0-9]+', '/Maildir(?:/[^/]+)*/[^,]+,S=[^,]+,W=.+', '/Maildir(?:/[^/]+)*/[^,]+,S=.+', '^/var/ossec/.*', ]; const IMUNIFY_LOG_PATTERN = [ '/var/log/imunify360/acronis-installer\.log$', '/var/log/imunify360/console\.log(?:\.\d)?(?:\.gz)?$', '/var/log/imunify360/debug\.log$', '/var/log/imunify360/error\.log$', '/var/log/install-mod\_remoteip\.log(?:\.\d{1.4})?(?:\.pid)?r$', '/var/log/imunify360/malware\_scan\_\d{10}\.log$', '/var/log/imunify360/network\.log$', '/var/log/imunify360/process\_message\.log$', '/var/log/imunify360-webshield/access.log(?:-\d{8})?(?:.gz)?$', '/var/log/imunify360-webshield/error.log(?:-\d{8})?(?:.gz)?$', '/.revisium_antivirus_cache/.revisium\d+/', '/admin/plib/modules/revisium-antivirus/library/externals/', ]; const IMUNIFY_DIRS = [ '/etc/cagefs/conf.d/ai-bolit.cfg', '/etc/cagefs/conf.d/clamav.cfg', '/etc/cagefs/exclude/imunify360', '/etc/chkserv.d/imunify-antivirus', '/etc/chkserv.d/imunify360-agent', '/etc/cron.daily/imunify-antivirus.cron', '/etc/cron.daily/imunify360.cron', '/etc/imunify360-webshield', '/etc/imunify360', '/etc/logrotate.d/imunify360', '/etc/nginx/conf.d/i360.remoteip.conf', '/etc/sysconfig/imunify360', '/opt/ai-bolit', '/opt/alt/python35/bin/imunify360-agent', '/opt/alt/python35/bin/imunify360-command-wrapper', '/opt/alt/python35/lib/python3.5/site-packages/defence360agent', '/opt/alt/python35/share/imunify360', '/run/chkservd/imunify360-webshield', '/run/chkservd/restart_track/imunify360-webshield', '/run/imunify360-webshield.pid', '/usr/bin/imunify-antivirus', '/usr/bin/imunify360-agent', '/usr/bin/imunify360-command-wrapper', '/usr/lib/systemd/system/imunify-antivirus.service', '/usr/lib/systemd/system/imunify360-pure.service', '/usr/lib/systemd/system/imunify360-webshield', '/usr/lib/systemd/system/imunify360.service', '/usr/local/cpanel/base/frontend/paper_lantern/imunify', '/usr/local/directadmin/plugins/Imunify', '/usr/sbin/imunify360-webshield', '/var/cache/imunify360-webshield', '/var/cpanel/apps', '/var/imunify360', '/var/log/cloudlinux-backup-util' ]; const SHORT_LIST_EXT = [ 'php', 'php3', 'php4', 'php5', 'php7', 'pht', 'html', 'htm', 'phtml', 'shtml', 'khtml', '', 'ico', 'txt' ]; const SUSPICIOUS_EXT = [ 'cgi', 'pl', 'o', 'so', 'py', 'sh', 'phtml', 'php3', 'php4', 'php5', 'php6', 'php7', 'pht', 'shtml' ]; private $sensitiveExt = [ 'php', 'js', 'json', 'htaccess', 'html', 'htm', 'tpl', 'inc', 'css', 'txt', 'sql', 'ico', '', 'susp', 'suspected', 'zip', 'tar' ]; const SKIP_SMART_MASK = [ '/template_\w{32}.css', '/cache/templates/.{1,150}\.tpl\.php', '/system/cache/templates_c/\w{1,40}\.php', '/assets/cache/rss/\w{1,60}', '/cache/minify/minify_\w{32}', '/cache/page/\w{32}\.php', '/cache/object/\w{1,10}/\w{1,10}/\w{1,10}/\w{32}\.php', '/cache/wp-cache-\d{32}\.php', '/cache/page/\w{32}\.php_expire', '/cache/page/\w{32}-cache-page-\w{32}\.php', '\w{32}-cache-com_content-\w{32}\.php', '\w{32}-cache-mod_custom-\w{32}\.php', '\w{32}-cache-mod_templates-\w{32}\.php', '\w{32}-cache-_system-\w{32}\.php', '/cache/twig/\w{1,32}/\d+/\w{1,100}\.php', '/autoptimize/js/autoptimize_\w{32}\.js', '/bitrix/cache/\w{32}\.php', '/bitrix/cache/.{1,200}/\w{32}\.php', '/bitrix/cache/iblock_find/', '/bitrix/managed_cache/MYSQL/user_option/[^/]+/', '/bitrix/cache/s1/bitrix/catalog\.section/', '/bitrix/cache/s1/bitrix/catalog\.element/', '/bitrix/cache/s1/bitrix/menu/', '/catalog.element/[^/]+/[^/]+/\w{32}\.php', '/bitrix/managed\_cache/.{1,150}/\.\w{32}\.php', '/core/cache/mgr/smarty/default/.{1,100}\.tpl\.php', '/core/cache/resource/web/resources/[0-9]{1,50}\.cache\.php', '/smarty/compiled/SC/.{1,100}/%%.{1,200}\.php', '/smarty/.{1,150}\.tpl\.php', '/smarty/compile/.{1,150}\.tpl\.cache\.php', '/files/templates_c/.{1,150}\.html\.php', '/uploads/javascript_global/.{1,150}\.js', '/assets/cache/rss/\w{32}', 'сore/cache/resource/web/resources/\d+\.cache\.php', '/assets/cache/docid_\d+_\w{32}\.pageCache\.php', '/t3-assets/dev/t3/.{1,150}-cache-\w{1,20}-.{1,150}\.php', '/t3-assets/js/js-\w{1,30}\.js', '/temp/cache/SC/.{1,100}/\.cache\..{1,100}\.php', '/tmp/sess\_\w{32}$', '/assets/cache/docid\_.{1,100}\.pageCache\.php', '/stat/usage\_\w{1,100}\.html', '/stat/site\_\w{1,100}\.html', '/gallery/item/list/\w{1,100}\.cache\.php', '/core/cache/registry/.{1,100}/ext-.{1,100}\.php', '/core/cache/resource/shk\_/\w{1,50}\.cache\.php', '/cache/\w{1,40}/\w+-cache-\w+-\w{32,40}\.php', '/webstat/awstats.{1,150}\.txt', '/awstats/awstats.{1,150}\.txt', '/awstats/.{1,80}\.pl', '/awstats/.{1,80}\.html', '/inc/min/styles_\w+\.min\.css', '/inc/min/styles_\w+\.min\.js', '/logs/error\_log\.', '/logs/xferlog\.', '/logs/access_log\.', '/logs/cron\.', '/logs/exceptions/.{1,200}\.log$', '/hyper-cache/[^/]{1,50}/[^/]{1,50}/[^/]{1,50}/index\.html', '/mail/new/[^,]+,S=[^,]+,W=', '/mail/new/[^,]=,S=', '/application/logs/\d+/\d+/\d+\.php', '/sites/default/files/js/js_\w{32}\.js', '/yt-assets/\w{32}\.css', '/wp-content/cache/object/\w{1,5}/\w{1,5}/\w{32}\.php', '/catalog\.section/\w{1,5}/\w{1,5}/\w{32}\.php', '/simpla/design/compiled/[\w\.]{40,60}\.php', '/compile/\w{2}/\w{2}/\w{2}/[\w.]{40,80}\.php', '/sys-temp/static-cache/[^/]{1,60}/userCache/[\w\./]{40,100}\.php', '/session/sess_\w{32}', '/webstat/awstats\.[\w\./]{3,100}\.html', '/stat/webalizer\.current', '/stat/usage_\d+\.html' ]; private $ignoreExt = []; private $ignoreListPatterns = []; private $ignoreList = null; private $ignoreFilenameByRegexp = null; private $onlyFilepathRegexp = null; private $skipFilesOlder = null; private $initialDir = null; private $file_checkers = []; private $dir_checkers = []; private $excludes = []; private $check_is_not_root; private $check_is_not_system; private $check_is_file; private $ignore_quar; private $check_file_older; private $check_ignore_file; private $check_ignore_filename_template; private $check_only_filepath_template; private $check_scope; private $check_ext; private $ignore_ext; private $check_short_ext; private $ignore_path_pattern; private $check_size_range; private $skipRootOwner = false; private $skipSystemOwner = false; private $skipImunifyStorage = false; private $followSymlink = false; private $ignoreQuarantine = false; private $scanAllExt = false; private $smartScan = false; private $imunify_filters = false; private $ignorePathPattern = true; private $defaultExcludes = true; private $ignored_av_admin_paths = false; private $generated = false; private $size_range = []; private $uid_range = []; private $ignored_av_admin = null; private $ignored_av_admin_file_exists = null; private $ignored_av_internal = null; private $ignored_av_internal_file_exists = null; private $admin_watched = null; private $ignore_symlink = true; private $match_patterns = []; private $no_match_patterns = []; private $ignored_av_admin_file = '/etc/sysconfig/imunify360/malware-filters-admin-conf/processed/ignored/av-admin.txt'; private $ignored_avadmin_paths_file = '/etc/sysconfig/imunify360/malware-filters-admin-conf/processed/ignored/av-admin-paths.txt'; private $ignored_av_internal_file = '/etc/sysconfig/imunify360/malware-filters-admin-conf/processed/ignored/av-internal.txt'; private $admin_watched_file = '/etc/sysconfig/imunify360/malware-filters-admin-conf/admin/watched.txt'; private $basedirs_file = '/etc/sysconfig/imunify360/malware-filters-admin-conf/processed/basedirs-list.txt'; private function getIgnoredAVAdminFileExists() { if (is_null($this->ignored_av_admin_file_exists)) { $this->ignored_av_admin_file_exists = file_exists($this->ignored_av_admin_file) && is_readable($this->ignored_av_admin_file); } return $this->ignored_av_admin_file_exists; } private function getIgnoredAVInternalFileExists() { if (is_null($this->ignored_av_internal_file_exists)) { $this->ignored_av_internal_file_exists = file_exists($this->ignored_av_internal_file) && is_readable($this->ignored_av_internal_file); } return $this->ignored_av_internal_file_exists; } private function getIgnoredAVAdmin() { if (!$this->getIgnoredAVAdminFileExists()) { return null; } if (is_null($this->ignored_av_admin)) { $this->ignored_av_admin = trim(file_get_contents($this->ignored_av_admin_file)); } return $this->ignored_av_admin; } private function addToIgnoreTree($path) { $tree = $this->getTree($path, true); $_path = &$this->ignored_av_admin_paths; for ($i = count($tree) - 1; $i >= 0; $i--) { if ($tree[$i] === '') { continue; } if (!isset($_path[$tree[$i]])) { $_path[$tree[$i]] = null; } if ($path[$tree[$i]] === true) { return; } if ($i === 0) { $_path[$tree[$i]] = true; } $_path = &$_path[$tree[$i]]; } } private function checkAVAdminPathsIgnored($path) { if ($this->ignored_av_admin_paths === false) { return false; } $tree = $this->getTree($path, true); $_path = &$this->ignored_av_admin_paths; for ($i = count($tree) - 1; $i >= 0; $i--) { if ($tree[$i] === '') { continue; } if (!isset($_path[$tree[$i]])) { return false; } if ($_path[$tree[$i]] === true) { return true; } $_path = &$_path[$tree[$i]]; } return false; } private function loadIgnoredAVAdminPaths() { $file = new SplFileObject($this->ignored_avadmin_paths_file, 'r'); $file->setFlags(SplFileObject::DROP_NEW_LINE | SplFileObject::SKIP_EMPTY | SplFileObject::READ_AHEAD); foreach ($file as $path) { if ($path) { $this->addToIgnoreTree(base64_decode($path)); } } } private function getIgnoredAVInternal() { if (!$this->getIgnoredAVInternalFileExists()) { return null; } if (is_null($this->ignored_av_internal)) { $this->ignored_av_internal = trim(file_get_contents($this->ignored_av_internal_file)); } return $this->ignored_av_internal; } private function getBaseDirs() { return file($this->basedirs_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); } private function fixTrailingSlash($path) { if ($path[0] !== '/') { $path = '/' . $path; } return $path; } private function resolveBaseDirs($basedirs, $path) { $result = []; $tmp = substr($path, 1); $tmp = $this->fixTrailingSlash($tmp); foreach ($basedirs as $dir) { $result [] = $dir . $tmp; } return $result; } private function processWatchedItems($basedirs, $paths) { $result = []; foreach ($paths as $item) { $item = trim($item); if ($item[0] === '#') { continue; } else if ($item[0] === '+') { $result = array_merge($result, $this->resolveBaseDirs($basedirs, $item)); } else { $result[] = $item; } } return $result; } private function getAdminWatched() { if (is_null($this->admin_watched)) { $this->admin_watched = []; $basedirs = $this->getBaseDirs(); $paths = file($this->admin_watched_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $this->admin_watched = $this->processWatchedItems($basedirs, $paths); } return $this->admin_watched; } public function setSmartScan() { $this->smartScan = true; } public function isSmartScan() { return $this->smartScan; } public function setImunifyFilters() { if ($this->getIgnoredAVAdminFileExists() || $this->getIgnoredAVInternalFileExists()) { $this->imunify_filters = true; } } public function setSkipImunifyStorage() { $this->skipImunifyStorage = true; $this->addToExcludes(self::IMUNIFY_CLEANUP_STORAGE); } public function setScanAll() { $this->scanAllExt = true; } public function setSizeRange($min, $max) { $this->size_range[0] = $min; $this->size_range[1] = $max; } public function setIgnoreExt($ext_list) { if (!$ext_list) { return; } $this->ignoreExt = explode(',', $ext_list); for ($i = 0, $iMax = count($this->ignoreExt); $i < $iMax; $i++) { $this->ignoreExt[$i] = trim($this->ignoreExt[$i]); } $this->ignoreExt = array_flip($this->ignoreExt); } public function getIgnoreExt() { return array_flip($this->ignoreExt); } public function setSensitiveExt($ext_list) { if (!$ext_list) { return; } $this->sensitiveExt = explode(",", $ext_list); for ($i = 0, $iMax = count($this->sensitiveExt); $i < $iMax; $i++) { if ($this->sensitiveExt[$i] == '.') { $this->sensitiveExt[$i] = ''; } } $this->sensitiveExt = array_flip($this->sensitiveExt); } public function getSensitiveExt() { return array_flip($this->sensitiveExt); } public function setIgnoreListPatterns($filepath) { if (!file_exists($filepath) || !is_file($filepath) || !is_readable($filepath)) { return; } $this->ignoreListPatterns = []; $content = file_get_contents($filepath); $list = explode("\n", $content); foreach ($list as $pattern) { if (trim($pattern) == '') { continue; } $this->ignoreListPatterns[] = $pattern; } } public function __construct() { $this->sensitiveExt = array_merge($this->sensitiveExt, self::SUSPICIOUS_EXT); $this->sensitiveExt = array_flip($this->sensitiveExt); $this->ignore_quar = function ($file) { if (strpos($file, '/.imunify.quarantined') !== false) { $st = stat($file); if (!$st) { return false; } return $st['uid'] !== 0; } return true; }; $this->ignore_excludes = function ($file) { $tree = $this->getTree($file); if ($this->pathRelatesTo($tree, $this->excludes)) { return false; } return true; }; $this->check_file_older = function ($file) { return (@filemtime($file) > $this->skipFilesOlder) || (@filectime($file) > $this->skipFilesOlder); }; $this->check_ignore_file = function ($file) { $tree = $this->getTree($file); if ($this->pathRelatesTo($tree, $this->ignoreList, true)) { return false; } return true; }; $this->check_ignore_filename_template = function ($file) { return !preg_match($this->ignoreFilenameByRegexp, basename($file)); }; $this->check_only_filepath_template = function ($file) { return preg_match($this->onlyFilepathRegexp, $file); }; $this->check_is_not_root = function ($file) { $stat = stat($file); return $stat['gid'] !== 0 && $stat['uid'] !== 0; }; $this->check_is_not_system = function ($file) { if (!$this->skipSystemOwner) { return true; } $stat = stat($file); return ($stat['uid'] >= $this->uid_range[0] && $stat['uid'] <= $this->uid_range[1]); }; $this->check_is_file = function ($file) { return file_exists($file) && is_file($file) && is_readable($file); }; $this->check_size_range = function ($file) { $filesize = filesize($file); return ($filesize >= $this->size_range[0] && $filesize <= $this->size_range[1]); }; $this->check_file_patterns = function ($file) { foreach($this->match_patterns as $pattern) { $match = fnmatch($pattern, $file); if ($match) { return $match; } } return false; }; $this->check_file_not_patterns = function ($file) { foreach($this->no_match_patterns as $pattern) { $match = fnmatch($pattern, $file); if ($match) { return !$match; } } return true; }; $this->ignore_symlink = function ($file) { return !is_link($file); }; $this->check_scope = function ($file) { return strpos($file, $this->initialDir) === 0; }; $this->ignore_dots = function ($file) { return !($file == '.' || $file == '..'); }; $this->check_ext = function ($file) { if ($this->scanAllExt) { return true; } $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); return isset($this->sensitiveExt[$ext]); }; $this->ignore_ext = function ($file) { $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); return !isset($this->ignoreExt[$ext]); }; $this->check_short_ext = function ($file) { $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); return in_array($ext, self::SHORT_LIST_EXT); }; $this->ignore_path_pattern = function ($file) { foreach ($this->ignoreListPatterns as $pattern) { if (($pattern != '') && preg_match('#' . $pattern . '#', $file)) { return false; } } return true; }; $this->imunify_filter = function ($file) { $av_admin_regexps = $this->getIgnoredAVAdmin(); if (!is_null($av_admin_regexps) && preg_match('~' . $av_admin_regexps . '~msi', $file) || $this->checkAVAdminPathsIgnored($file) ) { return false; } $av_internal_regexps = $this->getIgnoredAVInternal(); if (!is_null($av_internal_regexps) && preg_match('~' . $av_internal_regexps . '~msi', $file)) { foreach ($this->getAdminWatched() as $rec_watched) { if (fnmatch($rec_watched, $file)) { return true; } } return false; } return true; }; $this->file_checkers[] = $this->check_is_file; $this->file_checkers[] = $this->check_size_range; $this->file_checkers[] = $this->check_ext; $this->dir_checkers[] = $this->ignore_dots; } public function setIgnoreListFile($filepath) { if (!file_exists($filepath) || !is_file($filepath) || !is_readable($filepath)) { return; } $this->ignoreList = []; $content = file_get_contents($filepath); $list = explode("\n", $content); foreach ($list as $base64_filepath) { if ($base64_filepath !== '') { $this->ignoreList[$base64_filepath] = ''; } } } public function addToExcludes($path) { $this->excludes[$path] = ''; } public function setExcludes($paths) { $this->excludes = array_flip($paths); } public function setIgnoreFilenames($templates) { if (!$templates) { return; } $this->no_match_patterns = explode(',', $templates); for ($i = 0, $iMax = count($this->no_match_patterns); $i < $iMax; $i++) { $this->no_match_patterns[$i] = trim($this->no_match_patterns[$i]); } } public function setOnlyFilepaths($templates) { if (empty($templates)) { return; } $this->match_patterns = explode(',', $templates); for ($i = 0, $iMax = count($this->match_patterns); $i < $iMax; $i++) { $this->match_patterns[$i] = trim($this->match_patterns[$i]); } } public function setSkipFilesOlder($unix_timestamp) { $this->skipFilesOlder = $unix_timestamp; } public function setSkipRootOwner() { $this->skipRootOwner = true; } public function setUidRange($min_max_uid) { if (is_array($min_max_uid)) { $this->uid_range = $min_max_uid; } } public function setSkipSystemOwner($value) { $this->skipSystemOwner = $value; } public function setFollowSymlink() { $this->followSymlink = true; } public function isFollowSymlink() { return $this->followSymlink; } public function setIgnoreQuarantine() { $this->ignoreQuarantine = true; } public function setIgnorePathPattern($value) { $this->ignorePathPattern = $value; } public function setDefaultExcludes($value) { $this->defaultExcludes = $value; } public function generateCheckers() { $file_checkers = $this->file_checkers; if ($this->defaultExcludes) { $this->excludes = array_merge(array_flip(self::IMUNIFY_DIRS), $this->excludes); } if (!empty($this->excludes)) { $file_checkers[] = $this->ignore_excludes; $dir_checkers[] = $this->ignore_excludes; } if ($this->ignorePathPattern) { $file_checkers[] = $this->ignore_path_pattern; } if ($this->match_patterns) { $file_checkers[] = $this->check_file_patterns; } if ($this->no_match_patterns) { $file_checkers[] = $this->check_file_not_patterns; } if ($this->skipRootOwner) { $file_checkers[] = $this->check_is_not_root; } if ($this->skipSystemOwner && !empty($this->uid_range)) { $file_checkers[] = $this->check_is_not_system; } $dir_checkers = $this->dir_checkers; if ($this->ignorePathPattern) { $dir_checkers[] = $this->ignore_path_pattern; } if(!$this->followSymlink) { $dir_checkers[] = $this->ignore_symlink; } if ($this->ignoreQuarantine) { $dir_checkers[] = $this->ignore_quar; } if ($this->skipFilesOlder) { $file_checkers[] = $this->check_file_older; } if ($this->ignoreFilenameByRegexp) { $file_checkers[] = $this->check_ignore_filename_template; } if (!empty($this->ignoreList)) { $file_checkers[] = $this->check_ignore_file; $dir_checkers[] = $this->check_ignore_file; } if ($this->onlyFilepathRegexp) { $file_checkers[] = $this->check_only_filepath_template; } if (!empty($this->ignoreExt)) { $file_checkers[] = $this->ignore_ext; } if ($this->imunify_filters) { $file_checkers[] = $this->imunify_filter; } $this->ignoreListPatterns = array_merge($this->ignoreListPatterns, self::IMUNIFY_LOG_PATTERN, self::LOG_AND_MAIL_PATTERN); if($this->smartScan) { $this->ignoreListPatterns = array_merge($this->ignoreListPatterns, self::SKIP_SMART_MASK); } if ($this->imunify_filters && file_exists($this->ignored_avadmin_paths_file)) { $this->loadIgnoredAVAdminPaths(); } $this->file_checkers = $file_checkers; $this->dir_checkers = $dir_checkers; $this->generated = true; } public function getFileCheckers() { return $this->file_checkers; } public function getDirCheckers() { return $this->dir_checkers; } private function check($file, $where, $stat = false) { if (!$file) { return false; } if (!$stat) { $stat = stat($file); } foreach ($where as $func) { if(empty($func)) { continue; } if (!$func($file, $stat)) { return false; } } return true; } public function needToScan($file, $stat = false, $only_dir = false) { if (!$file) { return false; } if (!$stat) { $stat = @stat($file); if (!$stat) { return false; } } if (!$only_dir && !$this->check($file, $this->getFileCheckers(), $stat)) { return false; } if (!$this->check($file, $this->getDirCheckers(), $stat)) { return false; } return true; } private function getTree($file, $basename = false) { $tree = []; $path = $file; $tree[] = $basename ? basename($file) : $file; while ($path !== '.' && $path !== '/' && $path !== '') { $path = dirname($path, 1); $tree[] = $basename ? basename($path) : $path; } return $tree; } private function pathRelatesTo($tree, $pathes, $base64 = false) { foreach ($tree as $path) { if ($base64) { $path = base64_encode($path); } if (isset($pathes[$path])) { return true; } } return false; } public function checkShortExt($path) { return $this->check_short_ext->call($this, $path); } public function checkIsBig($path) { $filesize = filesize($path); return ($filesize > $this->size_range[1]); } public function checkIsElf($path) { $header = @file_get_contents($path, false, null, 0, 4); return ($header === chr(127) . 'ELF'); } public function checkNotSystem($path) { return $this->check_is_not_system->call($this, $path); } public function getGenerated() { return $this->generated; } } class Scanner { private $addPrefix; private $noPrefix; private $finder; private $vars; private $debug; private $critical_fs; public function __construct($finder, $vars, $debug = null) { $this->addPrefix = isset($vars->options['addprefix']) ? $vars->options['addprefix'] : ''; $this->noPrefix = isset($vars->options['noprefix']) ? $vars->options['noprefix'] : '';; $this->finder = $finder; $this->vars = $vars; $this->suspicious = isset($vars->options['with-suspicious']); $this->debug = $debug; $this->critical_fs = Factory::instance()->create(CriticalFileSpecification::class); } private function CloudAssitedFilter($files_list) { $black_files = []; $white_files = []; try { $car = Factory::instance()->create(CloudAssistedRequest::class, [CLOUD_ASSIST_TOKEN]); $cloud_assist_files = new CloudAssistedFiles($car, $files_list, $this->vars); $white_files = $cloud_assist_files->getWhiteList(); $black_files = $cloud_assist_files->getBlackList(); unset($cloud_assist_files); } catch (\Exception $e) { fwrite(STDERR, 'Warning: [CAS] ' . $e->getMessage() . PHP_EOL); if (isset($this->debug)) { $this->debug->QCR_Debug($e->getMessage()); } } $this->vars->blackFiles = array_diff_assoc(array_merge($this->vars->blackFiles, $black_files), $white_files); return array_diff($files_list, array_keys($black_files), array_keys($white_files)); } public function QCR_ScanDirectories($l_RootDir) { static $l_Buffer = ''; if (isset($this->debug)) { $this->debug->QCR_Debug('Scan ' . $l_RootDir); } $listFiles = $this->finder->find($l_RootDir); foreach ($listFiles as $l_FileName) { if (ONE_PASS) { $this->QCR_ScanFile($l_FileName, $this->vars, null, $this->vars->counter++); } else { $l_Buffer .= FilepathEscaper::encodeFilepathByBase64($l_FileName) . "\n"; } $this->vars->counter++; if (strlen($l_Buffer) > 32000) { file_put_contents(QUEUE_FILENAME, $l_Buffer, FILE_APPEND) || die2("Cannot write to file " . QUEUE_FILENAME); $l_Buffer = ''; } } $this->vars->symLinks = $this->finder->getSymlinks(); $this->vars->doorway = $this->finder->getDoorways(); $this->vars->foundTotalDirs = $this->finder->getTotalDirs(); $this->vars->foundTotalFiles = $this->finder->getTotalFiles(); if (!empty($l_Buffer) && (isset($this->vars->options['use-template-in-path']) || $l_RootDir == ROOT_PATH ) ) { file_put_contents(QUEUE_FILENAME, $l_Buffer, FILE_APPEND) || die2("Cannot write to file " . QUEUE_FILENAME); $l_Buffer = ''; } unset($listFiles); } public function QCR_GoScan($s_file, $callback = null, $base64_encoded = true, $skip_first_line = false, $filters = false) { if (isset($this->debug)) { $this->debug->QCR_Debug('QCR_GoScan '); } try { $i = 0; $filesForCloudAssistedScan = []; foreach ($s_file as $index => $filepath_encoded) { if ($callback !== null) { $this->callCallback($callback); } if ($skip_first_line && $index == 0) { $i = 1; $this->vars->foundTotalFiles--; continue; } $filepath = $base64_encoded ? FilepathEscaper::decodeFilepathByBase64($filepath_encoded) : $filepath_encoded; if ($filters instanceof FileFilter) { if (!$filters->needToScan($filepath)) { $this->vars->foundTotalFiles--; continue; } } $stat = stat($filepath); $filesize = $stat['size']; if (isset($this->vars->users)) { $this->vars->users->add($stat['uid']); } if (substr($filepath, -1) == DIR_SEPARATOR || !defined('CLOUD_ASSIST_TOKEN')) { $this->QCR_ScanFile($filepath, $this->vars, $callback, $i++); continue; } if ($this->isFileTooBigForCloudscan($filesize)) { $this->QCR_ScanFile($filepath, $this->vars, $callback, $i++); continue; } // collecting files to scan with Cloud Assistant $filesForCloudAssistedScan[] = $filepath; } if (count($filesForCloudAssistedScan) == 0) { return; } if (defined('RAPID_ACCOUNT_SCAN')) { $cloud_assited_storage = Factory::instance()->create(CloudAssistedStorage::class, [RAPID_ACCOUNT_SCAN]); $storage = Factory::instance()->create(RapidScanStorage::class, [RAPID_ACCOUNT_SCAN]); /** @var RapidAccountScan $scanner */ $scanner = Factory::instance()->create(RapidAccountScan::class, [$this, $storage, $cloud_assited_storage, &$this->vars, $i]); $scanner->scan($filesForCloudAssistedScan, $this->vars, constant('RapidAccountScan::RESCAN_' . RAPID_ACCOUNT_SCAN_TYPE)); if ($scanner->getStrError()) { if (isset($this->debug)) { $this->debug->QCR_Debug('Rapid scan log: ' . $scanner->getStrError()); } } $this->vars->rescanCount += $scanner->getRescanCount(); $this->vars->rescanRxGood += $scanner->getRescanRxGoodCount(); } else { $scan_bufer_files = function ($files_list, &$i) use ($callback) { $this->vars->hashtable = new HashTable(); $files_to_scan = $this->CloudAssitedFilter($files_list); $this->vars->files_and_ignored += count($files_list) - count($files_to_scan); foreach ($files_to_scan as $filepath) { $this->QCR_ScanFile($filepath, $this->vars, $callback, $i++); } $this->vars->hashtable = null; }; $files_bufer = []; foreach ($filesForCloudAssistedScan as $l_Filename) { $files_bufer[] = $l_Filename; if (count($files_bufer) >= CLOUD_ASSIST_LIMIT) { $scan_bufer_files($files_bufer, $i); $files_bufer = []; } } if (count($files_bufer)) { $scan_bufer_files($files_bufer, $i); } unset($files_bufer); } } catch (Exception $e) { if (isset($this->debug)) { $this->debug->QCR_Debug($e->getMessage()); } } } public function QCR_ScanFile($l_Filename, $vars, $callback = null, $i = 0, $show_progress = true) { $return = [RapidScanStorageRecord::RX_GOOD, '', '']; $g_SkipNextCheck = false; if ($vars->fileinfo !== null) { if ($l_Filename !== $vars->fileinfo->getFilename()) { unset($file); $vars->fileinfo = null; } } if ($vars->fileinfo == null) { $file = new FileInfo($l_Filename, $i, $vars->hashtable); $vars->fileinfo = $file; } $file = $vars->fileinfo; $l_CriticalDetected = false; if (substr($l_Filename, -1) == DIR_SEPARATOR) { // FOLDER $vars->structure['n'][$i] = $l_Filename; $vars->totalFolder++; printProgress($vars->files_and_ignored, $l_Filename, $vars); unset($file); $vars->fileinfo = null; return null; } if (isset($this->debug)) { $this->debug->QCR_Debug('Scan file ' . $l_Filename); } if ($show_progress) { printProgress(++$vars->files_and_ignored, $l_Filename, $vars); } $l_Ext = strtolower(pathinfo($l_Filename, PATHINFO_EXTENSION)); $l_Content = ''; $check_heuristics = defined('USE_HEURISTICS') || defined('USE_HEURISTICS_SUSPICIOUS') || defined('USE_HEURISTICS_IGNORE'); if ($check_heuristics && $file->isBinary()) { if (defined('USE_HEURISTICS_IGNORE')) { unset($file); $vars->fileinfo = null; return null; } $this->AddResult($file, $i, $vars); $heur_sig = 'SMW-HEUR-ELF'; if (defined('USE_HEURISTICS')) { $vars->criticalPHP[] = $i; $vars->criticalPHPFragment[] = $heur_sig; $vars->criticalPHPSig[] = $heur_sig; } elseif (defined('USE_HEURISTICS_SUSPICIOUS')) { $vars->warningPHP[] = $i; $vars->warningPHPFragment[] = $heur_sig; $vars->warningPHPSig[] = $heur_sig; } $return = [RapidScanStorageRecord::HEURISTIC, $heur_sig, $heur_sig]; unset($file); $vars->fileinfo = null; return $return; } // FILE $is_too_big = $this->isFileTooBigForScanWithSignatures($file->getSize()); $l_TSStartScan = microtime(true); if (!MAX_SIZE_SCAN_BYTES && $is_too_big) { if (function_exists('aibolit_onBigFile')) { aibolit_onBigFile($l_Filename); } } else { $vars->totalFiles++; $file_type = filetype($l_Filename); $l_Unwrapped = ''; if ($file_type == 'file' || (isset($vars->options['follow-symlink']) && $file_type == 'link')) { if ($is_too_big && MAX_SIZE_SCAN_BYTES) { $l_Content = $file->getContentBytes(MAX_SIZE_SCAN_BYTES); } else { $l_Content = $file->getContent(); } $l_Unwrapped = $file->getContentWithoutSpaces(MAX_SIZE_SCAN_BYTES); } if (($l_Content == '' || $l_Unwrapped == '') && $file->getSize() > 0) { $vars->notRead[] = $i; if (function_exists('aibolit_onReadError')) { aibolit_onReadError($l_Filename, 'io'); } $return = [RapidScanStorageRecord::CONFLICT, 'notread','']; $this->AddResult('[io] ' . $l_Filename, $i, $vars); unset($file); $vars->fileinfo = null; return $return; } // ignore itself if (strpos($l_Content, 'e774d99c7645070bb32c6a061787e7ad') !== false) { unset($file); $vars->fileinfo = null; return false; } $l_UnicodeContent = Encoding::detectUTFEncoding($l_Content); //$l_Unwrapped = $l_Content; // check vulnerability in files $l_CriticalDetected = $this->CheckVulnerability($l_Filename, $i, $l_Content, $vars); if ($l_UnicodeContent !== false) { if (Encoding::iconvSupported()) { $l_Unwrapped = Encoding::convertToCp1251($l_UnicodeContent, $l_Unwrapped); } else { $vars->notRead[] = $i; if (function_exists('aibolit_onReadError')) { aibolit_onReadError($l_Filename, 'ec'); } $return = [RapidScanStorageRecord::CONFLICT, 'no_iconv', '']; $this->AddResult('[ec] ' . $l_Filename, $i, $vars); } } // critical $g_SkipNextCheck = false; if ((!AI_HOSTER) || AI_DEOBFUSCATE) { $l_DeobfObj = new Deobfuscator($l_Unwrapped, $l_Content); $l_DeobfType = $l_DeobfObj->getObfuscateType($l_Unwrapped); } if (isset($l_DeobfType) && $l_DeobfType != '') { $l_Unwrapped = $l_DeobfObj->deobfuscate(); $g_SkipNextCheck = $this->checkFalsePositives($l_Filename, $l_Unwrapped, $l_DeobfType, $vars); } else { if (DEBUG_MODE) { stdOut("\n...... NOT OBFUSCATED\n"); } } $l_Unwrapped = Normalization::normalize($l_Unwrapped); $precheck = function ($type, $content) use ($l_Ext) { $critical_params = [ 'CriticalPHP' => ['extensions', 'critical_content'], 'CriticalPHP_2' => ['extensions', 'critical_content'], 'CriticalPHP_3' => ['extensions', 'critical_content'], 'CriticalPHP_4' => ['extensions', 'critical_content'], 'CriticalPHP_5' => ['extensions', 'critical_content'], 'CriticalPHPGIF' => ['extensions', 'critical_content'], 'CriticalPHPUploader' => ['extensions', 'critical_content'], 'CriticalJS' => ['js_extensions', 'critical_js_content'], 'CriticalJS_PARA' => ['js_extensions', 'critical_js_content'], 'Phishing' => ['phish_extensions', 'critical_phish_content'], ]; if (!SMART_SCAN || !isset($critical_params[$type])) { return true; } if (isset($critical_params[$type])) { return $this->satisfiedBySmartScan($this->critical_fs, $l_Ext, $content, $critical_params[$type][0], $critical_params[$type][1]); } }; $processResult = function ($checker, $content, $l_Pos, $l_SigId, &$return) use (&$vars, $l_Ext, $i) { $checkers = [ 'CriticalPHP' => ['criticalPHP', 'criticalPHPFragment', 'criticalPHPSig'], 'CriticalPHP_2' => ['criticalPHP', 'criticalPHPFragment', 'criticalPHPSig'], 'CriticalPHP_3' => ['criticalPHP', 'criticalPHPFragment', 'criticalPHPSig'], 'CriticalPHP_4' => ['criticalPHP', 'criticalPHPFragment', 'criticalPHPSig'], 'CriticalPHP_5' => ['criticalPHP', 'criticalPHPFragment', 'criticalPHPSig'], 'CriticalPHPGIF' => ['criticalPHP', 'criticalPHPFragment', 'criticalPHPSig'], 'CriticalPHPUploader' => ['criticalPHP', 'criticalPHPFragment', 'criticalPHPSig'], 'CriticalJS' => ['criticalJS', 'criticalJSFragment', 'criticalJSSig'], 'CriticalJS_PARA' => ['criticalJS', 'criticalJSFragment', 'criticalJSSig'], 'WarningPHP' => ['warningPHP', 'warningPHPFragment', 'warningPHPSig'], 'Phishing' => ['phishing', 'phishingFragment', 'phishingSigFragment'], 'Adware' => ['adwareList', 'adwareListFragment'], ]; if (strpos($checker, 'Critical') !== false) { if ($l_Ext == 'js') { $checker = 'CriticalJS'; } $return = [RapidScanStorageRecord::RX_MALWARE, $l_SigId, $this->getFragment($content, $l_Pos)]; } if ($checker == 'WarningPHP' || $checker == 'Phishing') { $return = [RapidScanStorageRecord::RX_SUSPICIOUS, $l_SigId, $this->getFragment($content, $l_Pos)]; } $vars->{$checkers[$checker][0]}[] = $i; $vars->{$checkers[$checker][1]}[] = $this->getFragment($content, $l_Pos); if (isset($checkers[$checker][2])) { $vars->{$checkers[$checker][2]}[] = $l_SigId; } }; $l_Pos = 0; $l_SigId = ''; if (!$g_SkipNextCheck) { $checkers['CriticalPHP'] = true; if (AI_EXPERT_MODE > 0) { $checkers['CriticalPHP_3'] = true; } if (AI_EXPERT_MODE > 1) { $checkers['CriticalPHP_2'] = true; } $checkers['CriticalPHP_4'] = true; if (AI_EXPERT_MODE > 0) { $checkers['CriticalPHP_5'] = true; } if (!AI_HOSTER && AI_EXPERT > 0 && $l_Ext == 'php') { $checkers['CriticalPHPGIF'] = true; } if (!AI_HOSTER && AI_EXPERT > 1 && strpos($l_Ext, 'ph') !== false) { $checkers['CriticalPHPUploader'] = true; } $checkers['CriticalJS'] = false; if (AI_EXPERT_MODE > 1) { $checkers['CriticalJS_PARA'] = false; } if ($this->suspicious) { $checkers['WarningPHP'] = false; } if (!AI_HOSTER && $this->suspicious) { $checkers['Phishing'] = true; $checkers['Adware'] = false; } $g_SkipNextCheck = ScanUnit::QCR_ScanContent($checkers, $l_Unwrapped, $l_Content, $vars->signs, $this->debug, $precheck, $processResult, $return); } if (!$g_SkipNextCheck && isset($checkers['Adware'])) { // articles if (stripos($l_Filename, 'article_index')) { $vars->adwareList[] = $i; $l_CriticalDetected = true; } } } // end of if (!$g_SkipNextCheck) { //printProgress(++$_files_and_ignored, $l_Filename); $this->delayWithCallback(SCAN_DELAY, $callback); $l_TSEndScan = microtime(true); if ($l_TSEndScan - $l_TSStartScan >= 0.5) { $this->delayWithCallback(SCAN_DELAY, $callback); } if ($g_SkipNextCheck || $l_CriticalDetected) { $this->AddResult($file, $i, $vars); } unset($file); $vars->fileinfo = null; unset($l_Unwrapped); unset($l_Content); return $return; } private function callCallback($callback) { if ($callback !== null) { call_user_func($callback); } } private function delayWithCallback($delay, $callback) { $delay *= 1000; $this->callCallback($callback); while ($delay > 500000) { $delay -= 500000; usleep(500000); $this->callCallback($callback); } usleep($delay); $this->callCallback($callback); } public function AddResult($file, $i, $vars) { if (is_string($file)) { $vars->structure['n'][$i] = $file; return; } $vars->structure['n'][$i] = $file->getFilename(); $vars->structure['s'][$i] = $file->getSize(); $vars->structure['c'][$i] = $file->getCreated(); $vars->structure['m'][$i] = $file->getModified(); $vars->structure['u'][$i] = $file->getUid(); $vars->structure['g'][$i] = $file->getGid(); $vars->structure['p'][$i] = $file->getMode(); $vars->structure['e'][$i] = time(); $vars->structure['crc'][$i] = $file->isBinary() ? $file->getSha1file() : $file->getHash(); $vars->structure['sha256'][$i] = $file->getSha256(); } public function prepareBigFilesToCriticalList($list, &$vars) { $base = count($vars->structure['n']); foreach ($list as $i => $fn) { $l_Ext = strtolower(pathinfo($fn, PATHINFO_EXTENSION)); if ($this->critical_fs->satisfiedBy($l_Ext, 'extensions')) { $file = new FileInfo($fn, $base + $i); $vars->criticalPHP[] = $file->getIndex(); $vars->criticalPHPFragment[] = "BIG FILE. SKIPPED."; $vars->criticalPHPSig[] = "big_1"; $this->AddResult($file, $file->getIndex(), $vars); } } } public function prepareBigElfFilesToCriticalSusList($list, &$vars) { $base = count($vars->structure['n']); foreach ($list as $i => $fn) { $file = new FileInfo($fn, $base + $i); $heur_sig = 'SMW-HEUR-ELF'; if (defined('USE_HEURISTICS')) { $vars->criticalPHP[] = $file->getIndex(); $vars->criticalPHPFragment[] = $heur_sig; $vars->criticalPHPSig[] = $heur_sig; } elseif (defined('USE_HEURISTICS_SUSPICIOUS')) { $vars->warningPHP[] = $file->getIndex(); $vars->warningPHPFragment[] = $heur_sig; $vars->warningPHPSig[] = $heur_sig; } $this->AddResult($file, $file->getIndex(), $vars); } } private function satisfiedBySmartScan($fs, $ext, $content, $ext_table, $content_table) { $need_scan = $fs->satisfiedBy($ext, $ext_table) || $fs->satisfiedByContent($content, $content_table); if (!$need_scan && DEBUG_MODE) { echo "Skipped file, not critical.\n"; } return $need_scan; } /////////////////////////////////////////////////////////////////////////// private function CheckVulnerability($par_Filename, $par_Index, $par_Content, $vars) { global $g_CmsListDetector, $defaults; $use_cms_detector = ($g_CmsListDetector instanceof CmsVersionDetector); if (!$use_cms_detector && !$defaults['use_template_in_path']) { return false; } $l_Vuln = []; $par_Filename = strtolower($par_Filename); if ((strpos($par_Filename, 'libraries/joomla/session/session.php') !== false) && (strpos($par_Content, '&& filter_var($_SERVER[\'HTTP_X_FORWARDED_FOR') === false)) { $l_Vuln['id'] = 'RCE : https://docs.joomla.org/Security_hotfixes_for_Joomla_EOL_versions'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } if ($use_cms_detector && (strpos($par_Filename, 'administrator/components/com_media/helpers/media.php') !== false) && (strpos($par_Content, '$format == \'\' || $format == false ||') === false) ) { if ($g_CmsListDetector->isCms(CmsVersionDetector::CMS_JOOMLA, '1.5')) { $l_Vuln['id'] = 'AFU : https://docs.joomla.org/Security_hotfixes_for_Joomla_EOL_versions'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } return false; } if ($use_cms_detector && (strpos($par_Filename, 'joomla/filesystem/file.php') !== false) && (strpos($par_Content, '$file = rtrim($file, \'.\');') === false) ) { if ($g_CmsListDetector->isCms(CmsVersionDetector::CMS_JOOMLA, '1.5')) { $l_Vuln['id'] = 'AFU : https://docs.joomla.org/Security_hotfixes_for_Joomla_EOL_versions'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } return false; } if ((strpos($par_Filename, 'editor/filemanager/upload/test.html') !== false) || (stripos($par_Filename, 'editor/filemanager/browser/default/connectors/php/') !== false) || (stripos($par_Filename, 'editor/filemanager/connectors/uploadtest.html') !== false) || (strpos($par_Filename, 'editor/filemanager/browser/default/connectors/test.html') !== false)) { $l_Vuln['id'] = 'AFU : FCKEDITOR : http://www.exploit-db.com/exploits/17644/ & /exploit/249'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } if ((strpos($par_Filename, 'inc_php/image_view.class.php') !== false) || (strpos($par_Filename, '/inc_php/framework/image_view.class.php') !== false)) { if (strpos($par_Content, 'showImageByID') === false) { $l_Vuln['id'] = 'AFU : REVSLIDER : http://www.exploit-db.com/exploits/35385/'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } return false; } if (strpos($par_Filename, 'includes/database/database.inc') !== false) { if (strpos($par_Content, 'foreach ($data as $i => $value)') !== false) { $l_Vuln['id'] = 'SQLI : DRUPAL : CVE-2014-3704'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } return false; } if (strpos($par_Filename, 'engine/classes/min/index.php') !== false) { if (strpos($par_Content, 'tr_replace(chr(0)') === false) { $l_Vuln['id'] = 'AFD : MINIFY : CVE-2013-6619'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } return false; } if ((strpos($par_Filename, 'timthumb.php') !== false) || (strpos($par_Filename, 'thumb.php') !== false) || (strpos($par_Filename, 'cache.php') !== false) || (strpos($par_Filename, '_img.php') !== false)) { if (strpos($par_Content, 'code.google.com/p/timthumb') !== false && strpos($par_Content, '2.8.14') === false) { $l_Vuln['id'] = 'RCE : TIMTHUMB : CVE-2011-4106,CVE-2014-4663'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } return false; } if (strpos($par_Filename, 'components/com_rsform/helpers/rsform.php') !== false) { if (preg_match('~define\s*\(\s*\'_rsform_version\'\s*,\s*\'([^\']+)\'\s*\)\s*;~msi', $par_Content, $version)) { $version = $version[1]; if (version_compare($version, '1.5.2') !== 1) { $l_Vuln['id'] = 'RCE : RSFORM : rsform.php, LINE 1605'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } } return false; } if (strpos($par_Filename, 'fancybox-for-wordpress/fancybox.php') !== false) { if (strpos($par_Content, '\'reset\' == $_REQUEST[\'action\']') !== false) { $l_Vuln['id'] = 'CODE INJECTION : FANCYBOX'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } return false; } if (strpos($par_Filename, 'cherry-plugin/admin/import-export/upload.php') !== false) { if (strpos($par_Content, 'verify nonce') === false) { $l_Vuln['id'] = 'AFU : Cherry Plugin'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } return false; } if (strpos($par_Filename, 'tiny_mce/plugins/tinybrowser/tinybrowser.php') !== false) { $l_Vuln['id'] = 'AFU : TINYMCE : http://www.exploit-db.com/exploits/9296/'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } if (strpos($par_Filename, '/bx_1c_import.php') !== false) { if (strpos($par_Content, '$_GET[\'action\']=="getfiles"') !== false) { $l_Vuln['id'] = 'AFD : https://habrahabr.ru/company/dsec/blog/326166/'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } } if (strpos($par_Filename, 'scripts/setup.php') !== false) { if (strpos($par_Content, 'PMA_Config') !== false) { $l_Vuln['id'] = 'CODE INJECTION : PHPMYADMIN : http://1337day.com/exploit/5334'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } return false; } if (strpos($par_Filename, '/uploadify.php') !== false) { if (strpos($par_Content, 'move_uploaded_file($tempFile,$targetFile') !== false) { $l_Vuln['id'] = 'AFU : UPLOADIFY : CVE: 2012-1153'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } return false; } if (strpos($par_Filename, 'com_adsmanager/controller.php') !== false) { if (strpos($par_Content, 'move_uploaded_file($file[\'tmp_name\'], $tempPath.\'/\'.basename($file[') !== false) { $l_Vuln['id'] = 'AFU : https://revisium.com/ru/blog/adsmanager_afu.html'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } return false; } if (strpos($par_Filename, 'wp-content/plugins/wp-mobile-detector/resize.php') !== false) { if (strpos($par_Content, 'file_put_contents($path, file_get_contents($_REQUEST[\'src\']));') !== false) { $l_Vuln['id'] = 'AFU : https://www.pluginvulnerabilities.com/2016/05/31/aribitrary-file-upload-vulnerability-in-wp-mobile-detector/'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } return false; } if (strpos($par_Filename, 'core/lib/drupal.php') !== false) { $version = ''; if (preg_match('|VERSION\s*=\s*\'(8\.\d+\.\d+)\'|smi', $par_Content, $tmp_ver)) { $version = $tmp_ver[1]; } if (($version !== '') && (version_compare($version, '8.5.1', '<'))) { $l_Vuln['id'] = 'Drupageddon 2 : SA-CORE-2018–002'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } return false; } if (strpos($par_Filename, 'changelog.txt') !== false) { $version = ''; if (preg_match('|Drupal\s+(7\.\d+),|smi', $par_Content, $tmp_ver)) { $version = $tmp_ver[1]; } if (($version !== '') && (version_compare($version, '7.58', '<'))) { $l_Vuln['id'] = 'Drupageddon 2 : SA-CORE-2018–002'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } return false; } if (strpos($par_Filename, 'phpmailer.php') !== false) { $l_Detect = false; if (strpos($par_Content, 'PHPMailer') !== false) { $l_Found = preg_match('~Version:\s*(\d+)\.(\d+)\.(\d+)~', $par_Content, $l_Match); if ($l_Found) { $l_Version = $l_Match[1] * 1000 + $l_Match[2] * 100 + $l_Match[3]; if ($l_Version < 2520) { $l_Detect = true; } } if (!$l_Found) { $l_Found = preg_match('~Version\s*=\s*\'(\d+)\.*(\d+)\.(\d+)~i', $par_Content, $l_Match); if ($l_Found) { $l_Version = $l_Match[1] * 1000 + $l_Match[2] * 100 + $l_Match[3]; if ($l_Version < 5220) { $l_Detect = true; } } } if ($l_Detect) { $l_Vuln['id'] = 'RCE : CVE-2016-10045, CVE-2016-10031'; $l_Vuln['ndx'] = $par_Index; $vars->vulnerable[] = $l_Vuln; return true; } } return false; } } private function checkFalsePositives($l_Filename, $l_Unwrapped, $l_DeobfType, $vars) { if ($l_DeobfType != '') { if (DEBUG_MODE) { stdOut("\n-----------------------------------------------------------------------------\n"); stdOut("[DEBUG]" . $l_Filename . "\n"); stdOut("\n...... $l_DeobfType ...........\n"); var_dump($l_Unwrapped); stdOut("\n"); } switch ($l_DeobfType) { case 'Bitrix': foreach ($vars->signs->_DeMapper as $fkey => $fvalue) { if (DEBUG_MODE) { stdOut("[$fkey] => [$fvalue]\n"); } if ((strpos($l_Filename, $fkey) !== false) && (strpos($l_Unwrapped, $fvalue) !== false)) { if (DEBUG_MODE) { stdOut("\n[DEBUG] *** SKIP: False Positive\n"); } return true; } } break; } return false; } } private function getFragment($par_Content, $par_Pos) { $l_MaxChars = MAX_PREVIEW_LEN; $par_Content = preg_replace('/[\x00-\x1F\x80-\xFF]/', '~', $par_Content); $l_MaxLen = strlen($par_Content); $l_RightPos = min($par_Pos + $l_MaxChars, $l_MaxLen); $l_MinPos = max(0, $par_Pos - $l_MaxChars); $l_Res = ($l_MinPos > 0 ? '…' : '') . substr($par_Content, $l_MinPos, $par_Pos - $l_MinPos) . '__AI_MARKER__' . substr($par_Content, $par_Pos, $l_RightPos - $par_Pos - 1); $l_Res = AibolitHelpers::makeSafeFn(Normalization::normalize($l_Res), $this->addPrefix, $this->noPrefix); $l_Res = str_replace('~', ' ', $l_Res); $l_Res = preg_replace('~[\s\t]+~', ' ', $l_Res); $l_Res = str_replace('' . '?php', '' . '?php ', $l_Res); return $l_Res; } /** * @return array */ public function whitelisting() { // whitelist $snum = 0; $list = $this->check_whitelist($this->vars->structure['crc'], $snum); $keys = [ 'criticalPHP', 'criticalJS', 'phishing', 'adwareList', 'warningPHP' ]; foreach ($keys as $p) { if (empty($this->vars->{$p})) { continue; } $p_Fragment = $p . 'Fragment'; $p_Sig = $p . 'Sig'; if ($p == 'phishing') { $p_Sig = $p . 'SigFragment'; } $count = count($this->vars->{$p}); for ($i = 0; $i < $count; $i++) { $id = $this->vars->{$p}[$i]; if ($this->vars->structure['crc'][$id] !== 0 && in_array($this->vars->structure['crc'][$id], $list)) { unset($this->vars->{$p}[$i], $this->vars->{$p_Sig}[$i], $this->vars->{$p_Fragment}[$i]); } } $this->vars->{$p} = array_values($this->vars->{$p}); $this->vars->{$p_Fragment} = array_values($this->vars->{$p_Fragment}); if (!empty($this->vars->{$p_Sig})) { $this->vars->{$p_Sig} = array_values($this->vars->{$p_Sig}); } } return [$snum, $i]; } public function check_whitelist($list, &$snum) { if (empty($list)) { return []; } $avdb = ''; $file = __DIR__ . '/AIBOLIT-WHITELIST.db'; if ((isset($this->vars->options['avdb']) && !empty($this->vars->options['avdb']) && ($avdb = $this->vars->options['avdb'])) || (isset($this->vars->options['c']) && !empty($this->vars->options['c']) && ($avdb = $this->vars->options['c']))) { if (file_exists($avdb)) { $file = dirname($avdb) . '/AIBOLIT-WHITELIST.db'; } } try { $db = FileHashMemoryDb::open($file); } catch (Exception $e) { stdOut("\nAn error occurred while loading the white list database from " . $file . "\n"); return []; } $snum = $db->count(); stdOut("\nLoaded " . ceil($snum) . " known files from " . $file . "\n"); return $db->find($list); } /////////////////////////////////////////////////////////////////////////// private function isFileTooBigForScanWithSignatures($filesize) { return (MAX_SIZE_TO_SCAN > 0 && $filesize > MAX_SIZE_TO_SCAN) || ($filesize < 0); } private function isFileTooBigForCloudscan($filesize) { return (MAX_SIZE_TO_CLOUDSCAN > 0 && $filesize > MAX_SIZE_TO_CLOUDSCAN) || ($filesize < 0); } } class ScanUnit { public static function QCR_ScanContent($checkers, $l_Unwrapped, $l_Content, $signs, $debug = null, $precheck = null, $processResult = null, &$return = null) { $smart_skipped = false; $flag = false; foreach ($checkers as $checker => $full) { $l_pos = 0; $l_SignId = ''; if (isset($precheck) && is_callable($precheck)) { if (!$precheck($checker, $l_Unwrapped) && ($full && !$precheck($checker, $l_Content))) { $smart_skipped = true; continue; } } $flag = ScanCheckers::{$checker}($l_Unwrapped, $l_pos, $l_SignId, $signs, $debug); if ($flag && isset($processResult) && is_callable($processResult)) { $processResult($checker, $l_Unwrapped, $l_pos, $l_SignId, $return); } if (!$flag && $full) { $flag = ScanCheckers::{$checker}($l_Content, $l_pos, $l_SignId, $signs, $debug); if ($flag && isset($processResult) && is_callable($processResult)) { $processResult($checker, $l_Content, $l_pos, $l_SignId, $return); } } if ($flag) { return true; } } if (!$flag && $smart_skipped) { $return = [RapidScanStorageRecord::RX_SKIPPED_SMART, '', '']; } return false; } } class ScanCheckers { const URL_GRAB = '~(?:https?:)?\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+\~#=]{2,256}\.[a-z]{2,4}\b(?:[-a-zA-Z0-9@:%_\+.\~#?&/=]*)~msi'; public static function WarningPHP($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null) { foreach ($signs->_SusDB as $l_Item) { if (preg_match('~' . $l_Item . '~smiS', $l_Content, $l_Found, PREG_OFFSET_CAPTURE)) { if (!self::CheckException($l_Content, $l_Found, $signs)) { $l_Pos = $l_Found[0][1]; $l_SigId = LoadSignaturesForScan::getSigId($l_Found); return true; } } } return false; } //////////////////////////////////////////////////////////////////////////// public static function Adware($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null) { $l_Res = false; foreach ($signs->_AdwareSig as $l_Item) { $offset = 0; while (preg_match('~' . $l_Item . '~smi', $l_Content, $l_Found, PREG_OFFSET_CAPTURE, $offset)) { if (!self::CheckException($l_Content, $l_Found, $signs)) { $l_Pos = $l_Found[0][1]; $l_SigId = 'adware'; return true; } $offset = $l_Found[0][1] + 1; } } return $l_Res; } //////////////////////////////////////////////////////////////////////////// public static function CheckException(&$l_Content, &$l_Found, $signs, $debug = null) { $l_FoundStrPlus = substr($l_Content, max($l_Found[0][1] - 10, 0), 70); foreach ($signs->_ExceptFlex as $l_ExceptItem) { if (@preg_match('~' . $l_ExceptItem . '~smi', $l_FoundStrPlus, $l_Detected)) { return true; } } return false; } //////////////////////////////////////////////////////////////////////////// public static function Phishing($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null) { $l_Res = false; foreach ($signs->_PhishingSig as $l_Item) { $offset = 0; while (preg_match('~' . $l_Item . '~smi', $l_Content, $l_Found, PREG_OFFSET_CAPTURE, $offset)) { if (!self::CheckException($l_Content, $l_Found, $signs)) { $l_Pos = $l_Found[0][1]; $l_SigId = LoadSignaturesForScan::getSigId($l_Found); if (is_object($debug) && $debug->getDebugMode() == true) { echo "Phis: $l_Content matched [$l_Item] in $l_Pos\n"; } return $l_Pos; } $offset = $l_Found[0][1] + 1; } } return $l_Res; } //////////////////////////////////////////////////////////////////////////// public static function CriticalJS($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null) { $l_Res = false; foreach ($signs->_JSVirSig as $l_Item) { $offset = 0; if (is_object($debug) && $debug->getDebugPerfomance() == true) { $stat_start = microtime(true); } while (preg_match('~' . $l_Item . '~smi', $l_Content, $l_Found, PREG_OFFSET_CAPTURE, $offset)) { if (!self::CheckException($l_Content, $l_Found, $signs)) { $l_Pos = $l_Found[0][1]; $l_SigId = LoadSignaturesForScan::getSigId($l_Found); if (is_object($debug) && $debug->getDebugMode() == true) { echo "JS: $l_Content matched [$l_Item] in $l_Pos\n"; } $l_Res = true; break; } $offset = $l_Found[0][1] + 1; } if (is_object($debug) && $debug->getDebugPerfomance() == true) { $stat_stop = microtime(true); $debug->addPerfomanceItem($l_Item, $stat_stop - $stat_start); } } return $l_Res; } public static function CriticalJS_PARA($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null) { foreach ($signs->X_JSVirSig as $l_Item) { if (is_object($debug) && $debug->getDebugPerfomance() == true) { $stat_start = microtime(true); } if (preg_match('~' . $l_Item . '~smi', $l_Content, $l_Found, PREG_OFFSET_CAPTURE)) { if (!self::CheckException($l_Content, $l_Found, $signs)) { $l_Pos = $l_Found[0][1]; //$l_SigId = myCheckSum($l_Item); $l_SigId = LoadSignaturesForScan::getSigId($l_Found); if (is_object($debug) && $debug->getDebugMode() == true) { echo "JS PARA: $l_Content matched [$l_Item] in $l_Pos\n"; } return true; } } if (is_object($debug) && $debug->getDebugPerfomance() == true) { $stat_stop = microtime(true); $debug->addPerfomanceItem($l_Item, $stat_stop - $stat_start); } } return false; } //////////////////////////////////////////////////////////////////////////// public static function CriticalPHPGIF($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null) { if (strpos($l_Content, 'GIF89') === 0) { $l_Pos = 0; $l_SigId = 'GIF'; if (is_object($debug) && $debug->getDebugMode() == true) { echo "CRIT 6: $l_Content matched [GIF] in $l_Pos\n"; } return true; } return false; } public static function CriticalPHPUploader($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null) { // detect uploaders / droppers $l_Found = null; if ((strlen($l_Content) < 2048) && ((($l_Pos = strpos($l_Content, 'multipart/form-data')) > 0) || (($l_Pos = strpos($l_Content, '$_FILE[') > 0)) || (($l_Pos = strpos($l_Content, 'move_uploaded_file')) > 0) || (preg_match('|\bcopy\s*\(|smi', $l_Content, $l_Found, PREG_OFFSET_CAPTURE)))) { if ($l_Found != null) { $l_Pos = $l_Found[0][1]; $l_SigId = 'uploader'; } if (is_object($debug) && $debug->getDebugMode() == true) { echo "CRIT 7: $l_Content matched [uploader] in $l_Pos\n"; } return true; } } public static function CriticalPHP_3($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null) { foreach ($signs->X_FlexDBShe as $l_Item) { if (is_object($debug) && $debug->getDebugPerfomance() == true) { $stat_start = microtime(true); } if (preg_match('~' . $l_Item . '~smiS', $l_Content, $l_Found, PREG_OFFSET_CAPTURE)) { if (!self::CheckException($l_Content, $l_Found, $signs)) { $l_Pos = $l_Found[0][1]; $l_SigId = LoadSignaturesForScan::getSigId($l_Found); if (is_object($debug) && $debug->getDebugMode() == true) { echo "CRIT 3: $l_Content matched [$l_Item] in $l_Pos\n"; } return true; } } if (is_object($debug) && $debug->getDebugPerfomance() == true) { $stat_stop = microtime(true); $debug->addPerfomanceItem($l_Item, $stat_stop - $stat_start); } } return false; } public static function CriticalPHP_2($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null) { foreach ($signs->XX_FlexDBShe as $l_Item) { if (is_object($debug) && $debug->getDebugPerfomance() == true) { $stat_start = microtime(true); } if (preg_match('~' . $l_Item . '~smiS', $l_Content, $l_Found, PREG_OFFSET_CAPTURE)) { if (!self::CheckException($l_Content, $l_Found, $signs)) { $l_Pos = $l_Found[0][1]; $l_SigId = LoadSignaturesForScan::getSigId($l_Found); if (is_object($debug) && $debug->getDebugMode() == true) { echo "CRIT 2: $l_Content matched [$l_Item] in $l_Pos\n"; } return true; } } if (is_object($debug) && $debug->getDebugPerfomance() == true) { $stat_stop = microtime(true); $debug->addPerfomanceItem($l_Item, $stat_stop - $stat_start); } } return false; } public static function CriticalPHP_4($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null) { $l_Content_lo = strtolower($l_Content); foreach ($signs->_DBShe as $l_Item) { $l_Pos = strpos($l_Content_lo, $l_Item); if ($l_Pos !== false) { $l_SigId = AibolitHelpers::myCheckSum($l_Item); if (is_object($debug) && $debug->getDebugMode() == true) { echo "CRIT 4: $l_Content matched [$l_Item] in $l_Pos\n"; } return true; } } return false; } public static function CriticalPHP_5($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null) { $l_Content_lo = strtolower($l_Content); foreach ($signs->X_DBShe as $l_Item) { $l_Pos = strpos($l_Content_lo, $l_Item); if ($l_Pos !== false) { $l_SigId = AibolitHelpers::myCheckSum($l_Item); if (is_object($debug) && $debug->getDebugMode() == true) { echo "CRIT 5: $l_Content matched [$l_Item] in $l_Pos\n"; } return true; } } return false; } public static function CriticalPHP($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null) { foreach ($signs->_FlexDBShe as $l_Item) { $offset = 0; if (is_object($debug) && $debug->getDebugPerfomance() == true) { $stat_start = microtime(true); } while (preg_match('~' . $l_Item . '~smiS', $l_Content, $l_Found, PREG_OFFSET_CAPTURE, $offset)) { if (!self::CheckException($l_Content, $l_Found, $signs)) { $l_Pos = $l_Found[0][1]; //$l_SigId = myCheckSum($l_Item); $l_SigId = LoadSignaturesForScan::getSigId($l_Found); if (is_object($debug) && $debug->getDebugMode() == true) { echo "CRIT 1: $l_Content matched [$l_Item] in $l_Pos\n"; } return true; } $offset = $l_Found[0][1] + 1; } if (is_object($debug) && $debug->getDebugPerfomance() == true) { $stat_stop = microtime(true); $debug->addPerfomanceItem($l_Item, $stat_stop - $stat_start); } } return false; } public static function isOwnUrl($url, $own_domain) { if (!isset($own_domain)) { return false; } return (bool)preg_match('~^(http(s)?:)?//(www\.)?' . preg_quote($own_domain) . '~msi', $url); } public static function isUrlInList($url, $list) { if (isset($list)) { foreach ($list as $item) { if (preg_match('~' . $item . '~msiS', $url, $id, PREG_OFFSET_CAPTURE)) { return $id; } } } return false; } public static function UrlChecker($l_Content, &$l_Pos, &$l_SigId, $signs, $debug = null) { $l_Pos = []; $l_SigId = []; $offset = 0; while (preg_match(self::URL_GRAB, $l_Content, $l_Found, PREG_OFFSET_CAPTURE, $offset)) { if (!self::isOwnUrl($l_Found[0][0], $signs->getOwnUrl()) && (isset($signs->whiteUrls) && !self::isUrlInList($l_Found[0][0], $signs->whiteUrls->getDb())) ) { if ($id = self::isUrlInList($l_Found[0][0], $signs->blackUrls->getDb())) { $l_Pos['black'][] = $l_Found[0][1]; $l_SigId['black'][] = $signs->blackUrls->getSig($id); } else { $l_Pos['unk'][] = $l_Found[0][1]; $l_SigId['unk'][] = $l_Found[0][0]; } } $offset = $l_Found[0][1] + strlen($l_Found[0][0]); } return !empty($l_Pos); } } class TemplateList { /** * ############# * # MAIN_PAGE # * ############# */ const MAIN_PAGE = <<<MAIN_PAGE <html> <head> <!-- revisium.com/ai/ --> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" > <META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW"> <title>@@HEAD_TITLE@@</title> <style type="text/css" title="currentStyle"> @import "https://cdn.revisium.com/ai/media/css/demo_page2.css"; @import "https://cdn.revisium.com/ai/media/css/jquery.dataTables2.css"; </style> <script type="text/javascript" language="javascript" src="https://cdn.revisium.com/ai/jquery.js"></script> <script type="text/javascript" language="javascript" src="https://cdn.revisium.com/ai/datatables.min.js"></script> <style> body { font-family: Tahoma, sans-serif; color: #5a5a5a; background: #FFFFFF; font-size: 14px; margin: 20px; padding: 0; } .header { font-size: 34px; margin: 0 0 10px 0; } .hidd { display: none; } .ok { color: green; } .line_no { -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; background: #DAF2C1; padding: 2px 5px 2px 5px; margin: 0 5px 0 5px; } .credits_header { -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; background: #F2F2F2; padding: 10px; font-size: 11px; margin: 0 0 10px 0; } .marker { color: #FF0090; font-weight: 100; background: #FF0090; padding: 2px 0 2px 0; width: 2px; } .title { font-size: 24px; margin: 20px 0 10px 0; color: #9CA9D1; } .summary { float: left; width: 500px; } .summary TD { font-size: 12px; border-bottom: 1px solid #F0F0F0; font-weight: 700; padding: 10px 0 10px 0; } .crit, .vir { color: #D84B55; } .intitem { color: #4a6975; } .spacer { margin: 0 0 50px 0; clear: both; } .warn { color: #F6B700; } .clear { clear: both; } .offer { -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; width: 500px; background: #F2F2F2; color: #747474; font-family: Helvetica, Arial, sans-serif; padding: 30px; margin: 20px 0 0 550px; font-size: 14px; } .offer-our-products { -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; width: 500px; background: #f6f5e0; color: #747474; font-family: Helvetica, Arial, sans-serif; padding: 30px; margin: 20px 0 0 550px; font-size: 14px; } HR { margin-top: 15px; margin-bottom: 15px; opacity: .2; } .flist { font-family: Henvetica, Arial, sans-serif; } .flist TD { font-size: 11px; padding: 5px; } .flist TH { font-size: 12px; height: 30px; padding: 5px; background: #CEE9EF; } .it { font-size: 14px; font-weight: 100; margin-top: 10px; } .crit .it A { color: #E50931; line-height: 25px; text-decoration: none; } .warn .it A { color: #F2C900; line-height: 25px; text-decoration: none; } .details { font-family: Calibri, sans-serif; font-size: 12px; margin: 10px 10px 10px 0; } .crit .details { color: #A08080; } .warn .details { color: #808080; } .details A { color: #FFF; font-weight: 700; text-decoration: none; padding: 2px; background: #E5CEDE; -webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px; } .details A:hover { background: #A0909B; } .ctd { margin: 10px 0 10px 0; align: center; } .ctd A { color: #0D9922; } .disclaimer { color: darkgreen; margin: 10px 10px 10px 0; } .note_vir { margin: 10px 0 10px 0; / / padding: 10 px; color: #FF4F4F; font-size: 15px; font-weight: 700; clear: both; } .note_warn { margin: 10px 0 10px 0; color: #F6B700; font-size: 15px; font-weight: 700; clear: both; } .note_int { margin: 10px 0 10px 0; color: #60b5d6; font-size: 15px; font-weight: 700; clear: both; } .updateinfo { color: #FFF; text-decoration: none; background: #E5CEDE; -webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px; margin: 10px 0 10px 0; padding: 10px; } .caution { color: #EF7B75; text-decoration: none; margin: 20px 0 0 0; font-size: 12px; } .footer { color: #303030; text-decoration: none; background: #F4F4F4; -webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px; margin: 80px 0 10px 0px; padding: 10px; } .rep { color: #303030; text-decoration: none; background: #94DDDB; -webkit-border-radius: 7px; -moz-border-radius: 7px; border-radius: 7px; margin: 10px 0 10px 0; padding: 10px; font-size: 12px; } </style> </head> <body> <div class="header">@@MAIN_TITLE@@ @@PATH_URL@@ (@@MODE@@)</div> <div class="credits_header">@@CREDITS@@</div> <div class="details_header"> @@STAT@@<br/> @@SCANNED@@ @@MEMORY@@. </div> @@WARN_QUICK@@ <div class="summary"> @@SUMMARY@@ </div> <div class="offer"> @@OFFER@@ </div> <div class="offer-our-products"> @@OFFER_OUR_PRODUCTS@@ </div> <div class="clear"></div> @@MAIN_CONTENT@@ <div class="footer"> @@FOOTER@@ </div> <script language="javascript"> function hsig(id) { var divs = document.getElementsByTagName("tr"); for(var i = 0; i < divs.length; i++){ if (divs[i].getAttribute('o') == id) { divs[i].innerHTML = ''; } } return false; } $(document).ready(function(){ $('#table_crit').dataTable({ "aLengthMenu": [[100 , 500, -1], [100, 500, "All"]], "aoColumns": [ {"iDataSort": 7, "width":"70%"}, {"iDataSort": 5}, {"iDataSort": 6}, {"bSortable": true}, {"bVisible": false}, {"bVisible": false}, {"bVisible": false}, {"bVisible": false} ], "paging": true, "iDisplayLength": 500, "oLanguage": { "sLengthMenu": "@@msg1@@", "sZeroRecords": "@@msg2@@", "sInfo": "@@msg3@@", "sInfoEmpty": "@@msg4@@", "sInfoFiltered": "@@msg5@@", "sSearch": "@@msg6@@", "sUrl": "", "oPaginate": { "sFirst": "@@msg7@@", "sPrevious": "@@msg8@@", "sNext": "@@msg9@@", "sLast": "@@msg10@@" }, "oAria": { "sSortAscending": "@@msg11@@", "sSortDescending": "@@msg12@@" } } } ); }); $(document).ready(function(){ $('#table_vir').dataTable({ "aLengthMenu": [[100 , 500, -1], [100, 500, "All"]], "paging": true, "aoColumns": [ {"iDataSort": 7, "width":"70%"}, {"iDataSort": 5}, {"iDataSort": 6}, {"bSortable": true}, {"bVisible": false}, {"bVisible": false}, {"bVisible": false}, {"bVisible": false} ], "iDisplayLength": 500, "oLanguage": { "sLengthMenu": "@@msg1@@", "sZeroRecords": "@@msg2@@", "sInfo": "@@msg3@@", "sInfoEmpty": "@@msg4@@", "sInfoFiltered": "@@msg5@@", "sSearch": "@@msg6@@", "sUrl": "", "oPaginate": { "sFirst": "@@msg7@@", "sPrevious": "@@msg8@@", "sNext": "@@msg9@@", "sLast": "@@msg10@@" }, "oAria": { "sSortAscending": "@@msg11@@", "sSortDescending": "@@msg12@@" } }, } ); }); if ($('#table_warn0')) { $('#table_warn0').dataTable({ "aLengthMenu": [[100 , 500, -1], [100, 500, "All"]], "paging": true, "aoColumns": [ {"iDataSort": 7, "width":"70%"}, {"iDataSort": 5}, {"iDataSort": 6}, {"bSortable": true}, {"bVisible": false}, {"bVisible": false}, {"bVisible": false}, {"bVisible": false} ], "iDisplayLength": 500, "oLanguage": { "sLengthMenu": "@@msg1@@", "sZeroRecords": "@@msg2@@", "sInfo": "@@msg3@@", "sInfoEmpty": "@@msg4@@", "sInfoFiltered": "@@msg5@@", "sSearch": "@@msg6@@", "sUrl": "", "oPaginate": { "sFirst": "@@msg7@@", "sPrevious": "@@msg8@@", "sNext": "@@msg9@@", "sLast": "@@msg10@@" }, "oAria": { "sSortAscending": "@@msg11@@", "sSortDescending": "@@msg12@@" } } } ); } if ($('#table_warn1')) { $('#table_warn1').dataTable({ "aLengthMenu": [[100 , 500, -1], [100, 500, "All"]], "paging": true, "aoColumns": [ {"iDataSort": 7, "width":"70%"}, {"iDataSort": 5}, {"iDataSort": 6}, {"bSortable": true}, {"bVisible": false}, {"bVisible": false}, {"bVisible": false}, {"bVisible": false} ], "iDisplayLength": 500, "oLanguage": { "sLengthMenu": "@@msg1@@", "sZeroRecords": "@@msg2@@", "sInfo": "@@msg3@@", "sInfoEmpty": "@@msg4@@", "sInfoFiltered": "@@msg5@@", "sSearch": "@@msg6@@", "sUrl": "", "oPaginate": { "sFirst": "@@msg7@@", "sPrevious": "@@msg8@@", "sNext": "@@msg9@@", "sLast": "@@msg10@@" }, "oAria": { "sSortAscending": "@@msg11@@", "sSortDescending": "@@msg12@@" } } } ); } </script> <!-- @@SERVICE_INFO@@ --> </body> </html> MAIN_PAGE; #region templates ru /** * ############# * # FOOTER_RU # * ############# */ const FOOTER_RU = <<<FOOTER <div class="disclaimer"><span class="vir">[!]</span> Отказ от гарантий: невозможно гарантировать обнаружение всех вредоносных скриптов. Поэтому разработчик сканера не несет ответственности за возможные последствия работы сканера AI-Bolit или неоправданные ожидания пользователей относительно функциональности и возможностей. </div> <div class="thanx"> Мы будем чрезвычайно благодарны за любые упоминания сканера AI-Bolit на вашем сайте, в блоге, среди друзей, знакомых и клиентов. <br/>Ссылку можно поставить на страницу <a href="https://revisium.com/ai/">https://revisium.com/ai/</a>.<br/> </div> FOOTER; /** * ########################### * # OFFER_RU # * ########################### */ const OFFER_RU = <<<OFFER_ON_VIRUS_FOUND <div> <div class="crit" style="font-size: 17px; margin-bottom: 20px"><b>Внимание! Наш сканер обнаружил подозрительный или вредоносный код</b>.</div> <p>Возможно, ваш сайт был взломан. Рекомендуем срочно <a href="https://revisium.com/ru/order/#fform" target=_blank>проконсультироваться со специалистами</a> по данному отчету.</p> <p><hr size=1></p> <p>Рекомендуем также проверить сайт бесплатным <b><a href="https://rescan.pro/?utm=aibolit" target=_blank>онлайн-сканером ReScan.Pro</a></b>.</p> <p><hr size=1></p> <div class="caution">@@CAUTION@@</div> </div> OFFER_ON_VIRUS_FOUND; /** * ######################### * # OFFER_OUR_PRODUCTS_RU # * ######################### */ const OFFER_OUR_PRODUCTS_RU = <<<OFFER_OUR_PRODUCTS <b>Наши продукты:</b><br/> <ul> <li style="margin-top: 10px"><font color=red><sup>[new]</sup></font><b><a href="https://revisium.com/ru/products/antivirus_for_ispmanager/" target=_blank>Антивирус для ISPmanager Lite</a></b> — сканирование и лечение сайтов прямо в панели хостинга</li> <li style="margin-top: 10px"><b><a href="https://revisium.com/ru/blog/revisium-antivirus-for-plesk.html" target=_blank>Антивирус для Plesk</a> Onyx 17.x</b> — сканирование и лечение сайтов прямо в панели хостинга</li> <li style="margin-top: 10px"><b><a href="https://cloudscan.pro/ru/" target=_blank>Облачный антивирус CloudScan.Pro</a> для веб-специалистов</b> — лечение сайтов в один клик</li> <li style="margin-top: 10px"><b><a href="https://revisium.com/ru/antivirus-server/" target=_blank>Антивирус для сервера</a></b> — для хостинг-компаний, веб-студий и агентств.</li> </ul> </div> OFFER_OUR_PRODUCTS; #endregion #region templates eng /** * ############# * # FOOTER_EN # * ############# */ const FOOTER_EN = <<<FOOTER <div class="disclaimer"><span class="vir">[!]</span> Disclaimer: We're not liable to you for any damages, including general, special, incidental or consequential damages arising out of the use or inability to use the script (including but not limited to loss of data or report being rendered inaccurate or failure of the script). There's no warranty for the program. Use at your own risk. </div> <div class="thanx"> We're greatly appreciate for any references in the social medias, forums or blogs to our scanner AI-BOLIT <a href="https://revisium.com/aibo/">https://revisium.com/aibo/</a>.<br/> </div> FOOTER; /** * ########################### * # OFFER_ON_VIRUS_FOUND_EN # * ########################### */ const OFFER_EN = <<<OFFER_ON_VIRUS_FOUND <div> <div class="crit" style="font-size: 17px;"><b>Attention! The scanner has detected suspicious or malicious files.</b></div> <br/>Most likely the website has been compromised. Please, <a href="https://revisium.com/en/contacts/" target=_blank>contact web security experts</a> from Revisium to check the report or clean the malware. <p><hr size=1></p> Also check your website for viruses with our free <b><a href="http://rescan.pro/?en&utm=aibo" target=_blank>online scanner ReScan.Pro</a></b>. </div> <br/> <div> Revisium contacts: <a href="https://revisium.com/en/contacts/">https://revisium.com/en/home/</a> </div> <div class="caution">@@CAUTION@@</div> OFFER_ON_VIRUS_FOUND; /** * ######################### * # OFFER_OUR_PRODUCTS_EN # * ######################### */ const OFFER_OUR_PRODUCTS_EN = <<<OFFER_OUR_PRODUCTS <b>Special Offers:</b><br/> <ul> <li style="margin-top: 10px"><font color=red><sup>[new]</sup></font><b><a href="http://ext.plesk.com/packages/b71916cf-614e-4b11-9644-a5fe82060aaf-revisium-antivirus">Antivirus for Plesk Onyx</a></b> hosting panel with one-click malware cleanup and scheduled website scanning.</li> <li style="margin-top: 10px"><font color=red></font><b><a href="https://www.ispsystem.com/addons-modules/revisium">Antivirus for ISPmanager Lite</a></b> hosting panel with one-click malware cleanup and scheduled website scanning.</li> <li style="margin-top: 10px">Professional malware cleanup and web-protection service with 6 month guarantee for only $99 (one-time payment): <a href="https://revisium.com/en/home/#order_form">https://revisium.com/en/home/</a>.</li> </ul> </div> OFFER_OUR_PRODUCTS; #endregion } class TranslateList { const RU = [ //Переменные для javascript 'data_table.length_menu' => 'Отображать по _MENU_ записей', 'data_table.zero_records' => 'Ничего не найдено', 'data_table.info' => 'Отображается c _START_ по _END_ из _TOTAL_ файлов', 'data_table.info_empty' => 'Нет файлов', 'data_table.info_filtered' => '(всего записей _MAX_)', 'data_table.search' => 'Поиск:', 'data_table.paginate.first' => 'Первая', 'data_table.paginate.previous' => 'Предыдущая', 'data_table.paginate.next' => 'Следующая', 'data_table.paginate.last' => 'Последняя', 'data_table.aria.sort_ascending' => ': активировать для сортировки столбца по возрастанию', 'data_table.aria.sort_descending' => ': активировать для сортировки столбцов по убыванию', 'header.scan_report_title' => 'Отчет сканера <a href="https://revisium.com/ai/">AI-Bolit</a> v@@VERSION@@:', 'offer.when_no_critical' => 'Обращаем внимание на то, что большинство CMS <b>без дополнительной защиты</b> рано или поздно <b>взламывают</b>.<p> Компания <a href="https://revisium.com/">"Ревизиум"</a> предлагает услугу превентивной защиты сайта от взлома с использованием уникальной <b>процедуры "цементирования сайта"</b>. Подробно на <a href="https://revisium.com/ru/client_protect/">странице услуги</a>. <p>Лучшее лечение — это профилактика.', 'offer_our_products' => TemplateList::OFFER_OUR_PRODUCTS_RU, 'offer.when_has_critical' => TemplateList::OFFER_RU, 'сaution.aibolit_file' => 'Не оставляйте файл отчета на сервере, и не давайте на него прямых ссылок с других сайтов. Информация из отчета может быть использована злоумышленниками для взлома сайта, так как содержит информацию о настройках сервера, файлах и каталогах.', 'сaution.scanner_set_password' => "Сканер AI-Bolit запускается с паролем. Если это первый запуск сканера, вам нужно придумать сложный пароль и вписать его в файле ai-bolit.php в строке №34. <p>Например, <b>'PASS', =>'%s',</b><p> После этого откройте сканер в браузере, указав пароль в параметре \"p\". <p>Например, так <b>http://mysite.ru/ai-bolit.php?p=%s</b>. ", 'сaution.quick_scanned' => '<div class="rep" style="color: #0000A0">Внимание, скрипт выполнил быструю проверку сайта. Проверяются только наиболее критические файлы, но часть вредоносных скриптов может быть не обнаружена. Пожалуйста, запустите скрипт из командной строки для выполнения полного тестирования. Подробнее смотрите в <a href="https://revisium.com/ai/faq.php">FAQ вопрос №10</a>.</div>', 'warning.weak_password' => "Вы установили слабый пароль на скрипт AI-BOLIT. Укажите пароль не менее 8 символов, содержащий латинские буквы в верхнем и нижнем регистре, а также цифры. Например, такой <b>%s</b>", 'warning.folder_read_permission' => 'Текущая директория не доступна для чтения скрипту. Пожалуйста, укажите права на доступ <b>rwxr-xr-x</b> или с помощью командной строки <b>chmod +r имя_директории</b>', 'warnings' => 'Предупреждения', 'warning.reading_error' => 'Непроверенные файлы - ошибка чтения', 'info.time_elapsed' => "Затрачено времени: <b>%s</b>. Сканирование начато %s, сканирование завершено %s", 'info.files_checked' => 'Всего проверено %s директорий и %s файлов.', 'info.non_commercial_use' => 'Сканер бесплатный только для личного некоммерческого использования. Информация по <a href="https://revisium.com/ai/faq.php#faq11" target=_blank>коммерческой лицензии</a> (пункт №11). <a href="https://revisium.com/images/mini_aibolit.jpg">Авторское свидетельство</a> о гос. регистрации в РосПатенте №2012619254 от 12 октября 2012 г.', 'critical.title' => '<div class="title">Критические замечания</div>', 'not_detected.shell_scripts' => 'Вирусы и вредоносные скрипты не обнаружены.', 'detected.shell_scripts' => 'Эти файлы могут быть вредоносными или хакерскими скриптами', 'detected.javascript' => 'Эти файлы могут быть javascript вирусами', 'detected.executables' => 'Обнаружены сигнатуры исполняемых файлов unix и нехарактерных скриптов. Они могут быть вредоносными файлами', 'detected.bad_links' => 'Дорвеи, реклама, спам-ссылки, редиректы', 'detected.phishing_pages' => 'Обнаружены фишинговые страницы', 'file.not_found.more_than' => 'Не найдено файлов больше чем %s', 'file.recommend_to_remove' => 'Временные файлы или файлы(каталоги) - кандидаты на удаление по ряду причин', 'file.scanned_manual' => 'Просканированы только файлы, перечисленные в %s. Для полного сканирования удалите файл %s и запустите сканер повторно.', 'file.suspicion.heuristic_analyze' => 'Эвристический анализ обнаружил подозрительные файлы. Проверьте их на наличие вредоносного кода.', 'file.encrypted' => 'Зашифрованных файлов', 'file.hidden' => 'Скрытых файлов', 'file.added' => "Добавленные файлы", 'file.updated' => "Измененные файлы", 'file.deleted' => "Удаленные файлы", 'file_structure.updates' => "Изменения в файловой структуре", 'hidden_files' => 'Скрытые файлы', 'doorway.might' => 'Возможно, каталог с дорвеем', 'doorway.not_found' => 'Не найдено директорий c дорвеями', 'suspicion.multiple' => 'Двойное расширение, зашифрованный контент или подозрение на вредоносный скрипт. Требуется дополнительный анализ', 'suspicion.malicious' => 'Подозрение на вредоносный скрипт', 'suspicion.htaccess' => 'Подозрение на мобильный редирект, подмену расширений или автовнедрение кода', 'suspicion.non_php' => 'В не .php файле содержится стартовая сигнатура PHP кода. Возможно, там вредоносный код', 'suspicion.hidden_link' => 'Невидимые ссылки. Подозрение на ссылочный спам', 'suspicion.doorway' => 'Подозрение на дорвей', 'suspicion.code' => 'Скрипт использует код, который часто встречается во вредоносных скриптах', 'suspicion.obfuscated_variables' => 'Подозрение на обфусцированные переменные', 'suspicion.global_array' => 'Подозрительное использование массива глобальных переменных', 'suspicion.file_time' => "Подозрительные параметры времени изменения файла", 'suspicion.file_attributes' => "Подозрительные атрибуты файла", 'suspicion.file_location' => "Подозрительное местоположение файла", 'symlinks' => 'Символические ссылки (symlinks)', 'hidden_links' => 'Невидимые ссылки', 'link.symbolic' => 'Символических ссылок', 'links.adware_spam' => 'Рекламных ссылок и кодов', 'links.empty' => 'Пустых ссылок', 'display_only_first' => 'Отображены только первые ', 'skipped.adirignore' => 'Директории из файла .adirignore были пропущены при сканировании', 'founded_CMS' => 'Версии найденных CMS', 'folder.unsafe_writable' => 'Потенциально небезопасно! Директории, доступные скрипту на запись', 'folder.unsafe_writable_not_found' => 'Не найдено директорий, доступных на запись скриптом', 'folder.added' => "Добавленные каталоги", 'folder.deleted' => "Удаленные каталоги", 'memory_used' => 'Использовано памяти при сканировании: ', 'notice.scan_express' => '<div class="rep">Внимание! Выполнена экспресс-проверка сайта. Просканированы только файлы с расширением .php, .js, .html, .htaccess. В этом режиме могут быть пропущены вирусы и хакерские скрипты в файлах с другими расширениями. Чтобы выполнить более тщательное сканирование, поменяйте значение настройки на <b>\'scan_all_files\' => 1</b> в строке 50 или откройте сканер в браузере с параметром full: <b><a href="ai-bolit.php?p=&full">ai-bolit.php?p=&full</a></b>. <p>Не забудьте перед повторным запуском удалить файл %s</div>', 'feedback_for_script' => 'Мы будем чрезвычайно благодарны за любые упоминания скрипта AI-Bolit на вашем сайте, в блоге, среди друзей, знакомых и клиентов. Ссылочку можно поставить на <a href="https://revisium.com/ai/">https://revisium.com/ai/</a>.', 'report_for' => 'Отчет по ', 'function.many_reference' => 'Много косвенных вызовов функции', 'str.abnormal_split' => 'Дробление строки на символы', 'scan.offer_modes_after_express' => 'Сканирование выполнено в экспресс-режиме. Многие вредоносные скрипты могут быть не обнаружены.<br> Рекомендуем проверить сайт в режиме "Эксперт" или "Параноидальный". Подробно описано в <a href="https://revisium.com/ai/faq.php">FAQ</a> и инструкции к скрипту.', 'mobile_redirects' => 'Мобильных редиректов', 'skipped.large_file' => 'Большие файлы (больше чем %s). Пропущено', 'malware' => 'Вредоносных скриптов', 'js_virused' => 'JS Вирусов', 'phishing_pages' => 'Фишинговых страниц', 'executable_files' => 'Исполняемых файлов', 'iframe_injections' => 'IFRAME вставок', 'skipped_large_file' => 'Пропущенных больших файлов', 'error.read_file' => 'Ошибок чтения файлов', 'suspicious' => 'Подозрительных', 'report.summary' => 'Сводный отчет', 'footer' => TemplateList::FOOTER_RU, 'notice.files_may_not_malicious' => "Обращаем внимание, что обнаруженные файлы не всегда являются вирусами и хакерскими скриптами. Сканер минимизирует число ложных обнаружений, но это не всегда возможно, так как найденный фрагмент может встречаться как во вредоносных скриптах, так и в обычных.<p>Для диагностического сканирования без ложных срабатываний мы разработали специальную версию <u><a href=\"https://revisium.com/ru/blog/ai-bolit-4-ISP.html\" target=_blank style=\"background: none; color: #303030\">сканера для хостинг-компаний</a></u>.", 'script.vulnerable' => "Уязвимости в скриптах", 'path' => 'Путь', 'property_change' => 'Изменение свойств', 'content_change' => 'Изменение содержимого', 'size' => 'Размер', 'php_config' => 'Конфигурация PHP', ]; const EN = [ //variables for javascript 'data_table.length_menu' => 'Display _MENU_ records', 'data_table.zero_records' => 'Not found', 'data_table.info' => 'Display from _START_ to _END_ of _TOTAL_ files', 'data_table.info_empty' => 'No files', 'data_table.info_filtered' => '(total _MAX_)', 'data_table.search' => 'Filter/Search:', 'data_table.paginate.first' => 'First', 'data_table.paginate.previous' => 'Previous', 'data_table.paginate.next' => 'Next', 'data_table.paginate.last' => 'Last', 'data_table.aria.sort_ascending' => ': activate to sort row ascending order', 'data_table.aria.sort_descending' => ': activate to sort row descending order', 'header.scan_report_title' => 'AI-Bolit v@@VERSION@@ Scan Report:', 'offer.when_no_critical' => '', 'offer_our_products' => TemplateList::OFFER_OUR_PRODUCTS_EN, 'offer.when_has_critical' => TemplateList::OFFER_EN, 'сaution.aibolit_file' => 'Caution! Do not leave either ai-bolit.php or report file on server and do not provide direct links to the report file. Report file contains sensitive information about your website which could be used by hackers. So keep it in safe place and don\'t leave on website!', 'сaution.scanner_set_password' => "Open AI-BOLIT with password specified in the beggining of file in PASS variable. <br/>E.g. http://you_website.com/ai-bolit.php?p=<b>%s</b>", 'сaution.quick_scanned' => '<div class="rep" style="color: #0000A0">Attention! Script has performed quick scan. It scans only .html/.js/.php files in quick scan mode so some of malicious scripts might not be detected. <br>Please launch script from a command line thru SSH to perform full scan.', 'warning.weak_password' => "Your password for AI-BOLIT is too weak. Password must be more than 8 character length, contain both latin letters in upper and lower case, and digits. E.g. <b>%s</b>", 'warning.folder_read_permission' => 'Current folder is not readable. Please change permission for <b>rwxr-xr-x</b> or using command line <b>chmod +r folder_name</b>', 'warnings' => 'Warnings', 'warning.reading_error' => 'Reading error. Skipped.', 'info.time_elapsed' => "<div class=\"rep\">%s malicious signatures known, %s virus signatures and other malicious code. Elapsed: <b>%s</b >.<br/>Started: %s. Stopped: %s</div> ", 'info.files_checked' => 'Scanned %s folders and %s files.', 'info.non_commercial_use' => 'For non-commercial use only.', 'critical.title' => '<div class="title">Critical</div>', 'detected.shell_scripts' => 'Shell script signatures detected. Might be a malicious or hacker\'s scripts', 'not_detected.shell_scripts' => 'Shell scripts signatures not detected.', 'detected.javascript' => 'Javascript virus signatures detected:', 'detected.executables' => 'Unix executables signatures and odd scripts detected. They might be a malicious binaries or rootkits:', 'detected.bad_links' => 'This script has black-SEO links or linkfarm. Check if it was installed by yourself:', 'detected.phishing_pages' => 'Phishing pages detected:', 'file.not_found.more_than' => 'Files greater than %s not found', 'file.recommend_to_remove' => 'Files recommended to be remove due to security reason:', 'file.scanned_manual' => 'Quick scan through the files from %s. For full scan remove %s and launch scanner once again.', 'file.suspicion.heuristic_analyze' => 'Heuristic Analyzer has detected suspicious files. Check if they are malware.', 'file.encrypted' => 'Encrypted files', 'file.hidden' => 'Hidden files', 'files_may_not_malicious' => "Notice! Some of detected files may not contain malicious code. Scanner tries to minimize a number of false positives, but sometimes it's impossible, because same piece of code may be used either in malware or in normal scripts.", 'file.added' => "Added files", 'file.updated' => "Modified files", 'file.deleted' => "Deleted files", 'file_structure.updates' => "Integrity Check Report", 'hidden_files' => 'Hidden files:', 'doorway.might' => 'Files might be a part of doorway:', 'doorway.not_found' => 'Doorway folders not detected', 'suspicion.multiple' => 'Suspicious encoded strings, extra .php extention or external includes detected in PHP files. Might be a malicious or hacker\'s script:', 'suspicion.malicious' => 'Might be a malicious or hacker\'s script:', 'suspicion.htaccess' => 'Malicious code in .htaccess (redirect to external server, extention handler replacement or malicious code auto-append):', 'suspicion.non_php' => 'Non-PHP file has PHP signature. Check for malicious code:', 'suspicion.hidden_link' => 'These files have invisible links, might be black-seo stuff:', 'suspicion.doorway' => 'Folders contained too many .php or .html files. Might be a doorway:', 'suspicion.code' => 'Suspicious code detected. It\'s usually used in malicious scrips:', 'suspicion.obfuscated_variables' => 'Suspected for obfuscated variables', 'suspicion.global_array' => 'Suspected for $GLOBAL array usage', 'suspicion.file_time' => "Suspicious file mtime and ctime", 'suspicion.file_attributes' => "Suspicious file permissions", 'suspicion.file_location' => "Suspicious file location", 'symlinks' => 'Symlinks:', 'hidden_links' => 'List of invisible links:', 'link.symbolic' => 'Symbolic links', 'links.adware_spam' => 'Adware and spam links', 'links.empty' => 'Empty links', 'display_only_first' => 'Displayed first ', 'skipped.adirignore' => 'The following list of files specified in .adirignore has been skipped:', 'founded_CMS' => 'CMS found:', 'folder.unsafe_writable' => 'Potentially unsafe! Folders which are writable for scripts:', 'folder.unsafe_writable_not_found' => 'Writable folders not found', 'folder.added' => "Added directories", 'folder.deleted' => "Deleted directories", 'memory_used' => 'Memory used: ', 'notice.scan_express' => '<div class="notice"><span class="vir">[!]</span> Ai-BOLIT is working in quick scan mode, only .php, .html, .htaccess files will be checked. Change the following setting \'scan_all_files\' => 1 to perform full scanning.</b>. </div>', 'feedback_for_script' => "I'm sincerely appreciate reports for any bugs you may found in the script. Please email me: <a href=\"mailto:audit@revisium.com\">audit@revisium.com</a>.<p> Also I appriciate any reference to the script in your blog or forum posts. Thank you for the link to download page: <a href=\"https://revisium.com/aibo/\">https://revisium.com/aibo/</a>", 'report_for' => 'Report for ', 'function.many_reference' => 'Function called by reference', 'str.abnormal_split' => 'Abnormal split of string', 'scan.offer_modes_after_express' => 'Scanning has been done in simple mode. It is strongly recommended to perform scanning in "Expert" mode. See readme.txt for details.', 'mobile_redirects' => 'Mobile redirects', 'skipped.large_file' => 'Large files (greater than %s! Skipped:', 'malware' => 'Malware', 'js_virused' => 'JS viruses', 'phishing_pages' => 'Phishing pages', 'executable_files' => 'Unix executables', 'iframe_injections' => 'IFRAME injections', 'skipped_large_file' => 'Skipped big files', 'critical.error_read_file' => 'Reading errors', 'suspicious' => 'Suspicious', 'report.summary' => 'Summary', 'footer' => TemplateList::FOOTER_EN, 'script.vulnerable' => "Vulnerable Scripts", 'path' => 'Path', 'property_change' => 'iNode Changed', 'content_change' => 'Modified', 'size' => 'Size', 'php_config' => 'PHP Info', ]; } class UserList { private $users = []; public function add($uid) { $this->users[$uid] = ''; } public function getList() { ksort($this->users); return array_keys($this->users); } public function setList($list) { $this->users = $list; } } class OsReleaseInfo { private $prefix = ''; private $release_file = ''; const DEBIAN = ['debian']; const RHEL_FEDORA_CENTOS = ['rhel', 'fedora', 'centos']; const UNKNOWN = ['unknown']; private $_supported_dists = [ 'SuSE', 'debian', 'fedora', 'redhat', 'centos', 'mandrake', 'mandriva', 'rocks', 'slackware', 'yellowdog', 'gentoo', 'UnitedLinux', 'turbolinux']; private $_release_filename = '(\w+)[-_](release|version)'; private $_lsb_release_version = '(.+)' . ' release ' . '([\d.]+)' . '[^(]*(?:\((.+)\))?'; private $_release_version = '([^0-9]+)' . '(?: release )?' . '([\d.]+)' . '[^(]*(?:\((.+)\))?'; private $release = []; public function __construct($prefix = '', $release_file = '/etc/os-release') { $this->prefix = $prefix; $this->release_file = $this->prefix . $release_file; $this->getRelease($this->release_file); } private function getOsReleaseAndVersion() { $ver = rtrim(@file_get_contents($this->prefix . '/etc/system-release')); return $ver ?: $this->release['VERSION']; } public function getOsVersion($release_and_version = false) { $rv = $release_and_version ? $release_and_version : $this->getOsReleaseAndVersion(); if ($rv) { if (preg_match('~\s*(\d+\.\d+\S*)(\s|$)~', $rv, $m)) { return $m[1]; } } return $this->release['VERSION_ID'] ? $this->release['VERSION_ID'] : false; } private function linuxDistribution($distname = '', $version = '', $id = '') { $dists = array_flip($this->_supported_dists); if (!file_exists($this->prefix . '/etc')) { return [$distname, $version, $id]; } $file = ''; $etc = scandir($this->prefix . '/etc'); foreach ($etc as $file) { if (preg_match('~' . $this->_release_filename . '~', $file, $m)) { if (isset($dists[$m[1]])) { $_distname = $m[1]; $distname = $m[1]; break; } } } $f = fopen($this->prefix . '/etc/' . $file, 'r'); $firstline = fgets($f); fclose($f); list($_distname, $_version, $_id) = $this->_parseReleaseFile($firstline); if ($_distname) { $distname = $_distname; } if ($_version) { $version = $_version; } if ($_id) { $id = $_id; } return [$distname, $version, $id]; } private function _parseReleaseFile($firstline) { $version = ''; $id = ''; if (preg_match('~' . $this->_lsb_release_version . '~', $firstline, $m)) { return [$m[1], $m[2], $m[3]]; } if (preg_match('~' . $this->_release_version . '~', $firstline, $m)) { return [$m[1], $m[2], $m[3]]; } $l = preg_split("~\s+~", trim($firstline), -1, PREG_SPLIT_NO_EMPTY); if (!empty($l)) { $version = $l[0]; if (count($l) > 1) { $id = $l[1]; } } return ['', $version, $id]; } private function getReleaseFromFile($release_file) { $lines = file($release_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); foreach ($lines as $line) { list($k, $v) = explode('=', rtrim($line), 2); $this->release[$k] = trim($v, '"'); } if (isset($this->release['ID_LIKE'])) { $this->release['ID_LIKE'] = preg_split('~\s+~', $this->release['ID_LIKE'], -1, PREG_SPLIT_NO_EMPTY); } else { $this->release['ID_LIKE'] = [$this->release['ID']]; } } private function getRelease($release_file = '') { if (count($this->release) != 0) { return $this->release; } if ($this->release_file) { $release_file = $this->release_file; } $osid = ''; if (file_exists($release_file)) { $this->getReleaseFromFile($release_file); } else { $d = $this->linuxDistribution(); if ($d && isset($d[0])) { $osid = current(preg_split('~\s+~', strtolower($d[0]), -1, PREG_SPLIT_NO_EMPTY)); if ($osid == 'red' && strpos($d[0], 'Red Hat Enterprise Linux')) { $osid = 'rhel'; } $this->release['ID'] = $osid; $this->release['PRETTY_NAME'] = "{$d[0]} {$d[1]} ({$d[2]})"; if (in_array($osid, ['cloudlinux', 'centos', 'rhel'])) { $this->release['ID_LIKE'] = self::RHEL_FEDORA_CENTOS; } else if (in_array($osid, ['ubuntu', 'debian'])) { $this->release['ID_LIKE'] = self::DEBIAN; } else { $this->release['ID_LIKE'] = self::UNKNOWN; } } else { $this->release['ID'] = 'unknown'; $this->release['ID_LIKE'] = self::UNKNOWN; $this->release['PRETTY_NAME'] = 'unknown'; } } return $this->release; } public function getIdLike() { $rel = $this->getRelease(); return $rel['ID_LIKE']; } public function isIdLikeCentos() { $rel = $this->getRelease(); foreach (self::RHEL_FEDORA_CENTOS as $os) { if (in_array($os, $rel['ID_LIKE'])) { return true; } } return false; } public function getPrettyName() { $rel = $this->getRelease(); return $rel['PRETTY_NAME']; } public function getOs() { $rel = $this->getRelease(); return $rel['ID']; } public function isRhel() { return $this->getOs() == 'rhel'; } public function isCentos() { return $this->getOs() == 'centos'; } public function isUbuntu() { return $this->getOs() == 'ubuntu'; } public function isCloudlinux() { return $this->getOs() == 'cloudlinux'; } public function isDebian() { return $this->getOs() == 'debian'; } } /** * Class FileHashMemoryDb. * * Implements operations to load the file hash database into memory and work with it. */ class FileHashMemoryDb { const HEADER_SIZE = 1024; const ROW_SIZE = 20; /** * @var int */ private $count; /** * @var array */ private $header; /** * @var resource */ private $fp; /** * @var array */ private $data; /** * Creates a new DB file and open it. * * @param $filepath * @return FileHashMemoryDb * @throws Exception */ public static function create($filepath) { if (file_exists($filepath)) { throw new Exception('File \'' . $filepath . '\' already exists.'); } $value = pack('V', 0); $header = array_fill(0, 256, $value); file_put_contents($filepath, implode($header)); return new self($filepath); } /** * Opens a particular DB file. * * @param $filepath * @return FileHashMemoryDb * @throws Exception */ public static function open($filepath) { if (!file_exists($filepath)) { throw new Exception('File \'' . $filepath . '\' does not exist.'); } return new self($filepath); } /** * FileHashMemoryDb constructor. * * @param mixed $filepath * @throws Exception */ private function __construct($filepath) { $this->fp = fopen($filepath, 'rb'); if (false === $this->fp) { throw new Exception('File \'' . $filepath . '\' can not be opened.'); } try { $this->header = unpack('V256', fread($this->fp, self::HEADER_SIZE)); $this->count = (int) (max(0, filesize($filepath) - self::HEADER_SIZE) / self::ROW_SIZE); foreach ($this->header as $chunk_id => $chunk_size) { if ($chunk_size > 0) { $str = fread($this->fp, $chunk_size); } else { $str = ''; } $this->data[$chunk_id] = $str; } } catch (Exception $e) { throw new Exception('File \'' . $filepath . '\' is not a valid DB file. An original error: \'' . $e->getMessage() . '\''); } } /** * Calculates and returns number of hashes stored in a loaded database. * * @return int number of hashes stored in a DB */ public function count() { return $this->count; } /** * Find hashes in a DB. * * @param array $list of hashes to find in a DB * @return array list of hashes from the $list parameter that are found in a DB */ public function find($list) { sort($list); $hash = reset($list); $found = []; foreach ($this->header as $chunk_id => $chunk_size) { if ($chunk_size > 0) { $str = $this->data[$chunk_id]; do { $raw = pack("H*", $hash); $id = ord($raw[0]) + 1; if ($chunk_id == $id AND $this->binarySearch($str, $raw)) { $found[] = (string)$hash; } } while ($chunk_id >= $id AND $hash = next($list)); if ($hash === false) { break; } } } return $found; } /** * Searches $item in the $str using an implementation of the binary search algorithm. * * @param $str * @param $item * @return bool */ private function binarySearch($str, $item) { $item_size = strlen($item); if ($item_size == 0) { return false; } $first = 0; $last = floor(strlen($str) / $item_size); while ($first < $last) { $mid = $first + (($last - $first) >> 1); $b = substr($str, $mid * $item_size, $item_size); if (strcmp($item, $b) <= 0) { $last = $mid; } else { $first = $mid + 1; } } $b = substr($str, $last * $item_size, $item_size); if ($b == $item) { return true; } else { return false; } } /** * FileHashDB destructor. */ public function __destruct() { fclose($this->fp); } } class FilepathEscaper { public static function encodeFilepath($filepath) { return str_replace(['\\', "\n", "\r"], ['\\\\', '\\n', '\\r'], $filepath); } public static function decodeFilepath($filepath) { return preg_replace_callback('~(\\\\+)(.)~', function ($matches) { $count = strlen($matches[1]); if ($count % 2 === 0) { return str_repeat('\\', $count/2) . $matches[2]; } return str_repeat('\\', floor($count/2)) . stripcslashes('\\' . $matches[2]); }, $filepath); } public static function encodeFilepathByBase64($filepath) { return base64_encode($filepath); } public static function decodeFilepathByBase64($filepath_base64) { return base64_decode($filepath_base64); } } class StringToStreamWrapper { const WRAPPER_NAME = 'var'; private static $_content; private $_position; /** * Prepare a new memory stream with the specified content * @return string */ public static function prepare($content) { if (!in_array(self::WRAPPER_NAME, stream_get_wrappers())) { stream_wrapper_register(self::WRAPPER_NAME, get_class()); } self::$_content = $content; } public function stream_open($path, $mode, $options, &$opened_path) { $this->_position = 0; return true; } public function stream_read($count) { $ret = substr(self::$_content, $this->_position, $count); $this->_position += strlen($ret); return $ret; } public function stream_stat() { return []; } public function stream_eof() { return $this->_position >= strlen(self::$_content); } public function stream_set_option($option , $arg1, $arg2 ) { return true; } } class Normalization { const MAX_ITERATION = 10; private static $confusables = "YToxNTY1OntzOjM6IuKAqCI7czoxOiIgIjtzOjM6IuKAqSI7czoxOiIgIjtzOjM6IuGagCI7czoxOiIgIjtzOjM6IuKAgCI7czoxOiIgIjtzOjM6IuKAgSI7czoxOiIgIjtzOjM6IuKAgiI7czoxOiIgIjtzOjM6IuKAgyI7czoxOiIgIjtzOjM6IuKAhCI7czoxOiIgIjtzOjM6IuKAhSI7czoxOiIgIjtzOjM6IuKAhiI7czoxOiIgIjtzOjM6IuKAiCI7czoxOiIgIjtzOjM6IuKAiSI7czoxOiIgIjtzOjM6IuKAiiI7czoxOiIgIjtzOjM6IuKBnyI7czoxOiIgIjtzOjI6IsKgIjtzOjE6IiAiO3M6Mzoi4oCHIjtzOjE6IiAiO3M6Mzoi4oCvIjtzOjE6IiAiO3M6Mjoiw4IiO3M6MToiICI7czoyOiLfuiI7czoxOiJfIjtzOjM6Iu+5jSI7czoxOiJfIjtzOjM6Iu+5jiI7czoxOiJfIjtzOjM6Iu+5jyI7czoxOiJfIjtzOjM6IuKAkCI7czoxOiItIjtzOjM6IuKAkSI7czoxOiItIjtzOjM6IuKAkiI7czoxOiItIjtzOjM6IuKAkyI7czoxOiItIjtzOjM6Iu+5mCI7czoxOiItIjtzOjI6ItuUIjtzOjE6Ii0iO3M6Mzoi4oGDIjtzOjE6Ii0iO3M6Mjoiy5ciO3M6MToiLSI7czozOiLiiJIiO3M6MToiLSI7czozOiLinpYiO3M6MToiLSI7czozOiLisroiO3M6MToiLSI7czoyOiLYjSI7czoxOiIsIjtzOjI6ItmrIjtzOjE6IiwiO3M6Mzoi4oCaIjtzOjE6IiwiO3M6MjoiwrgiO3M6MToiLCI7czozOiLqk7kiO3M6MToiLCI7czoyOiLNviI7czoxOiI7IjtzOjM6IuCkgyI7czoxOiI6IjtzOjM6IuCqgyI7czoxOiI6IjtzOjM6Iu+8miI7czoxOiI6IjtzOjI6ItaJIjtzOjE6IjoiO3M6Mjoi3IMiO3M6MToiOiI7czoyOiLchCI7czoxOiI6IjtzOjM6IuGbrCI7czoxOiI6IjtzOjM6Iu+4sCI7czoxOiI6IjtzOjM6IuGggyI7czoxOiI6IjtzOjM6IuGgiSI7czoxOiI6IjtzOjM6IuKBmiI7czoxOiI6IjtzOjI6IteDIjtzOjE6IjoiO3M6Mjoiy7giO3M6MToiOiI7czozOiLqnokiO3M6MToiOiI7czozOiLiiLYiO3M6MToiOiI7czoyOiLLkCI7czoxOiI6IjtzOjM6IuqTvSI7czoxOiI6IjtzOjM6Iu+8gSI7czoxOiIhIjtzOjI6IseDIjtzOjE6IiEiO3M6Mzoi4rWRIjtzOjE6IiEiO3M6MjoiypQiO3M6MToiPyI7czoyOiLJgSI7czoxOiI/IjtzOjM6IuClvSI7czoxOiI/IjtzOjM6IuGOriI7czoxOiI/IjtzOjM6IuqbqyI7czoxOiI/IjtzOjQ6IvCdha0iO3M6MToiLiI7czozOiLigKQiO3M6MToiLiI7czoyOiLcgSI7czoxOiIuIjtzOjI6ItyCIjtzOjE6Ii4iO3M6Mzoi6piOIjtzOjE6Ii4iO3M6NDoi8JCpkCI7czoxOiIuIjtzOjI6ItmgIjtzOjE6Ii4iO3M6Mjoi27AiO3M6MToiLiI7czozOiLqk7giO3M6MToiLiI7czozOiLjg7siO3M6MToityI7czozOiLvvaUiO3M6MToityI7czozOiLhm6siO3M6MToityI7czoyOiLOhyI7czoxOiK3IjtzOjM6IuK4sSI7czoxOiK3IjtzOjQ6IvCQhIEiO3M6MToityI7czozOiLigKIiO3M6MToityI7czozOiLigKciO3M6MToityI7czozOiLiiJkiO3M6MToityI7czozOiLii4UiO3M6MToityI7czozOiLqno8iO3M6MToityI7czozOiLhkKciO3M6MToityI7czoyOiLVnSI7czoxOiInIjtzOjM6Iu+8hyI7czoxOiInIjtzOjM6IuKAmCI7czoxOiInIjtzOjM6IuKAmSI7czoxOiInIjtzOjM6IuKAmyI7czoxOiInIjtzOjM6IuKAsiI7czoxOiInIjtzOjM6IuKAtSI7czoxOiInIjtzOjI6ItWaIjtzOjE6IiciO3M6Mjoi17MiO3M6MToiJyI7czoxOiJgIjtzOjE6IiciO3M6Mzoi4b+vIjtzOjE6IiciO3M6Mzoi772AIjtzOjE6IiciO3M6MjoiwrQiO3M6MToiJyI7czoyOiLOhCI7czoxOiInIjtzOjM6IuG/vSI7czoxOiInIjtzOjM6IuG+vSI7czoxOiInIjtzOjM6IuG+vyI7czoxOiInIjtzOjM6IuG/viI7czoxOiInIjtzOjI6Isq5IjtzOjE6IiciO3M6MjoizbQiO3M6MToiJyI7czoyOiLLiCI7czoxOiInIjtzOjI6IsuKIjtzOjE6IiciO3M6Mjoiy4siO3M6MToiJyI7czoyOiLLtCI7czoxOiInIjtzOjI6Isq7IjtzOjE6IiciO3M6Mjoiyr0iO3M6MToiJyI7czoyOiLKvCI7czoxOiInIjtzOjI6Isq+IjtzOjE6IiciO3M6Mzoi6p6MIjtzOjE6IiciO3M6Mjoi15kiO3M6MToiJyI7czoyOiLftCI7czoxOiInIjtzOjI6It+1IjtzOjE6IiciO3M6Mzoi4ZGKIjtzOjE6IiciO3M6Mzoi4ZuMIjtzOjE6IiciO3M6NDoi8Ja9kSI7czoxOiInIjtzOjQ6IvCWvZIiO3M6MToiJyI7czozOiLvvLsiO3M6MToiKCI7czozOiLinagiO3M6MToiKCI7czozOiLinbIiO3M6MToiKCI7czozOiLjgJQiO3M6MToiKCI7czozOiLvtL4iO3M6MToiKCI7czozOiLvvL0iO3M6MToiKSI7czozOiLinakiO3M6MToiKSI7czozOiLinbMiO3M6MToiKSI7czozOiLjgJUiO3M6MToiKSI7czozOiLvtL8iO3M6MToiKSI7czozOiLinbQiO3M6MToieyI7czo0OiLwnYSUIjtzOjE6InsiO3M6Mzoi4p21IjtzOjE6In0iO3M6Mzoi4ri/IjtzOjE6IrYiO3M6Mzoi4oGOIjtzOjE6IioiO3M6Mjoi2a0iO3M6MToiKiI7czozOiLiiJciO3M6MToiKiI7czo0OiLwkIyfIjtzOjE6IioiO3M6Mzoi4Zy1IjtzOjE6Ii8iO3M6Mzoi4oGBIjtzOjE6Ii8iO3M6Mzoi4oiVIjtzOjE6Ii8iO3M6Mzoi4oGEIjtzOjE6Ii8iO3M6Mzoi4pWxIjtzOjE6Ii8iO3M6Mzoi4p+LIjtzOjE6Ii8iO3M6Mzoi4qe4IjtzOjE6Ii8iO3M6NDoi8J2IuiI7czoxOiIvIjtzOjM6IuOHkyI7czoxOiIvIjtzOjM6IuOAsyI7czoxOiIvIjtzOjM6IuKzhiI7czoxOiIvIjtzOjM6IuODjiI7czoxOiIvIjtzOjM6IuS4vyI7czoxOiIvIjtzOjM6IuK8gyI7czoxOiIvIjtzOjM6Iu+8vCI7czoxOiJcIjtzOjM6Iu+5qCI7czoxOiJcIjtzOjM6IuKIliI7czoxOiJcIjtzOjM6IuKfjSI7czoxOiJcIjtzOjM6IuKntSI7czoxOiJcIjtzOjM6IuKnuSI7czoxOiJcIjtzOjQ6IvCdiI8iO3M6MToiXCI7czo0OiLwnYi7IjtzOjE6IlwiO3M6Mzoi44eUIjtzOjE6IlwiO3M6Mzoi5Li2IjtzOjE6IlwiO3M6Mzoi4ryCIjtzOjE6IlwiO3M6Mzoi6p24IjtzOjE6IiYiO3M6Mjoiy4QiO3M6MToiXiI7czoyOiLLhiI7czoxOiJeIjtzOjM6IuK4sCI7czoxOiKwIjtzOjI6IsuaIjtzOjE6IrAiO3M6Mzoi4oiYIjtzOjE6IrAiO3M6Mzoi4peLIjtzOjE6IrAiO3M6Mzoi4pemIjtzOjE6IrAiO3M6Mzoi4pK4IjtzOjE6IqkiO3M6Mzoi4pOHIjtzOjE6Iq4iO3M6Mzoi4ZutIjtzOjE6IisiO3M6Mzoi4p6VIjtzOjE6IisiO3M6NDoi8JCKmyI7czoxOiIrIjtzOjM6IuKelyI7czoxOiL3IjtzOjM6IuKAuSI7czoxOiI8IjtzOjM6IuKdriI7czoxOiI8IjtzOjI6IsuCIjtzOjE6IjwiO3M6NDoi8J2ItiI7czoxOiI8IjtzOjM6IuGQuCI7czoxOiI8IjtzOjM6IuGasiI7czoxOiI8IjtzOjM6IuGQgCI7czoxOiI9IjtzOjM6IuK5gCI7czoxOiI9IjtzOjM6IuOCoCI7czoxOiI9IjtzOjM6IuqTvyI7czoxOiI9IjtzOjM6IuKAuiI7czoxOiI+IjtzOjM6IuKdryI7czoxOiI+IjtzOjI6IsuDIjtzOjE6Ij4iO3M6NDoi8J2ItyI7czoxOiI+IjtzOjM6IuGQsyI7czoxOiI+IjtzOjQ6IvCWvL8iO3M6MToiPiI7czozOiLigZMiO3M6MToifiI7czoyOiLLnCI7czoxOiJ+IjtzOjM6IuG/gCI7czoxOiJ+IjtzOjM6IuKIvCI7czoxOiJ+IjtzOjM6IuKCpCI7czoxOiKjIjtzOjQ6IvCdn5AiO3M6MToiMiI7czo0OiLwnZ+aIjtzOjE6IjIiO3M6NDoi8J2fpCI7czoxOiIyIjtzOjQ6IvCdn64iO3M6MToiMiI7czo0OiLwnZ+4IjtzOjE6IjIiO3M6Mzoi6p2aIjtzOjE6IjIiO3M6MjoixqciO3M6MToiMiI7czoyOiLPqCI7czoxOiIyIjtzOjM6IuqZhCI7czoxOiIyIjtzOjM6IuGSvyI7czoxOiIyIjtzOjM6IuqbryI7czoxOiIyIjtzOjQ6IvCdiIYiO3M6MToiMyI7czo0OiLwnZ+RIjtzOjE6IjMiO3M6NDoi8J2fmyI7czoxOiIzIjtzOjQ6IvCdn6UiO3M6MToiMyI7czo0OiLwnZ+vIjtzOjE6IjMiO3M6NDoi8J2fuSI7czoxOiIzIjtzOjM6IuqeqyI7czoxOiIzIjtzOjI6IsicIjtzOjE6IjMiO3M6MjoixrciO3M6MToiMyI7czozOiLqnaoiO3M6MToiMyI7czozOiLis4wiO3M6MToiMyI7czoyOiLQlyI7czoxOiIzIjtzOjI6ItOgIjtzOjE6IjMiO3M6NDoi8Ja8uyI7czoxOiIzIjtzOjQ6IvCRo4oiO3M6MToiMyI7czo0OiLwnZ+SIjtzOjE6IjQiO3M6NDoi8J2fnCI7czoxOiI0IjtzOjQ6IvCdn6YiO3M6MToiNCI7czo0OiLwnZ+wIjtzOjE6IjQiO3M6NDoi8J2fuiI7czoxOiI0IjtzOjM6IuGPjiI7czoxOiI0IjtzOjQ6IvCRoq8iO3M6MToiNCI7czo0OiLwnZ+TIjtzOjE6IjUiO3M6NDoi8J2fnSI7czoxOiI1IjtzOjQ6IvCdn6ciO3M6MToiNSI7czo0OiLwnZ+xIjtzOjE6IjUiO3M6NDoi8J2fuyI7czoxOiI1IjtzOjI6Isa8IjtzOjE6IjUiO3M6NDoi8JGiuyI7czoxOiI1IjtzOjQ6IvCdn5QiO3M6MToiNiI7czo0OiLwnZ+eIjtzOjE6IjYiO3M6NDoi8J2fqCI7czoxOiI2IjtzOjQ6IvCdn7IiO3M6MToiNiI7czo0OiLwnZ+8IjtzOjE6IjYiO3M6Mzoi4rOSIjtzOjE6IjYiO3M6Mjoi0LEiO3M6MToiNiI7czozOiLhj64iO3M6MToiNiI7czo0OiLwkaOVIjtzOjE6IjYiO3M6NDoi8J2IkiI7czoxOiI3IjtzOjQ6IvCdn5UiO3M6MToiNyI7czo0OiLwnZ+fIjtzOjE6IjciO3M6NDoi8J2fqSI7czoxOiI3IjtzOjQ6IvCdn7MiO3M6MToiNyI7czo0OiLwnZ+9IjtzOjE6IjciO3M6NDoi8JCTkiI7czoxOiI3IjtzOjQ6IvCRo4YiO3M6MToiNyI7czozOiLgrIMiO3M6MToiOCI7czozOiLgp6oiO3M6MToiOCI7czozOiLgqaoiO3M6MToiOCI7czo0OiLwnqOLIjtzOjE6IjgiO3M6NDoi8J2fliI7czoxOiI4IjtzOjQ6IvCdn6AiO3M6MToiOCI7czo0OiLwnZ+qIjtzOjE6IjgiO3M6NDoi8J2ftCI7czoxOiI4IjtzOjQ6IvCdn74iO3M6MToiOCI7czoyOiLIoyI7czoxOiI4IjtzOjI6IsiiIjtzOjE6IjgiO3M6NDoi8JCMmiI7czoxOiI4IjtzOjM6IuCppyI7czoxOiI5IjtzOjM6IuCtqCI7czoxOiI5IjtzOjM6IuCnrSI7czoxOiI5IjtzOjM6IuC1rSI7czoxOiI5IjtzOjQ6IvCdn5ciO3M6MToiOSI7czo0OiLwnZ+hIjtzOjE6IjkiO3M6NDoi8J2fqyI7czoxOiI5IjtzOjQ6IvCdn7UiO3M6MToiOSI7czo0OiLwnZ+/IjtzOjE6IjkiO3M6Mzoi6p2uIjtzOjE6IjkiO3M6Mzoi4rOKIjtzOjE6IjkiO3M6NDoi8JGjjCI7czoxOiI5IjtzOjQ6IvCRoqwiO3M6MToiOSI7czo0OiLwkaOWIjtzOjE6IjkiO3M6Mzoi4o26IjtzOjE6ImEiO3M6Mzoi772BIjtzOjE6ImEiO3M6NDoi8J2QmiI7czoxOiJhIjtzOjQ6IvCdkY4iO3M6MToiYSI7czo0OiLwnZKCIjtzOjE6ImEiO3M6NDoi8J2StiI7czoxOiJhIjtzOjQ6IvCdk6oiO3M6MToiYSI7czo0OiLwnZSeIjtzOjE6ImEiO3M6NDoi8J2VkiI7czoxOiJhIjtzOjQ6IvCdloYiO3M6MToiYSI7czo0OiLwnZa6IjtzOjE6ImEiO3M6NDoi8J2XriI7czoxOiJhIjtzOjQ6IvCdmKIiO3M6MToiYSI7czo0OiLwnZmWIjtzOjE6ImEiO3M6NDoi8J2aiiI7czoxOiJhIjtzOjI6IsmRIjtzOjE6ImEiO3M6MjoizrEiO3M6MToiYSI7czo0OiLwnZuCIjtzOjE6ImEiO3M6NDoi8J2bvCI7czoxOiJhIjtzOjQ6IvCdnLYiO3M6MToiYSI7czo0OiLwnZ2wIjtzOjE6ImEiO3M6NDoi8J2eqiI7czoxOiJhIjtzOjI6ItCwIjtzOjE6ImEiO3M6Mzoi77yhIjtzOjE6IkEiO3M6NDoi8J2QgCI7czoxOiJBIjtzOjQ6IvCdkLQiO3M6MToiQSI7czo0OiLwnZGoIjtzOjE6IkEiO3M6NDoi8J2SnCI7czoxOiJBIjtzOjQ6IvCdk5AiO3M6MToiQSI7czo0OiLwnZSEIjtzOjE6IkEiO3M6NDoi8J2UuCI7czoxOiJBIjtzOjQ6IvCdlawiO3M6MToiQSI7czo0OiLwnZagIjtzOjE6IkEiO3M6NDoi8J2XlCI7czoxOiJBIjtzOjQ6IvCdmIgiO3M6MToiQSI7czo0OiLwnZi8IjtzOjE6IkEiO3M6NDoi8J2ZsCI7czoxOiJBIjtzOjI6Is6RIjtzOjE6IkEiO3M6NDoi8J2aqCI7czoxOiJBIjtzOjQ6IvCdm6IiO3M6MToiQSI7czo0OiLwnZycIjtzOjE6IkEiO3M6NDoi8J2dliI7czoxOiJBIjtzOjQ6IvCdnpAiO3M6MToiQSI7czoyOiLQkCI7czoxOiJBIjtzOjM6IuGOqiI7czoxOiJBIjtzOjM6IuGXhSI7czoxOiJBIjtzOjM6IuqTriI7czoxOiJBIjtzOjQ6IvCWvYAiO3M6MToiQSI7czo0OiLwkIqgIjtzOjE6IkEiO3M6MjoiyKciO3M6MToi5SI7czoyOiLIpiI7czoxOiLFIjtzOjQ6IvCdkJsiO3M6MToiYiI7czo0OiLwnZGPIjtzOjE6ImIiO3M6NDoi8J2SgyI7czoxOiJiIjtzOjQ6IvCdkrciO3M6MToiYiI7czo0OiLwnZOrIjtzOjE6ImIiO3M6NDoi8J2UnyI7czoxOiJiIjtzOjQ6IvCdlZMiO3M6MToiYiI7czo0OiLwnZaHIjtzOjE6ImIiO3M6NDoi8J2WuyI7czoxOiJiIjtzOjQ6IvCdl68iO3M6MToiYiI7czo0OiLwnZijIjtzOjE6ImIiO3M6NDoi8J2ZlyI7czoxOiJiIjtzOjQ6IvCdmosiO3M6MToiYiI7czoyOiLGhCI7czoxOiJiIjtzOjI6ItCsIjtzOjE6ImIiO3M6Mzoi4Y+PIjtzOjE6ImIiO3M6Mzoi4ZGyIjtzOjE6ImIiO3M6Mzoi4ZavIjtzOjE6ImIiO3M6Mzoi77yiIjtzOjE6IkIiO3M6Mzoi4oSsIjtzOjE6IkIiO3M6NDoi8J2QgSI7czoxOiJCIjtzOjQ6IvCdkLUiO3M6MToiQiI7czo0OiLwnZGpIjtzOjE6IkIiO3M6NDoi8J2TkSI7czoxOiJCIjtzOjQ6IvCdlIUiO3M6MToiQiI7czo0OiLwnZS5IjtzOjE6IkIiO3M6NDoi8J2VrSI7czoxOiJCIjtzOjQ6IvCdlqEiO3M6MToiQiI7czo0OiLwnZeVIjtzOjE6IkIiO3M6NDoi8J2YiSI7czoxOiJCIjtzOjQ6IvCdmL0iO3M6MToiQiI7czo0OiLwnZmxIjtzOjE6IkIiO3M6Mzoi6p60IjtzOjE6IkIiO3M6MjoizpIiO3M6MToiQiI7czo0OiLwnZqpIjtzOjE6IkIiO3M6NDoi8J2boyI7czoxOiJCIjtzOjQ6IvCdnJ0iO3M6MToiQiI7czo0OiLwnZ2XIjtzOjE6IkIiO3M6NDoi8J2ekSI7czoxOiJCIjtzOjI6ItCSIjtzOjE6IkIiO3M6Mzoi4Y+0IjtzOjE6IkIiO3M6Mzoi4Ze3IjtzOjE6IkIiO3M6Mzoi6pOQIjtzOjE6IkIiO3M6NDoi8JCKgiI7czoxOiJCIjtzOjQ6IvCQiqEiO3M6MToiQiI7czo0OiLwkIyBIjtzOjE6IkIiO3M6Mzoi772DIjtzOjE6ImMiO3M6Mzoi4oW9IjtzOjE6ImMiO3M6NDoi8J2QnCI7czoxOiJjIjtzOjQ6IvCdkZAiO3M6MToiYyI7czo0OiLwnZKEIjtzOjE6ImMiO3M6NDoi8J2SuCI7czoxOiJjIjtzOjQ6IvCdk6wiO3M6MToiYyI7czo0OiLwnZSgIjtzOjE6ImMiO3M6NDoi8J2VlCI7czoxOiJjIjtzOjQ6IvCdlogiO3M6MToiYyI7czo0OiLwnZa8IjtzOjE6ImMiO3M6NDoi8J2XsCI7czoxOiJjIjtzOjQ6IvCdmKQiO3M6MToiYyI7czo0OiLwnZmYIjtzOjE6ImMiO3M6NDoi8J2ajCI7czoxOiJjIjtzOjM6IuG0hCI7czoxOiJjIjtzOjI6Is+yIjtzOjE6ImMiO3M6Mzoi4rKlIjtzOjE6ImMiO3M6Mjoi0YEiO3M6MToiYyI7czozOiLqrq8iO3M6MToiYyI7czo0OiLwkJC9IjtzOjE6ImMiO3M6NDoi8J+djCI7czoxOiJDIjtzOjQ6IvCRo7IiO3M6MToiQyI7czo0OiLwkaOpIjtzOjE6IkMiO3M6Mzoi77yjIjtzOjE6IkMiO3M6Mzoi4oWtIjtzOjE6IkMiO3M6Mzoi4oSCIjtzOjE6IkMiO3M6Mzoi4oStIjtzOjE6IkMiO3M6NDoi8J2QgiI7czoxOiJDIjtzOjQ6IvCdkLYiO3M6MToiQyI7czo0OiLwnZGqIjtzOjE6IkMiO3M6NDoi8J2SniI7czoxOiJDIjtzOjQ6IvCdk5IiO3M6MToiQyI7czo0OiLwnZWuIjtzOjE6IkMiO3M6NDoi8J2WoiI7czoxOiJDIjtzOjQ6IvCdl5YiO3M6MToiQyI7czo0OiLwnZiKIjtzOjE6IkMiO3M6NDoi8J2YviI7czoxOiJDIjtzOjQ6IvCdmbIiO3M6MToiQyI7czoyOiLPuSI7czoxOiJDIjtzOjM6IuKypCI7czoxOiJDIjtzOjI6ItChIjtzOjE6IkMiO3M6Mzoi4Y+fIjtzOjE6IkMiO3M6Mzoi6pOaIjtzOjE6IkMiO3M6NDoi8JCKoiI7czoxOiJDIjtzOjQ6IvCQjIIiO3M6MToiQyI7czo0OiLwkJCVIjtzOjE6IkMiO3M6NDoi8JCUnCI7czoxOiJDIjtzOjM6IuKFviI7czoxOiJkIjtzOjM6IuKFhiI7czoxOiJkIjtzOjQ6IvCdkJ0iO3M6MToiZCI7czo0OiLwnZGRIjtzOjE6ImQiO3M6NDoi8J2ShSI7czoxOiJkIjtzOjQ6IvCdkrkiO3M6MToiZCI7czo0OiLwnZOtIjtzOjE6ImQiO3M6NDoi8J2UoSI7czoxOiJkIjtzOjQ6IvCdlZUiO3M6MToiZCI7czo0OiLwnZaJIjtzOjE6ImQiO3M6NDoi8J2WvSI7czoxOiJkIjtzOjQ6IvCdl7EiO3M6MToiZCI7czo0OiLwnZilIjtzOjE6ImQiO3M6NDoi8J2ZmSI7czoxOiJkIjtzOjQ6IvCdmo0iO3M6MToiZCI7czoyOiLUgSI7czoxOiJkIjtzOjM6IuGPpyI7czoxOiJkIjtzOjM6IuGRryI7czoxOiJkIjtzOjM6IuqTkiI7czoxOiJkIjtzOjM6IuKFriI7czoxOiJEIjtzOjM6IuKFhSI7czoxOiJEIjtzOjQ6IvCdkIMiO3M6MToiRCI7czo0OiLwnZC3IjtzOjE6IkQiO3M6NDoi8J2RqyI7czoxOiJEIjtzOjQ6IvCdkp8iO3M6MToiRCI7czo0OiLwnZOTIjtzOjE6IkQiO3M6NDoi8J2UhyI7czoxOiJEIjtzOjQ6IvCdlLsiO3M6MToiRCI7czo0OiLwnZWvIjtzOjE6IkQiO3M6NDoi8J2WoyI7czoxOiJEIjtzOjQ6IvCdl5ciO3M6MToiRCI7czo0OiLwnZiLIjtzOjE6IkQiO3M6NDoi8J2YvyI7czoxOiJEIjtzOjQ6IvCdmbMiO3M6MToiRCI7czozOiLhjqAiO3M6MToiRCI7czozOiLhl54iO3M6MToiRCI7czozOiLhl6oiO3M6MToiRCI7czozOiLqk5MiO3M6MToiRCI7czozOiLihK4iO3M6MToiZSI7czozOiLvvYUiO3M6MToiZSI7czozOiLihK8iO3M6MToiZSI7czozOiLihYciO3M6MToiZSI7czo0OiLwnZCeIjtzOjE6ImUiO3M6NDoi8J2RkiI7czoxOiJlIjtzOjQ6IvCdkoYiO3M6MToiZSI7czo0OiLwnZOuIjtzOjE6ImUiO3M6NDoi8J2UoiI7czoxOiJlIjtzOjQ6IvCdlZYiO3M6MToiZSI7czo0OiLwnZaKIjtzOjE6ImUiO3M6NDoi8J2WviI7czoxOiJlIjtzOjQ6IvCdl7IiO3M6MToiZSI7czo0OiLwnZimIjtzOjE6ImUiO3M6NDoi8J2ZmiI7czoxOiJlIjtzOjQ6IvCdmo4iO3M6MToiZSI7czozOiLqrLIiO3M6MToiZSI7czoyOiLQtSI7czoxOiJlIjtzOjI6ItK9IjtzOjE6ImUiO3M6Mjoiw6kiO3M6MToiZSI7czozOiLii78iO3M6MToiRSI7czozOiLvvKUiO3M6MToiRSI7czozOiLihLAiO3M6MToiRSI7czo0OiLwnZCEIjtzOjE6IkUiO3M6NDoi8J2QuCI7czoxOiJFIjtzOjQ6IvCdkawiO3M6MToiRSI7czo0OiLwnZOUIjtzOjE6IkUiO3M6NDoi8J2UiCI7czoxOiJFIjtzOjQ6IvCdlLwiO3M6MToiRSI7czo0OiLwnZWwIjtzOjE6IkUiO3M6NDoi8J2WpCI7czoxOiJFIjtzOjQ6IvCdl5giO3M6MToiRSI7czo0OiLwnZiMIjtzOjE6IkUiO3M6NDoi8J2ZgCI7czoxOiJFIjtzOjQ6IvCdmbQiO3M6MToiRSI7czoyOiLOlSI7czoxOiJFIjtzOjQ6IvCdmqwiO3M6MToiRSI7czo0OiLwnZumIjtzOjE6IkUiO3M6NDoi8J2coCI7czoxOiJFIjtzOjQ6IvCdnZoiO3M6MToiRSI7czo0OiLwnZ6UIjtzOjE6IkUiO3M6Mjoi0JUiO3M6MToiRSI7czozOiLitLkiO3M6MToiRSI7czozOiLhjqwiO3M6MToiRSI7czozOiLqk7AiO3M6MToiRSI7czo0OiLwkaKmIjtzOjE6IkUiO3M6NDoi8JGiriI7czoxOiJFIjtzOjQ6IvCQioYiO3M6MToiRSI7czo0OiLwnZCfIjtzOjE6ImYiO3M6NDoi8J2RkyI7czoxOiJmIjtzOjQ6IvCdkociO3M6MToiZiI7czo0OiLwnZK7IjtzOjE6ImYiO3M6NDoi8J2TryI7czoxOiJmIjtzOjQ6IvCdlKMiO3M6MToiZiI7czo0OiLwnZWXIjtzOjE6ImYiO3M6NDoi8J2WiyI7czoxOiJmIjtzOjQ6IvCdlr8iO3M6MToiZiI7czo0OiLwnZezIjtzOjE6ImYiO3M6NDoi8J2YpyI7czoxOiJmIjtzOjQ6IvCdmZsiO3M6MToiZiI7czo0OiLwnZqPIjtzOjE6ImYiO3M6Mzoi6qy1IjtzOjE6ImYiO3M6Mzoi6p6ZIjtzOjE6ImYiO3M6Mjoixb8iO3M6MToiZiI7czozOiLhup0iO3M6MToiZiI7czoyOiLWhCI7czoxOiJmIjtzOjQ6IvCdiJMiO3M6MToiRiI7czozOiLihLEiO3M6MToiRiI7czo0OiLwnZCFIjtzOjE6IkYiO3M6NDoi8J2QuSI7czoxOiJGIjtzOjQ6IvCdka0iO3M6MToiRiI7czo0OiLwnZOVIjtzOjE6IkYiO3M6NDoi8J2UiSI7czoxOiJGIjtzOjQ6IvCdlL0iO3M6MToiRiI7czo0OiLwnZWxIjtzOjE6IkYiO3M6NDoi8J2WpSI7czoxOiJGIjtzOjQ6IvCdl5kiO3M6MToiRiI7czo0OiLwnZiNIjtzOjE6IkYiO3M6NDoi8J2ZgSI7czoxOiJGIjtzOjQ6IvCdmbUiO3M6MToiRiI7czozOiLqnpgiO3M6MToiRiI7czoyOiLPnCI7czoxOiJGIjtzOjQ6IvCdn4oiO3M6MToiRiI7czozOiLhlrQiO3M6MToiRiI7czozOiLqk50iO3M6MToiRiI7czo0OiLwkaOCIjtzOjE6IkYiO3M6NDoi8JGioiI7czoxOiJGIjtzOjQ6IvCQiociO3M6MToiRiI7czo0OiLwkIqlIjtzOjE6IkYiO3M6NDoi8JCUpSI7czoxOiJGIjtzOjM6Iu+9hyI7czoxOiJnIjtzOjM6IuKEiiI7czoxOiJnIjtzOjQ6IvCdkKAiO3M6MToiZyI7czo0OiLwnZGUIjtzOjE6ImciO3M6NDoi8J2SiCI7czoxOiJnIjtzOjQ6IvCdk7AiO3M6MToiZyI7czo0OiLwnZSkIjtzOjE6ImciO3M6NDoi8J2VmCI7czoxOiJnIjtzOjQ6IvCdlowiO3M6MToiZyI7czo0OiLwnZeAIjtzOjE6ImciO3M6NDoi8J2XtCI7czoxOiJnIjtzOjQ6IvCdmKgiO3M6MToiZyI7czo0OiLwnZmcIjtzOjE6ImciO3M6NDoi8J2akCI7czoxOiJnIjtzOjI6IsmhIjtzOjE6ImciO3M6Mzoi4baDIjtzOjE6ImciO3M6Mjoixo0iO3M6MToiZyI7czoyOiLWgSI7czoxOiJnIjtzOjQ6IvCdkIYiO3M6MToiRyI7czo0OiLwnZC6IjtzOjE6IkciO3M6NDoi8J2RriI7czoxOiJHIjtzOjQ6IvCdkqIiO3M6MToiRyI7czo0OiLwnZOWIjtzOjE6IkciO3M6NDoi8J2UiiI7czoxOiJHIjtzOjQ6IvCdlL4iO3M6MToiRyI7czo0OiLwnZWyIjtzOjE6IkciO3M6NDoi8J2WpiI7czoxOiJHIjtzOjQ6IvCdl5oiO3M6MToiRyI7czo0OiLwnZiOIjtzOjE6IkciO3M6NDoi8J2ZgiI7czoxOiJHIjtzOjQ6IvCdmbYiO3M6MToiRyI7czoyOiLUjCI7czoxOiJHIjtzOjM6IuGPgCI7czoxOiJHIjtzOjM6IuGPsyI7czoxOiJHIjtzOjM6IuqTliI7czoxOiJHIjtzOjM6Iu+9iCI7czoxOiJoIjtzOjM6IuKEjiI7czoxOiJoIjtzOjQ6IvCdkKEiO3M6MToiaCI7czo0OiLwnZKJIjtzOjE6ImgiO3M6NDoi8J2SvSI7czoxOiJoIjtzOjQ6IvCdk7EiO3M6MToiaCI7czo0OiLwnZSlIjtzOjE6ImgiO3M6NDoi8J2VmSI7czoxOiJoIjtzOjQ6IvCdlo0iO3M6MToiaCI7czo0OiLwnZeBIjtzOjE6ImgiO3M6NDoi8J2XtSI7czoxOiJoIjtzOjQ6IvCdmKkiO3M6MToiaCI7czo0OiLwnZmdIjtzOjE6ImgiO3M6NDoi8J2akSI7czoxOiJoIjtzOjI6ItK7IjtzOjE6ImgiO3M6Mjoi1bAiO3M6MToiaCI7czozOiLhj4IiO3M6MToiaCI7czozOiLvvKgiO3M6MToiSCI7czozOiLihIsiO3M6MToiSCI7czozOiLihIwiO3M6MToiSCI7czozOiLihI0iO3M6MToiSCI7czo0OiLwnZCHIjtzOjE6IkgiO3M6NDoi8J2QuyI7czoxOiJIIjtzOjQ6IvCdka8iO3M6MToiSCI7czo0OiLwnZOXIjtzOjE6IkgiO3M6NDoi8J2VsyI7czoxOiJIIjtzOjQ6IvCdlqciO3M6MToiSCI7czo0OiLwnZebIjtzOjE6IkgiO3M6NDoi8J2YjyI7czoxOiJIIjtzOjQ6IvCdmYMiO3M6MToiSCI7czo0OiLwnZm3IjtzOjE6IkgiO3M6MjoizpciO3M6MToiSCI7czo0OiLwnZquIjtzOjE6IkgiO3M6NDoi8J2bqCI7czoxOiJIIjtzOjQ6IvCdnKIiO3M6MToiSCI7czo0OiLwnZ2cIjtzOjE6IkgiO3M6NDoi8J2eliI7czoxOiJIIjtzOjM6IuKyjiI7czoxOiJIIjtzOjI6ItCdIjtzOjE6IkgiO3M6Mzoi4Y67IjtzOjE6IkgiO3M6Mzoi4ZW8IjtzOjE6IkgiO3M6Mzoi6pOnIjtzOjE6IkgiO3M6NDoi8JCLjyI7czoxOiJIIjtzOjI6IsubIjtzOjE6ImkiO3M6Mzoi4o2zIjtzOjE6ImkiO3M6Mzoi772JIjtzOjE6ImkiO3M6Mzoi4oWwIjtzOjE6ImkiO3M6Mzoi4oS5IjtzOjE6ImkiO3M6Mzoi4oWIIjtzOjE6ImkiO3M6NDoi8J2QoiI7czoxOiJpIjtzOjQ6IvCdkZYiO3M6MToiaSI7czo0OiLwnZKKIjtzOjE6ImkiO3M6NDoi8J2SviI7czoxOiJpIjtzOjQ6IvCdk7IiO3M6MToiaSI7czo0OiLwnZSmIjtzOjE6ImkiO3M6NDoi8J2VmiI7czoxOiJpIjtzOjQ6IvCdlo4iO3M6MToiaSI7czo0OiLwnZeCIjtzOjE6ImkiO3M6NDoi8J2XtiI7czoxOiJpIjtzOjQ6IvCdmKoiO3M6MToiaSI7czo0OiLwnZmeIjtzOjE6ImkiO3M6NDoi8J2akiI7czoxOiJpIjtzOjI6IsSxIjtzOjE6ImkiO3M6NDoi8J2apCI7czoxOiJpIjtzOjI6IsmqIjtzOjE6ImkiO3M6MjoiyakiO3M6MToiaSI7czoyOiLOuSI7czoxOiJpIjtzOjM6IuG+viI7czoxOiJpIjtzOjI6Is26IjtzOjE6ImkiO3M6NDoi8J2biiI7czoxOiJpIjtzOjQ6IvCdnIQiO3M6MToiaSI7czo0OiLwnZy+IjtzOjE6ImkiO3M6NDoi8J2duCI7czoxOiJpIjtzOjQ6IvCdnrIiO3M6MToiaSI7czoyOiLRliI7czoxOiJpIjtzOjM6IuqZhyI7czoxOiJpIjtzOjI6ItOPIjtzOjE6ImkiO3M6Mzoi6q21IjtzOjE6ImkiO3M6Mzoi4Y6lIjtzOjE6ImkiO3M6NDoi8JGjgyI7czoxOiJpIjtzOjI6IsOtIjtzOjE6ImkiO3M6Mzoi772KIjtzOjE6ImoiO3M6Mzoi4oWJIjtzOjE6ImoiO3M6NDoi8J2QoyI7czoxOiJqIjtzOjQ6IvCdkZciO3M6MToiaiI7czo0OiLwnZKLIjtzOjE6ImoiO3M6NDoi8J2SvyI7czoxOiJqIjtzOjQ6IvCdk7MiO3M6MToiaiI7czo0OiLwnZSnIjtzOjE6ImoiO3M6NDoi8J2VmyI7czoxOiJqIjtzOjQ6IvCdlo8iO3M6MToiaiI7czo0OiLwnZeDIjtzOjE6ImoiO3M6NDoi8J2XtyI7czoxOiJqIjtzOjQ6IvCdmKsiO3M6MToiaiI7czo0OiLwnZmfIjtzOjE6ImoiO3M6NDoi8J2akyI7czoxOiJqIjtzOjI6Is+zIjtzOjE6ImoiO3M6Mjoi0ZgiO3M6MToiaiI7czozOiLvvKoiO3M6MToiSiI7czo0OiLwnZCJIjtzOjE6IkoiO3M6NDoi8J2QvSI7czoxOiJKIjtzOjQ6IvCdkbEiO3M6MToiSiI7czo0OiLwnZKlIjtzOjE6IkoiO3M6NDoi8J2TmSI7czoxOiJKIjtzOjQ6IvCdlI0iO3M6MToiSiI7czo0OiLwnZWBIjtzOjE6IkoiO3M6NDoi8J2VtSI7czoxOiJKIjtzOjQ6IvCdlqkiO3M6MToiSiI7czo0OiLwnZedIjtzOjE6IkoiO3M6NDoi8J2YkSI7czoxOiJKIjtzOjQ6IvCdmYUiO3M6MToiSiI7czo0OiLwnZm5IjtzOjE6IkoiO3M6Mzoi6p6yIjtzOjE6IkoiO3M6Mjoizb8iO3M6MToiSiI7czoyOiLQiCI7czoxOiJKIjtzOjM6IuGOqyI7czoxOiJKIjtzOjM6IuGSjSI7czoxOiJKIjtzOjM6IuqTmSI7czoxOiJKIjtzOjQ6IvCdkKQiO3M6MToiayI7czo0OiLwnZGYIjtzOjE6ImsiO3M6NDoi8J2SjCI7czoxOiJrIjtzOjQ6IvCdk4AiO3M6MToiayI7czo0OiLwnZO0IjtzOjE6ImsiO3M6NDoi8J2UqCI7czoxOiJrIjtzOjQ6IvCdlZwiO3M6MToiayI7czo0OiLwnZaQIjtzOjE6ImsiO3M6NDoi8J2XhCI7czoxOiJrIjtzOjQ6IvCdl7giO3M6MToiayI7czo0OiLwnZisIjtzOjE6ImsiO3M6NDoi8J2ZoCI7czoxOiJrIjtzOjQ6IvCdmpQiO3M6MToiayI7czozOiLihKoiO3M6MToiSyI7czozOiLvvKsiO3M6MToiSyI7czo0OiLwnZCKIjtzOjE6IksiO3M6NDoi8J2QviI7czoxOiJLIjtzOjQ6IvCdkbIiO3M6MToiSyI7czo0OiLwnZKmIjtzOjE6IksiO3M6NDoi8J2TmiI7czoxOiJLIjtzOjQ6IvCdlI4iO3M6MToiSyI7czo0OiLwnZWCIjtzOjE6IksiO3M6NDoi8J2VtiI7czoxOiJLIjtzOjQ6IvCdlqoiO3M6MToiSyI7czo0OiLwnZeeIjtzOjE6IksiO3M6NDoi8J2YkiI7czoxOiJLIjtzOjQ6IvCdmYYiO3M6MToiSyI7czo0OiLwnZm6IjtzOjE6IksiO3M6MjoizpoiO3M6MToiSyI7czo0OiLwnZqxIjtzOjE6IksiO3M6NDoi8J2bqyI7czoxOiJLIjtzOjQ6IvCdnKUiO3M6MToiSyI7czo0OiLwnZ2fIjtzOjE6IksiO3M6NDoi8J2emSI7czoxOiJLIjtzOjM6IuKylCI7czoxOiJLIjtzOjI6ItCaIjtzOjE6IksiO3M6Mzoi4Y+mIjtzOjE6IksiO3M6Mzoi4ZuVIjtzOjE6IksiO3M6Mzoi6pOXIjtzOjE6IksiO3M6NDoi8JCUmCI7czoxOiJLIjtzOjI6IteAIjtzOjE6ImwiO3M6Mzoi4oijIjtzOjE6ImwiO3M6Mzoi4o+9IjtzOjE6ImwiO3M6Mzoi77+oIjtzOjE6ImwiO2k6MTtzOjE6ImwiO3M6Mjoi2aEiO3M6MToibCI7czoyOiLbsSI7czoxOiJsIjtzOjQ6IvCQjKAiO3M6MToibCI7czo0OiLwnqOHIjtzOjE6ImwiO3M6NDoi8J2fjyI7czoxOiJsIjtzOjQ6IvCdn5kiO3M6MToibCI7czo0OiLwnZ+jIjtzOjE6ImwiO3M6NDoi8J2frSI7czoxOiJsIjtzOjQ6IvCdn7ciO3M6MToibCI7czozOiLvvKkiO3M6MToibCI7czozOiLihaAiO3M6MToibCI7czozOiLihJAiO3M6MToibCI7czozOiLihJEiO3M6MToibCI7czo0OiLwnZCIIjtzOjE6ImwiO3M6NDoi8J2QvCI7czoxOiJsIjtzOjQ6IvCdkbAiO3M6MToibCI7czo0OiLwnZOYIjtzOjE6ImwiO3M6NDoi8J2VgCI7czoxOiJsIjtzOjQ6IvCdlbQiO3M6MToibCI7czo0OiLwnZaoIjtzOjE6ImwiO3M6NDoi8J2XnCI7czoxOiJsIjtzOjQ6IvCdmJAiO3M6MToibCI7czo0OiLwnZmEIjtzOjE6ImwiO3M6NDoi8J2ZuCI7czoxOiJsIjtzOjI6IsaWIjtzOjE6ImwiO3M6Mzoi772MIjtzOjE6ImwiO3M6Mzoi4oW8IjtzOjE6ImwiO3M6Mzoi4oSTIjtzOjE6ImwiO3M6NDoi8J2QpSI7czoxOiJsIjtzOjQ6IvCdkZkiO3M6MToibCI7czo0OiLwnZKNIjtzOjE6ImwiO3M6NDoi8J2TgSI7czoxOiJsIjtzOjQ6IvCdk7UiO3M6MToibCI7czo0OiLwnZSpIjtzOjE6ImwiO3M6NDoi8J2VnSI7czoxOiJsIjtzOjQ6IvCdlpEiO3M6MToibCI7czo0OiLwnZeFIjtzOjE6ImwiO3M6NDoi8J2XuSI7czoxOiJsIjtzOjQ6IvCdmK0iO3M6MToibCI7czo0OiLwnZmhIjtzOjE6ImwiO3M6NDoi8J2alSI7czoxOiJsIjtzOjI6IseAIjtzOjE6ImwiO3M6MjoizpkiO3M6MToibCI7czo0OiLwnZqwIjtzOjE6ImwiO3M6NDoi8J2bqiI7czoxOiJsIjtzOjQ6IvCdnKQiO3M6MToibCI7czo0OiLwnZ2eIjtzOjE6ImwiO3M6NDoi8J2emCI7czoxOiJsIjtzOjM6IuKykiI7czoxOiJsIjtzOjI6ItCGIjtzOjE6ImwiO3M6Mjoi04AiO3M6MToibCI7czoyOiLXlSI7czoxOiJsIjtzOjI6ItefIjtzOjE6ImwiO3M6Mjoi2KciO3M6MToibCI7czo0OiLwnriAIjtzOjE6ImwiO3M6NDoi8J66gCI7czoxOiJsIjtzOjM6Iu+6jiI7czoxOiJsIjtzOjM6Iu+6jSI7czoxOiJsIjtzOjI6It+KIjtzOjE6ImwiO3M6Mzoi4rWPIjtzOjE6ImwiO3M6Mzoi4ZuBIjtzOjE6ImwiO3M6Mzoi6pOyIjtzOjE6ImwiO3M6NDoi8Ja8qCI7czoxOiJsIjtzOjQ6IvCQiooiO3M6MToibCI7czo0OiLwkIyJIjtzOjE6ImwiO3M6NDoi8J2IqiI7czoxOiJMIjtzOjM6IuKFrCI7czoxOiJMIjtzOjM6IuKEkiI7czoxOiJMIjtzOjQ6IvCdkIsiO3M6MToiTCI7czo0OiLwnZC/IjtzOjE6IkwiO3M6NDoi8J2RsyI7czoxOiJMIjtzOjQ6IvCdk5siO3M6MToiTCI7czo0OiLwnZSPIjtzOjE6IkwiO3M6NDoi8J2VgyI7czoxOiJMIjtzOjQ6IvCdlbciO3M6MToiTCI7czo0OiLwnZarIjtzOjE6IkwiO3M6NDoi8J2XnyI7czoxOiJMIjtzOjQ6IvCdmJMiO3M6MToiTCI7czo0OiLwnZmHIjtzOjE6IkwiO3M6NDoi8J2ZuyI7czoxOiJMIjtzOjM6IuKzkCI7czoxOiJMIjtzOjM6IuGPniI7czoxOiJMIjtzOjM6IuGSqiI7czoxOiJMIjtzOjM6IuqToSI7czoxOiJMIjtzOjQ6IvCWvJYiO3M6MToiTCI7czo0OiLwkaKjIjtzOjE6IkwiO3M6NDoi8JGisiI7czoxOiJMIjtzOjQ6IvCQkJsiO3M6MToiTCI7czo0OiLwkJSmIjtzOjE6IkwiO3M6Mzoi77ytIjtzOjE6Ik0iO3M6Mzoi4oWvIjtzOjE6Ik0iO3M6Mzoi4oSzIjtzOjE6Ik0iO3M6NDoi8J2QjCI7czoxOiJNIjtzOjQ6IvCdkYAiO3M6MToiTSI7czo0OiLwnZG0IjtzOjE6Ik0iO3M6NDoi8J2TnCI7czoxOiJNIjtzOjQ6IvCdlJAiO3M6MToiTSI7czo0OiLwnZWEIjtzOjE6Ik0iO3M6NDoi8J2VuCI7czoxOiJNIjtzOjQ6IvCdlqwiO3M6MToiTSI7czo0OiLwnZegIjtzOjE6Ik0iO3M6NDoi8J2YlCI7czoxOiJNIjtzOjQ6IvCdmYgiO3M6MToiTSI7czo0OiLwnZm8IjtzOjE6Ik0iO3M6MjoizpwiO3M6MToiTSI7czo0OiLwnZqzIjtzOjE6Ik0iO3M6NDoi8J2brSI7czoxOiJNIjtzOjQ6IvCdnKciO3M6MToiTSI7czo0OiLwnZ2hIjtzOjE6Ik0iO3M6NDoi8J2emyI7czoxOiJNIjtzOjI6Is+6IjtzOjE6Ik0iO3M6Mzoi4rKYIjtzOjE6Ik0iO3M6Mjoi0JwiO3M6MToiTSI7czozOiLhjrciO3M6MToiTSI7czozOiLhl7AiO3M6MToiTSI7czozOiLhm5YiO3M6MToiTSI7czozOiLqk58iO3M6MToiTSI7czo0OiLwkIqwIjtzOjE6Ik0iO3M6NDoi8JCMkSI7czoxOiJNIjtzOjQ6IvCdkKciO3M6MToibiI7czo0OiLwnZGbIjtzOjE6Im4iO3M6NDoi8J2SjyI7czoxOiJuIjtzOjQ6IvCdk4MiO3M6MToibiI7czo0OiLwnZO3IjtzOjE6Im4iO3M6NDoi8J2UqyI7czoxOiJuIjtzOjQ6IvCdlZ8iO3M6MToibiI7czo0OiLwnZaTIjtzOjE6Im4iO3M6NDoi8J2XhyI7czoxOiJuIjtzOjQ6IvCdl7siO3M6MToibiI7czo0OiLwnZivIjtzOjE6Im4iO3M6NDoi8J2ZoyI7czoxOiJuIjtzOjQ6IvCdmpciO3M6MToibiI7czoyOiLVuCI7czoxOiJuIjtzOjI6ItW8IjtzOjE6Im4iO3M6MjoiybQiO3M6MToibiI7czozOiLvvK4iO3M6MToiTiI7czozOiLihJUiO3M6MToiTiI7czo0OiLwnZCNIjtzOjE6Ik4iO3M6NDoi8J2RgSI7czoxOiJOIjtzOjQ6IvCdkbUiO3M6MToiTiI7czo0OiLwnZKpIjtzOjE6Ik4iO3M6NDoi8J2TnSI7czoxOiJOIjtzOjQ6IvCdlJEiO3M6MToiTiI7czo0OiLwnZW5IjtzOjE6Ik4iO3M6NDoi8J2WrSI7czoxOiJOIjtzOjQ6IvCdl6EiO3M6MToiTiI7czo0OiLwnZiVIjtzOjE6Ik4iO3M6NDoi8J2ZiSI7czoxOiJOIjtzOjQ6IvCdmb0iO3M6MToiTiI7czoyOiLOnSI7czoxOiJOIjtzOjQ6IvCdmrQiO3M6MToiTiI7czo0OiLwnZuuIjtzOjE6Ik4iO3M6NDoi8J2cqCI7czoxOiJOIjtzOjQ6IvCdnaIiO3M6MToiTiI7czo0OiLwnZ6cIjtzOjE6Ik4iO3M6Mzoi4rKaIjtzOjE6Ik4iO3M6Mzoi6pOgIjtzOjE6Ik4iO3M6NDoi8JCUkyI7czoxOiJOIjtzOjM6IuCwgiI7czoxOiJvIjtzOjM6IuCygiI7czoxOiJvIjtzOjM6IuC0giI7czoxOiJvIjtzOjM6IuC2giI7czoxOiJvIjtzOjM6IuClpiI7czoxOiJvIjtzOjM6IuCppiI7czoxOiJvIjtzOjM6IuCrpiI7czoxOiJvIjtzOjM6IuCvpiI7czoxOiJvIjtzOjM6IuCxpiI7czoxOiJvIjtzOjM6IuCzpiI7czoxOiJvIjtzOjM6IuC1piI7czoxOiJvIjtzOjM6IuC5kCI7czoxOiJvIjtzOjM6IuC7kCI7czoxOiJvIjtzOjM6IuGBgCI7czoxOiJvIjtzOjI6ItmlIjtzOjE6Im8iO3M6Mjoi27UiO3M6MToibyI7czozOiLvvY8iO3M6MToibyI7czozOiLihLQiO3M6MToibyI7czo0OiLwnZCoIjtzOjE6Im8iO3M6NDoi8J2RnCI7czoxOiJvIjtzOjQ6IvCdkpAiO3M6MToibyI7czo0OiLwnZO4IjtzOjE6Im8iO3M6NDoi8J2UrCI7czoxOiJvIjtzOjQ6IvCdlaAiO3M6MToibyI7czo0OiLwnZaUIjtzOjE6Im8iO3M6NDoi8J2XiCI7czoxOiJvIjtzOjQ6IvCdl7wiO3M6MToibyI7czo0OiLwnZiwIjtzOjE6Im8iO3M6NDoi8J2ZpCI7czoxOiJvIjtzOjQ6IvCdmpgiO3M6MToibyI7czozOiLhtI8iO3M6MToibyI7czozOiLhtJEiO3M6MToibyI7czozOiLqrL0iO3M6MToibyI7czoyOiLOvyI7czoxOiJvIjtzOjQ6IvCdm5AiO3M6MToibyI7czo0OiLwnZyKIjtzOjE6Im8iO3M6NDoi8J2dhCI7czoxOiJvIjtzOjQ6IvCdnb4iO3M6MToibyI7czo0OiLwnZ64IjtzOjE6Im8iO3M6Mjoiz4MiO3M6MToibyI7czo0OiLwnZuUIjtzOjE6Im8iO3M6NDoi8J2cjiI7czoxOiJvIjtzOjQ6IvCdnYgiO3M6MToibyI7czo0OiLwnZ6CIjtzOjE6Im8iO3M6NDoi8J2evCI7czoxOiJvIjtzOjM6IuKynyI7czoxOiJvIjtzOjI6ItC+IjtzOjE6Im8iO3M6Mzoi4YO/IjtzOjE6Im8iO3M6Mjoi1oUiO3M6MToibyI7czoyOiLXoSI7czoxOiJvIjtzOjI6ItmHIjtzOjE6Im8iO3M6NDoi8J64pCI7czoxOiJvIjtzOjQ6IvCeuaQiO3M6MToibyI7czo0OiLwnrqEIjtzOjE6Im8iO3M6Mzoi77urIjtzOjE6Im8iO3M6Mzoi77usIjtzOjE6Im8iO3M6Mzoi77uqIjtzOjE6Im8iO3M6Mzoi77upIjtzOjE6Im8iO3M6Mjoi2r4iO3M6MToibyI7czozOiLvrqwiO3M6MToibyI7czozOiLvrq0iO3M6MToibyI7czozOiLvrqsiO3M6MToibyI7czozOiLvrqoiO3M6MToibyI7czoyOiLbgSI7czoxOiJvIjtzOjM6Iu+uqCI7czoxOiJvIjtzOjM6Iu+uqSI7czoxOiJvIjtzOjM6Iu+upyI7czoxOiJvIjtzOjM6Iu+upiI7czoxOiJvIjtzOjI6ItuVIjtzOjE6Im8iO3M6Mzoi4LSgIjtzOjE6Im8iO3M6Mzoi4YCdIjtzOjE6Im8iO3M6NDoi8JCTqiI7czoxOiJvIjtzOjQ6IvCRo4giO3M6MToibyI7czo0OiLwkaOXIjtzOjE6Im8iO3M6NDoi8JCQrCI7czoxOiJvIjtpOjA7czoxOiJPIjtzOjI6It+AIjtzOjE6Ik8iO3M6Mzoi4KemIjtzOjE6Ik8iO3M6Mzoi4K2mIjtzOjE6Ik8iO3M6Mzoi44CHIjtzOjE6Ik8iO3M6NDoi8JGTkCI7czoxOiJPIjtzOjQ6IvCRo6AiO3M6MToiTyI7czo0OiLwnZ+OIjtzOjE6Ik8iO3M6NDoi8J2fmCI7czoxOiJPIjtzOjQ6IvCdn6IiO3M6MToiTyI7czo0OiLwnZ+sIjtzOjE6Ik8iO3M6NDoi8J2ftiI7czoxOiJPIjtzOjM6Iu+8ryI7czoxOiJPIjtzOjQ6IvCdkI4iO3M6MToiTyI7czo0OiLwnZGCIjtzOjE6Ik8iO3M6NDoi8J2RtiI7czoxOiJPIjtzOjQ6IvCdkqoiO3M6MToiTyI7czo0OiLwnZOeIjtzOjE6Ik8iO3M6NDoi8J2UkiI7czoxOiJPIjtzOjQ6IvCdlYYiO3M6MToiTyI7czo0OiLwnZW6IjtzOjE6Ik8iO3M6NDoi8J2WriI7czoxOiJPIjtzOjQ6IvCdl6IiO3M6MToiTyI7czo0OiLwnZiWIjtzOjE6Ik8iO3M6NDoi8J2ZiiI7czoxOiJPIjtzOjQ6IvCdmb4iO3M6MToiTyI7czoyOiLOnyI7czoxOiJPIjtzOjQ6IvCdmrYiO3M6MToiTyI7czo0OiLwnZuwIjtzOjE6Ik8iO3M6NDoi8J2cqiI7czoxOiJPIjtzOjQ6IvCdnaQiO3M6MToiTyI7czo0OiLwnZ6eIjtzOjE6Ik8iO3M6Mzoi4rKeIjtzOjE6Ik8iO3M6Mjoi0J4iO3M6MToiTyI7czoyOiLVlSI7czoxOiJPIjtzOjM6IuK1lCI7czoxOiJPIjtzOjM6IuGLkCI7czoxOiJPIjtzOjM6IuCsoCI7czoxOiJPIjtzOjQ6IvCQk4IiO3M6MToiTyI7czozOiLqk7MiO3M6MToiTyI7czo0OiLwkaK1IjtzOjE6Ik8iO3M6NDoi8JCKkiI7czoxOiJPIjtzOjQ6IvCQiqsiO3M6MToiTyI7czo0OiLwkJCEIjtzOjE6Ik8iO3M6NDoi8JCUliI7czoxOiJPIjtzOjM6IuKBsCI7czoxOiK6IjtzOjM6IuG1kiI7czoxOiK6IjtzOjI6IsWQIjtzOjE6ItYiO3M6Mzoi4o20IjtzOjE6InAiO3M6Mzoi772QIjtzOjE6InAiO3M6NDoi8J2QqSI7czoxOiJwIjtzOjQ6IvCdkZ0iO3M6MToicCI7czo0OiLwnZKRIjtzOjE6InAiO3M6NDoi8J2ThSI7czoxOiJwIjtzOjQ6IvCdk7kiO3M6MToicCI7czo0OiLwnZStIjtzOjE6InAiO3M6NDoi8J2VoSI7czoxOiJwIjtzOjQ6IvCdlpUiO3M6MToicCI7czo0OiLwnZeJIjtzOjE6InAiO3M6NDoi8J2XvSI7czoxOiJwIjtzOjQ6IvCdmLEiO3M6MToicCI7czo0OiLwnZmlIjtzOjE6InAiO3M6NDoi8J2amSI7czoxOiJwIjtzOjI6Is+BIjtzOjE6InAiO3M6Mjoiz7EiO3M6MToicCI7czo0OiLwnZuSIjtzOjE6InAiO3M6NDoi8J2boCI7czoxOiJwIjtzOjQ6IvCdnIwiO3M6MToicCI7czo0OiLwnZyaIjtzOjE6InAiO3M6NDoi8J2dhiI7czoxOiJwIjtzOjQ6IvCdnZQiO3M6MToicCI7czo0OiLwnZ6AIjtzOjE6InAiO3M6NDoi8J2ejiI7czoxOiJwIjtzOjQ6IvCdnroiO3M6MToicCI7czo0OiLwnZ+IIjtzOjE6InAiO3M6Mzoi4rKjIjtzOjE6InAiO3M6Mjoi0YAiO3M6MToicCI7czozOiLvvLAiO3M6MToiUCI7czozOiLihJkiO3M6MToiUCI7czo0OiLwnZCPIjtzOjE6IlAiO3M6NDoi8J2RgyI7czoxOiJQIjtzOjQ6IvCdkbciO3M6MToiUCI7czo0OiLwnZKrIjtzOjE6IlAiO3M6NDoi8J2TnyI7czoxOiJQIjtzOjQ6IvCdlJMiO3M6MToiUCI7czo0OiLwnZW7IjtzOjE6IlAiO3M6NDoi8J2WryI7czoxOiJQIjtzOjQ6IvCdl6MiO3M6MToiUCI7czo0OiLwnZiXIjtzOjE6IlAiO3M6NDoi8J2ZiyI7czoxOiJQIjtzOjQ6IvCdmb8iO3M6MToiUCI7czoyOiLOoSI7czoxOiJQIjtzOjQ6IvCdmrgiO3M6MToiUCI7czo0OiLwnZuyIjtzOjE6IlAiO3M6NDoi8J2crCI7czoxOiJQIjtzOjQ6IvCdnaYiO3M6MToiUCI7czo0OiLwnZ6gIjtzOjE6IlAiO3M6Mzoi4rKiIjtzOjE6IlAiO3M6Mjoi0KAiO3M6MToiUCI7czozOiLhj6IiO3M6MToiUCI7czozOiLhka0iO3M6MToiUCI7czozOiLqk5EiO3M6MToiUCI7czo0OiLwkIqVIjtzOjE6IlAiO3M6NDoi8J2QqiI7czoxOiJxIjtzOjQ6IvCdkZ4iO3M6MToicSI7czo0OiLwnZKSIjtzOjE6InEiO3M6NDoi8J2ThiI7czoxOiJxIjtzOjQ6IvCdk7oiO3M6MToicSI7czo0OiLwnZSuIjtzOjE6InEiO3M6NDoi8J2VoiI7czoxOiJxIjtzOjQ6IvCdlpYiO3M6MToicSI7czo0OiLwnZeKIjtzOjE6InEiO3M6NDoi8J2XviI7czoxOiJxIjtzOjQ6IvCdmLIiO3M6MToicSI7czo0OiLwnZmmIjtzOjE6InEiO3M6NDoi8J2amiI7czoxOiJxIjtzOjI6ItSbIjtzOjE6InEiO3M6Mjoi1aMiO3M6MToicSI7czoyOiLVpiI7czoxOiJxIjtzOjM6IuKEmiI7czoxOiJRIjtzOjQ6IvCdkJAiO3M6MToiUSI7czo0OiLwnZGEIjtzOjE6IlEiO3M6NDoi8J2RuCI7czoxOiJRIjtzOjQ6IvCdkqwiO3M6MToiUSI7czo0OiLwnZOgIjtzOjE6IlEiO3M6NDoi8J2UlCI7czoxOiJRIjtzOjQ6IvCdlbwiO3M6MToiUSI7czo0OiLwnZawIjtzOjE6IlEiO3M6NDoi8J2XpCI7czoxOiJRIjtzOjQ6IvCdmJgiO3M6MToiUSI7czo0OiLwnZmMIjtzOjE6IlEiO3M6NDoi8J2agCI7czoxOiJRIjtzOjM6IuK1lSI7czoxOiJRIjtzOjQ6IvCdkKsiO3M6MToiciI7czo0OiLwnZGfIjtzOjE6InIiO3M6NDoi8J2SkyI7czoxOiJyIjtzOjQ6IvCdk4ciO3M6MToiciI7czo0OiLwnZO7IjtzOjE6InIiO3M6NDoi8J2UryI7czoxOiJyIjtzOjQ6IvCdlaMiO3M6MToiciI7czo0OiLwnZaXIjtzOjE6InIiO3M6NDoi8J2XiyI7czoxOiJyIjtzOjQ6IvCdl78iO3M6MToiciI7czo0OiLwnZizIjtzOjE6InIiO3M6NDoi8J2ZpyI7czoxOiJyIjtzOjQ6IvCdmpsiO3M6MToiciI7czozOiLqrYciO3M6MToiciI7czozOiLqrYgiO3M6MToiciI7czozOiLhtKYiO3M6MToiciI7czozOiLisoUiO3M6MToiciI7czoyOiLQsyI7czoxOiJyIjtzOjM6IuqugSI7czoxOiJyIjtzOjI6IsqAIjtzOjE6InIiO3M6NDoi8J2IliI7czoxOiJSIjtzOjM6IuKEmyI7czoxOiJSIjtzOjM6IuKEnCI7czoxOiJSIjtzOjM6IuKEnSI7czoxOiJSIjtzOjQ6IvCdkJEiO3M6MToiUiI7czo0OiLwnZGFIjtzOjE6IlIiO3M6NDoi8J2RuSI7czoxOiJSIjtzOjQ6IvCdk6EiO3M6MToiUiI7czo0OiLwnZW9IjtzOjE6IlIiO3M6NDoi8J2WsSI7czoxOiJSIjtzOjQ6IvCdl6UiO3M6MToiUiI7czo0OiLwnZiZIjtzOjE6IlIiO3M6NDoi8J2ZjSI7czoxOiJSIjtzOjQ6IvCdmoEiO3M6MToiUiI7czoyOiLGpiI7czoxOiJSIjtzOjM6IuGOoSI7czoxOiJSIjtzOjM6IuGPkiI7czoxOiJSIjtzOjQ6IvCQkrQiO3M6MToiUiI7czozOiLhlociO3M6MToiUiI7czozOiLqk6MiO3M6MToiUiI7czo0OiLwlry1IjtzOjE6IlIiO3M6Mzoi772TIjtzOjE6InMiO3M6NDoi8J2QrCI7czoxOiJzIjtzOjQ6IvCdkaAiO3M6MToicyI7czo0OiLwnZKUIjtzOjE6InMiO3M6NDoi8J2TiCI7czoxOiJzIjtzOjQ6IvCdk7wiO3M6MToicyI7czo0OiLwnZSwIjtzOjE6InMiO3M6NDoi8J2VpCI7czoxOiJzIjtzOjQ6IvCdlpgiO3M6MToicyI7czo0OiLwnZeMIjtzOjE6InMiO3M6NDoi8J2YgCI7czoxOiJzIjtzOjQ6IvCdmLQiO3M6MToicyI7czo0OiLwnZmoIjtzOjE6InMiO3M6NDoi8J2anCI7czoxOiJzIjtzOjM6IuqcsSI7czoxOiJzIjtzOjI6Isa9IjtzOjE6InMiO3M6Mjoi0ZUiO3M6MToicyI7czozOiLqrqoiO3M6MToicyI7czo0OiLwkaOBIjtzOjE6InMiO3M6NDoi8JCRiCI7czoxOiJzIjtzOjM6Iu+8syI7czoxOiJTIjtzOjQ6IvCdkJIiO3M6MToiUyI7czo0OiLwnZGGIjtzOjE6IlMiO3M6NDoi8J2RuiI7czoxOiJTIjtzOjQ6IvCdkq4iO3M6MToiUyI7czo0OiLwnZOiIjtzOjE6IlMiO3M6NDoi8J2UliI7czoxOiJTIjtzOjQ6IvCdlYoiO3M6MToiUyI7czo0OiLwnZW+IjtzOjE6IlMiO3M6NDoi8J2WsiI7czoxOiJTIjtzOjQ6IvCdl6YiO3M6MToiUyI7czo0OiLwnZiaIjtzOjE6IlMiO3M6NDoi8J2ZjiI7czoxOiJTIjtzOjQ6IvCdmoIiO3M6MToiUyI7czoyOiLQhSI7czoxOiJTIjtzOjI6ItWPIjtzOjE6IlMiO3M6Mzoi4Y+VIjtzOjE6IlMiO3M6Mzoi4Y+aIjtzOjE6IlMiO3M6Mzoi6pOiIjtzOjE6IlMiO3M6NDoi8Ja8uiI7czoxOiJTIjtzOjQ6IvCQipYiO3M6MToiUyI7czo0OiLwkJCgIjtzOjE6IlMiO3M6Mzoi6p61IjtzOjE6It8iO3M6MjoizrIiO3M6MToi3yI7czoyOiLPkCI7czoxOiLfIjtzOjQ6IvCdm4MiO3M6MToi3yI7czo0OiLwnZu9IjtzOjE6It8iO3M6NDoi8J2ctyI7czoxOiLfIjtzOjQ6IvCdnbEiO3M6MToi3yI7czo0OiLwnZ6rIjtzOjE6It8iO3M6Mzoi4Y+wIjtzOjE6It8iO3M6NDoi8J2QrSI7czoxOiJ0IjtzOjQ6IvCdkaEiO3M6MToidCI7czo0OiLwnZKVIjtzOjE6InQiO3M6NDoi8J2TiSI7czoxOiJ0IjtzOjQ6IvCdk70iO3M6MToidCI7czo0OiLwnZSxIjtzOjE6InQiO3M6NDoi8J2VpSI7czoxOiJ0IjtzOjQ6IvCdlpkiO3M6MToidCI7czo0OiLwnZeNIjtzOjE6InQiO3M6NDoi8J2YgSI7czoxOiJ0IjtzOjQ6IvCdmLUiO3M6MToidCI7czo0OiLwnZmpIjtzOjE6InQiO3M6NDoi8J2anSI7czoxOiJ0IjtzOjM6IuG0myI7czoxOiJ0IjtzOjM6IuKKpCI7czoxOiJUIjtzOjM6IuKfmSI7czoxOiJUIjtzOjQ6IvCfnagiO3M6MToiVCI7czozOiLvvLQiO3M6MToiVCI7czo0OiLwnZCTIjtzOjE6IlQiO3M6NDoi8J2RhyI7czoxOiJUIjtzOjQ6IvCdkbsiO3M6MToiVCI7czo0OiLwnZKvIjtzOjE6IlQiO3M6NDoi8J2ToyI7czoxOiJUIjtzOjQ6IvCdlJciO3M6MToiVCI7czo0OiLwnZWLIjtzOjE6IlQiO3M6NDoi8J2VvyI7czoxOiJUIjtzOjQ6IvCdlrMiO3M6MToiVCI7czo0OiLwnZenIjtzOjE6IlQiO3M6NDoi8J2YmyI7czoxOiJUIjtzOjQ6IvCdmY8iO3M6MToiVCI7czo0OiLwnZqDIjtzOjE6IlQiO3M6MjoizqQiO3M6MToiVCI7czo0OiLwnZq7IjtzOjE6IlQiO3M6NDoi8J2btSI7czoxOiJUIjtzOjQ6IvCdnK8iO3M6MToiVCI7czo0OiLwnZ2pIjtzOjE6IlQiO3M6NDoi8J2eoyI7czoxOiJUIjtzOjM6IuKypiI7czoxOiJUIjtzOjI6ItCiIjtzOjE6IlQiO3M6Mzoi4Y6iIjtzOjE6IlQiO3M6Mzoi6pOUIjtzOjE6IlQiO3M6NDoi8Ja8iiI7czoxOiJUIjtzOjQ6IvCRorwiO3M6MToiVCI7czo0OiLwkIqXIjtzOjE6IlQiO3M6NDoi8JCKsSI7czoxOiJUIjtzOjQ6IvCQjJUiO3M6MToiVCI7czo0OiLwnZCuIjtzOjE6InUiO3M6NDoi8J2RoiI7czoxOiJ1IjtzOjQ6IvCdkpYiO3M6MToidSI7czo0OiLwnZOKIjtzOjE6InUiO3M6NDoi8J2TviI7czoxOiJ1IjtzOjQ6IvCdlLIiO3M6MToidSI7czo0OiLwnZWmIjtzOjE6InUiO3M6NDoi8J2WmiI7czoxOiJ1IjtzOjQ6IvCdl44iO3M6MToidSI7czo0OiLwnZiCIjtzOjE6InUiO3M6NDoi8J2YtiI7czoxOiJ1IjtzOjQ6IvCdmaoiO3M6MToidSI7czo0OiLwnZqeIjtzOjE6InUiO3M6Mzoi6p6fIjtzOjE6InUiO3M6Mzoi4bScIjtzOjE6InUiO3M6Mzoi6q2OIjtzOjE6InUiO3M6Mzoi6q2SIjtzOjE6InUiO3M6MjoiyosiO3M6MToidSI7czoyOiLPhSI7czoxOiJ1IjtzOjQ6IvCdm5YiO3M6MToidSI7czo0OiLwnZyQIjtzOjE6InUiO3M6NDoi8J2diiI7czoxOiJ1IjtzOjQ6IvCdnoQiO3M6MToidSI7czo0OiLwnZ6+IjtzOjE6InUiO3M6Mjoi1b0iO3M6MToidSI7czo0OiLwkJO2IjtzOjE6InUiO3M6NDoi8JGjmCI7czoxOiJ1IjtzOjM6IuKIqiI7czoxOiJVIjtzOjM6IuKLgyI7czoxOiJVIjtzOjQ6IvCdkJQiO3M6MToiVSI7czo0OiLwnZGIIjtzOjE6IlUiO3M6NDoi8J2RvCI7czoxOiJVIjtzOjQ6IvCdkrAiO3M6MToiVSI7czo0OiLwnZOkIjtzOjE6IlUiO3M6NDoi8J2UmCI7czoxOiJVIjtzOjQ6IvCdlYwiO3M6MToiVSI7czo0OiLwnZaAIjtzOjE6IlUiO3M6NDoi8J2WtCI7czoxOiJVIjtzOjQ6IvCdl6giO3M6MToiVSI7czo0OiLwnZicIjtzOjE6IlUiO3M6NDoi8J2ZkCI7czoxOiJVIjtzOjQ6IvCdmoQiO3M6MToiVSI7czoyOiLVjSI7czoxOiJVIjtzOjM6IuGIgCI7czoxOiJVIjtzOjQ6IvCQk44iO3M6MToiVSI7czozOiLhkYwiO3M6MToiVSI7czozOiLqk7QiO3M6MToiVSI7czo0OiLwlr2CIjtzOjE6IlUiO3M6NDoi8JGiuCI7czoxOiJVIjtzOjM6IuKIqCI7czoxOiJ2IjtzOjM6IuKLgSI7czoxOiJ2IjtzOjM6Iu+9liI7czoxOiJ2IjtzOjM6IuKFtCI7czoxOiJ2IjtzOjQ6IvCdkK8iO3M6MToidiI7czo0OiLwnZGjIjtzOjE6InYiO3M6NDoi8J2SlyI7czoxOiJ2IjtzOjQ6IvCdk4siO3M6MToidiI7czo0OiLwnZO/IjtzOjE6InYiO3M6NDoi8J2UsyI7czoxOiJ2IjtzOjQ6IvCdlaciO3M6MToidiI7czo0OiLwnZabIjtzOjE6InYiO3M6NDoi8J2XjyI7czoxOiJ2IjtzOjQ6IvCdmIMiO3M6MToidiI7czo0OiLwnZi3IjtzOjE6InYiO3M6NDoi8J2ZqyI7czoxOiJ2IjtzOjQ6IvCdmp8iO3M6MToidiI7czozOiLhtKAiO3M6MToidiI7czoyOiLOvSI7czoxOiJ2IjtzOjQ6IvCdm44iO3M6MToidiI7czo0OiLwnZyIIjtzOjE6InYiO3M6NDoi8J2dgiI7czoxOiJ2IjtzOjQ6IvCdnbwiO3M6MToidiI7czo0OiLwnZ62IjtzOjE6InYiO3M6Mjoi0bUiO3M6MToidiI7czoyOiLXmCI7czoxOiJ2IjtzOjQ6IvCRnIYiO3M6MToidiI7czozOiLqrqkiO3M6MToidiI7czo0OiLwkaOAIjtzOjE6InYiO3M6NDoi8J2IjSI7czoxOiJWIjtzOjI6ItmnIjtzOjE6IlYiO3M6Mjoi27ciO3M6MToiViI7czozOiLihaQiO3M6MToiViI7czo0OiLwnZCVIjtzOjE6IlYiO3M6NDoi8J2RiSI7czoxOiJWIjtzOjQ6IvCdkb0iO3M6MToiViI7czo0OiLwnZKxIjtzOjE6IlYiO3M6NDoi8J2TpSI7czoxOiJWIjtzOjQ6IvCdlJkiO3M6MToiViI7czo0OiLwnZWNIjtzOjE6IlYiO3M6NDoi8J2WgSI7czoxOiJWIjtzOjQ6IvCdlrUiO3M6MToiViI7czo0OiLwnZepIjtzOjE6IlYiO3M6NDoi8J2YnSI7czoxOiJWIjtzOjQ6IvCdmZEiO3M6MToiViI7czo0OiLwnZqFIjtzOjE6IlYiO3M6Mjoi0bQiO3M6MToiViI7czozOiLitLgiO3M6MToiViI7czozOiLhj5kiO3M6MToiViI7czozOiLhkK8iO3M6MToiViI7czozOiLqm58iO3M6MToiViI7czozOiLqk6YiO3M6MToiViI7czo0OiLwlryIIjtzOjE6IlYiO3M6NDoi8JGioCI7czoxOiJWIjtzOjQ6IvCQlJ0iO3M6MToiViI7czoyOiLJryI7czoxOiJ3IjtzOjQ6IvCdkLAiO3M6MToidyI7czo0OiLwnZGkIjtzOjE6InciO3M6NDoi8J2SmCI7czoxOiJ3IjtzOjQ6IvCdk4wiO3M6MToidyI7czo0OiLwnZSAIjtzOjE6InciO3M6NDoi8J2UtCI7czoxOiJ3IjtzOjQ6IvCdlagiO3M6MToidyI7czo0OiLwnZacIjtzOjE6InciO3M6NDoi8J2XkCI7czoxOiJ3IjtzOjQ6IvCdmIQiO3M6MToidyI7czo0OiLwnZi4IjtzOjE6InciO3M6NDoi8J2ZrCI7czoxOiJ3IjtzOjQ6IvCdmqAiO3M6MToidyI7czozOiLhtKEiO3M6MToidyI7czoyOiLRoSI7czoxOiJ3IjtzOjI6ItSdIjtzOjE6InciO3M6Mjoi1aEiO3M6MToidyI7czo0OiLwkZyKIjtzOjE6InciO3M6NDoi8JGcjiI7czoxOiJ3IjtzOjQ6IvCRnI8iO3M6MToidyI7czozOiLqroMiO3M6MToidyI7czo0OiLwkaOvIjtzOjE6IlciO3M6NDoi8JGjpiI7czoxOiJXIjtzOjQ6IvCdkJYiO3M6MToiVyI7czo0OiLwnZGKIjtzOjE6IlciO3M6NDoi8J2RviI7czoxOiJXIjtzOjQ6IvCdkrIiO3M6MToiVyI7czo0OiLwnZOmIjtzOjE6IlciO3M6NDoi8J2UmiI7czoxOiJXIjtzOjQ6IvCdlY4iO3M6MToiVyI7czo0OiLwnZaCIjtzOjE6IlciO3M6NDoi8J2WtiI7czoxOiJXIjtzOjQ6IvCdl6oiO3M6MToiVyI7czo0OiLwnZieIjtzOjE6IlciO3M6NDoi8J2ZkiI7czoxOiJXIjtzOjQ6IvCdmoYiO3M6MToiVyI7czoyOiLUnCI7czoxOiJXIjtzOjM6IuGOsyI7czoxOiJXIjtzOjM6IuGPlCI7czoxOiJXIjtzOjM6IuqTqiI7czoxOiJXIjtzOjM6IuGZriI7czoxOiJ4IjtzOjI6IsOXIjtzOjE6IngiO3M6Mzoi4qSrIjtzOjE6IngiO3M6Mzoi4qSsIjtzOjE6IngiO3M6Mzoi4qivIjtzOjE6IngiO3M6Mzoi772YIjtzOjE6IngiO3M6Mzoi4oW5IjtzOjE6IngiO3M6NDoi8J2QsSI7czoxOiJ4IjtzOjQ6IvCdkaUiO3M6MToieCI7czo0OiLwnZKZIjtzOjE6IngiO3M6NDoi8J2TjSI7czoxOiJ4IjtzOjQ6IvCdlIEiO3M6MToieCI7czo0OiLwnZS1IjtzOjE6IngiO3M6NDoi8J2VqSI7czoxOiJ4IjtzOjQ6IvCdlp0iO3M6MToieCI7czo0OiLwnZeRIjtzOjE6IngiO3M6NDoi8J2YhSI7czoxOiJ4IjtzOjQ6IvCdmLkiO3M6MToieCI7czo0OiLwnZmtIjtzOjE6IngiO3M6NDoi8J2aoSI7czoxOiJ4IjtzOjI6ItGFIjtzOjE6IngiO3M6Mzoi4ZWBIjtzOjE6IngiO3M6Mzoi4ZW9IjtzOjE6IngiO3M6Mzoi4ZmtIjtzOjE6IlgiO3M6Mzoi4pWzIjtzOjE6IlgiO3M6NDoi8JCMoiI7czoxOiJYIjtzOjQ6IvCRo6wiO3M6MToiWCI7czozOiLvvLgiO3M6MToiWCI7czozOiLihakiO3M6MToiWCI7czo0OiLwnZCXIjtzOjE6IlgiO3M6NDoi8J2RiyI7czoxOiJYIjtzOjQ6IvCdkb8iO3M6MToiWCI7czo0OiLwnZKzIjtzOjE6IlgiO3M6NDoi8J2TpyI7czoxOiJYIjtzOjQ6IvCdlJsiO3M6MToiWCI7czo0OiLwnZWPIjtzOjE6IlgiO3M6NDoi8J2WgyI7czoxOiJYIjtzOjQ6IvCdlrciO3M6MToiWCI7czo0OiLwnZerIjtzOjE6IlgiO3M6NDoi8J2YnyI7czoxOiJYIjtzOjQ6IvCdmZMiO3M6MToiWCI7czo0OiLwnZqHIjtzOjE6IlgiO3M6Mzoi6p6zIjtzOjE6IlgiO3M6MjoizqciO3M6MToiWCI7czo0OiLwnZq+IjtzOjE6IlgiO3M6NDoi8J2buCI7czoxOiJYIjtzOjQ6IvCdnLIiO3M6MToiWCI7czo0OiLwnZ2sIjtzOjE6IlgiO3M6NDoi8J2epiI7czoxOiJYIjtzOjM6IuKyrCI7czoxOiJYIjtzOjI6ItClIjtzOjE6IlgiO3M6Mzoi4rWdIjtzOjE6IlgiO3M6Mzoi4Zq3IjtzOjE6IlgiO3M6Mzoi6pOrIjtzOjE6IlgiO3M6NDoi8JCKkCI7czoxOiJYIjtzOjQ6IvCQirQiO3M6MToiWCI7czo0OiLwkIyXIjtzOjE6IlgiO3M6NDoi8JCUpyI7czoxOiJYIjtzOjI6IsmjIjtzOjE6InkiO3M6Mzoi4baMIjtzOjE6InkiO3M6Mzoi772ZIjtzOjE6InkiO3M6NDoi8J2QsiI7czoxOiJ5IjtzOjQ6IvCdkaYiO3M6MToieSI7czo0OiLwnZKaIjtzOjE6InkiO3M6NDoi8J2TjiI7czoxOiJ5IjtzOjQ6IvCdlIIiO3M6MToieSI7czo0OiLwnZS2IjtzOjE6InkiO3M6NDoi8J2VqiI7czoxOiJ5IjtzOjQ6IvCdlp4iO3M6MToieSI7czo0OiLwnZeSIjtzOjE6InkiO3M6NDoi8J2YhiI7czoxOiJ5IjtzOjQ6IvCdmLoiO3M6MToieSI7czo0OiLwnZmuIjtzOjE6InkiO3M6NDoi8J2aoiI7czoxOiJ5IjtzOjI6IsqPIjtzOjE6InkiO3M6Mzoi4bu/IjtzOjE6InkiO3M6Mzoi6q2aIjtzOjE6InkiO3M6MjoizrMiO3M6MToieSI7czozOiLihL0iO3M6MToieSI7czo0OiLwnZuEIjtzOjE6InkiO3M6NDoi8J2bviI7czoxOiJ5IjtzOjQ6IvCdnLgiO3M6MToieSI7czo0OiLwnZ2yIjtzOjE6InkiO3M6NDoi8J2erCI7czoxOiJ5IjtzOjI6ItGDIjtzOjE6InkiO3M6Mjoi0q8iO3M6MToieSI7czozOiLhg6ciO3M6MToieSI7czo0OiLwkaOcIjtzOjE6InkiO3M6Mzoi77y5IjtzOjE6IlkiO3M6NDoi8J2QmCI7czoxOiJZIjtzOjQ6IvCdkYwiO3M6MToiWSI7czo0OiLwnZKAIjtzOjE6IlkiO3M6NDoi8J2StCI7czoxOiJZIjtzOjQ6IvCdk6giO3M6MToiWSI7czo0OiLwnZScIjtzOjE6IlkiO3M6NDoi8J2VkCI7czoxOiJZIjtzOjQ6IvCdloQiO3M6MToiWSI7czo0OiLwnZa4IjtzOjE6IlkiO3M6NDoi8J2XrCI7czoxOiJZIjtzOjQ6IvCdmKAiO3M6MToiWSI7czo0OiLwnZmUIjtzOjE6IlkiO3M6NDoi8J2aiCI7czoxOiJZIjtzOjI6Is6lIjtzOjE6IlkiO3M6Mjoiz5IiO3M6MToiWSI7czo0OiLwnZq8IjtzOjE6IlkiO3M6NDoi8J2btiI7czoxOiJZIjtzOjQ6IvCdnLAiO3M6MToiWSI7czo0OiLwnZ2qIjtzOjE6IlkiO3M6NDoi8J2epCI7czoxOiJZIjtzOjM6IuKyqCI7czoxOiJZIjtzOjI6ItCjIjtzOjE6IlkiO3M6Mjoi0q4iO3M6MToiWSI7czozOiLhjqkiO3M6MToiWSI7czozOiLhjr0iO3M6MToiWSI7czozOiLqk6wiO3M6MToiWSI7czo0OiLwlr2DIjtzOjE6IlkiO3M6NDoi8JGipCI7czoxOiJZIjtzOjQ6IvCQirIiO3M6MToiWSI7czo0OiLwnZCzIjtzOjE6InoiO3M6NDoi8J2RpyI7czoxOiJ6IjtzOjQ6IvCdkpsiO3M6MToieiI7czo0OiLwnZOPIjtzOjE6InoiO3M6NDoi8J2UgyI7czoxOiJ6IjtzOjQ6IvCdlLciO3M6MToieiI7czo0OiLwnZWrIjtzOjE6InoiO3M6NDoi8J2WnyI7czoxOiJ6IjtzOjQ6IvCdl5MiO3M6MToieiI7czo0OiLwnZiHIjtzOjE6InoiO3M6NDoi8J2YuyI7czoxOiJ6IjtzOjQ6IvCdma8iO3M6MToieiI7czo0OiLwnZqjIjtzOjE6InoiO3M6Mzoi4bSiIjtzOjE6InoiO3M6Mzoi6q6TIjtzOjE6InoiO3M6NDoi8JGjhCI7czoxOiJ6IjtzOjQ6IvCQi7UiO3M6MToiWiI7czo0OiLwkaOlIjtzOjE6IloiO3M6Mzoi77y6IjtzOjE6IloiO3M6Mzoi4oSkIjtzOjE6IloiO3M6Mzoi4oSoIjtzOjE6IloiO3M6NDoi8J2QmSI7czoxOiJaIjtzOjQ6IvCdkY0iO3M6MToiWiI7czo0OiLwnZKBIjtzOjE6IloiO3M6NDoi8J2StSI7czoxOiJaIjtzOjQ6IvCdk6kiO3M6MToiWiI7czo0OiLwnZaFIjtzOjE6IloiO3M6NDoi8J2WuSI7czoxOiJaIjtzOjQ6IvCdl60iO3M6MToiWiI7czo0OiLwnZihIjtzOjE6IloiO3M6NDoi8J2ZlSI7czoxOiJaIjtzOjQ6IvCdmokiO3M6MToiWiI7czoyOiLOliI7czoxOiJaIjtzOjQ6IvCdmq0iO3M6MToiWiI7czo0OiLwnZunIjtzOjE6IloiO3M6NDoi8J2coSI7czoxOiJaIjtzOjQ6IvCdnZsiO3M6MToiWiI7czo0OiLwnZ6VIjtzOjE6IloiO3M6Mzoi4Y+DIjtzOjE6IloiO3M6Mzoi6pOcIjtzOjE6IloiO3M6NDoi8JGiqSI7czoxOiJaIjtzOjI6Isa/IjtzOjE6Iv4iO3M6Mjoiz7giO3M6MToi/iI7czoyOiLPtyI7czoxOiLeIjtzOjQ6IvCQk4QiO3M6MToi3iI7fQ=="; private static function need_skip($string, $i) { $chars = " @\r\n\t"; if (isset($string[$i]) && strpos($chars, $string[$i]) !== false) { $i++; return $i; } return false; } private static function match_shortopen_tag($string, $i, $needle, $j) { $pos_needle = false; $pos_string = false; if ((isset($needle[$j - 2]) && isset($string[$i - 2])) && (($needle[$j - 2] == '<') && ($string[$i - 2] == '<')) && (isset($needle[$j - 1]) && isset($string[$i - 1])) && ($needle[$j - 1] == '?' && $string[$i - 1] == '?') ) { $pos_needle = $j; $pos_string = $i; } if ($pos_needle && (isset($needle[$pos_needle]) && $needle[$pos_needle] == 'p') && (isset($needle[$pos_needle + 1]) && $needle[$pos_needle + 1] == 'h') && (isset($needle[$pos_needle + 2]) && $needle[$pos_needle + 2] == 'p') ) { $pos_needle = $pos_needle + 3; } if ($pos_string && (isset($string[$pos_string]) && $string[$pos_string] == 'p') && (isset($string[$pos_string + 1]) && $string[$pos_string + 1] == 'h') && (isset($string[$pos_string + 2]) && $string[$pos_string + 2] == 'p') ) { $pos_string = $pos_string + 3; } return [$pos_needle, $pos_string]; } public static function strip_whitespace($string, $save_length = false) { StringToStreamWrapper::prepare($string); $strippedStr = @php_strip_whitespace(StringToStreamWrapper::WRAPPER_NAME . '://'); if (!$save_length) { return $strippedStr; } else { $iMax = strlen($string); $jMax = strlen($strippedStr); if ($iMax != $jMax) { $newStr = ''; $j = 0; for ($i = 0; $i < $iMax; $i++) { if (isset($strippedStr[$j]) && trim($string[$i]) === trim($strippedStr[$j])) { $newStr .= $string[$i]; $j++; } else { $newStr .= ' '; } } return $newStr; } return $strippedStr; } } public static function normalize($string, $save_length = false) { $search = [ ' ;', ' =', ' ,', ' .', ' (', ' )', ' {', ' }', '; ', '= ', ', ', '. ' , '( ', '( ', '{ ', '} ', ' !', ' >', ' <', ' _', '_ ', '< ', '> ', ' $', ' %', '% ' , '# ', ' #', '^ ', ' ^', ' &', '& ', ' ?', '? ']; $replace = [ ';', '=', ',', '.', '(', ')', '{', '}', ';', '=', ',', '.' , '(', ')', '{', '}', '!', '>', '<', '_', '_', '<', '>', '$', '%', '%' , '#', '#', '^', '^', '&', '&', '?', '?']; if (!$save_length) { $string = str_replace('@', '', $string); $string = preg_replace('~\s+~smi', ' ', $string); $string = str_replace($search, $replace, $string); } $string = preg_replace_callback('~\bchr\(\s*([0-9a-fA-FxX]+)\s*\)~', function($m) use ($save_length) { if ($save_length) { return str_pad("'" . @chr(intval($m[1], 0)) . "'", strlen($m[0]), ' '); } else { return "'" . @chr(intval($m[1], 0)) . "'"; } }, $string); for ($i = 0; $i < 2; $i++) { $string = preg_replace_callback('~%([0-9a-fA-F]{2})~', function($m) use ($save_length) { if ($save_length) { return str_pad(chr(@hexdec($m[1])), strlen($m[0]), ' '); } else { return @chr(hexdec($m[1])); } }, $string); } $iter = 0; $regexpHtmlAmp = '/\&[#\w]{2,20};/i'; while ($iter < self::MAX_ITERATION && preg_match($regexpHtmlAmp, $string)) { $string = preg_replace_callback($regexpHtmlAmp, function ($m) use ($save_length) { if ($save_length) { return str_pad(@html_entity_decode($m[0], ENT_QUOTES | ENT_HTML5), strlen($m[0]), ' ', STR_PAD_LEFT); } else { return @html_entity_decode($m[0], ENT_QUOTES | ENT_HTML5); } }, $string); $iter++; } $string = preg_replace_callback('/\\\\x([a-fA-F0-9]{1,2})/i', function($m) use ($save_length) { if ($save_length) { return str_pad(chr(@hexdec($m[1])), strlen($m[0]), ' '); } else { return @chr(hexdec($m[1])); } }, $string); $string = preg_replace_callback('/\\\\([0-9]{1,3})/i', function($m) use ($save_length) { if ($save_length) { return str_pad(@chr(octdec($m[1])), strlen($m[0]), ' '); } else { return @chr(octdec($m[1])); } }, $string); $string = preg_replace_callback('/[\'"]\s*?\.+\s*?[\'"]/smi', function($m) use ($save_length) { if ($save_length) { return str_repeat(' ', strlen($m[0])); } else { return ''; } }, $string); $string = preg_replace_callback('/[\'"]\s*?\++\s*?[\'"]/smi', function($m) use ($save_length) { if ($save_length) { return str_repeat(' ', strlen($m[0])); } else { return ''; } }, $string); $string = preg_replace_callback('~<title[^>]{0,99}>\s*\K(.{0,300}?)(?=<\/title>)~mis', function($m) use ($save_length) { if(preg_match('~(?:\w[^\x00-\x7F]{1,9}|[^\x00-\x7F]{1,9}\w)~', $m[1])) { return self::HomoglyphNormalize($m[1]); } return $m[1]; }, $string); if (!$save_length) { $string = str_replace('<?php', '<?php ', $string); $string = preg_replace('~\s+~', ' ', $string); } return $string; } public static function string_pos($string, $needle) { $j = 0; $skip = false; $start = false; $end = 0; $last_tag = [false, false]; $string = self::strip_whitespace($string, true); $string = self::normalize($string, true); $needle = self::normalize($needle, true); for ($i = 0, $iMax = strlen($string); $i < $iMax; $i++) { if(trim($string[$i]) === '' && trim($needle[$j]) === '') { $string[$i] = $needle[$j] = ' '; } if ($string[$i] == $needle[$j]) { if ($j == 0) { $start = $i; } elseif ($j == strlen($needle) - 1) { $end = $i; return [$start, $end]; } $j++; } else { $match_php_tag = self::match_shortopen_tag($string, $i, $needle, $j); if ($match_php_tag[0] !== false && ($last_tag[0] !== $match_php_tag[0])) { $j = $match_php_tag[0]; } if ($match_php_tag[1] !== false && ($last_tag[1] !== $match_php_tag[1])) { $i = $match_php_tag[1] - 1; } $last_tag = $match_php_tag; if ($match_php_tag[0] !== false || ($match_php_tag[1] !== false && (!empty($last_tag)))) { continue; } $skip = self::need_skip($string, $i); if ($skip !== false && $start !== false) { $i = $skip - 1; } else { $j = 0; } } } return false; } private static function HomoglyphNormalize($str) { if (!is_array(self::$confusables)) { self::$confusables = @unserialize(@base64_decode(self::$confusables)); } return str_replace(array_keys(self::$confusables), array_values(self::$confusables), $str); } /** * @param array $confusables */ public static function setConfusables(array $confusables) { self::$confusables = $confusables; } } class Encoding { // Unicode BOM is U+FEFF, but after encoded, it will look like this. const UTF32_BIG_ENDIAN_BOM = "\x00\x00\xFE\xFF"; const UTF32_LITTLE_ENDIAN_BOM = "\xFF\xFE\x00\x00"; const UTF16_BIG_ENDIAN_BOM = "\xFE\xFF"; const UTF16_LITTLE_ENDIAN_BOM = "\xFF\xFE"; const UTF8_BOM = "\xEF\xBB\xBF"; public static function detectUTFEncoding($text) { $first2 = substr($text, 0, 2); $first3 = substr($text, 0, 3); $first4 = substr($text, 0, 4); if ($first3 == self::UTF8_BOM) { return 'UTF-8'; } elseif ($first4 == self::UTF32_BIG_ENDIAN_BOM) { return 'UTF-32BE'; } elseif ($first4 == self::UTF32_LITTLE_ENDIAN_BOM) { return 'UTF-32LE'; } elseif ($first2 == self::UTF16_BIG_ENDIAN_BOM) { return 'UTF-16BE'; } elseif ($first2 == self::UTF16_LITTLE_ENDIAN_BOM) { return 'UTF-16LE'; } return false; } public static function iconvSupported() { return (function_exists('iconv') && is_callable('iconv')); } public static function convertToCp1251($from, $str) { $ret = @iconv($from, 'CP1251//TRANSLIT', $str); if ($ret === false) { $ret = @iconv($from, 'CP1251//IGNORE', Normalization::normalize($str)); } return $ret; } public static function convertToUTF8($from, $str) { return @iconv($from, 'UTF-8//IGNORE', $str); } } /** * Class RapidScanStorageRecord. * * Implements db record for RapidScan */ class RapidScanStorageRecord { const WHITE = 1; // white listed file in cloud db const BLACK = 6; // black listed file in cloud db const DUAL_USE = 2; // dual used listed file in cloud db const UNKNOWN = 3; // unknown file --> file not listed in cloud db const HEURISTIC = 4; // detected as heuristic const CONFLICT = 5; // we have filename hashing conflict for this file const NEWFILE = 0; // this is a new file (or content changed) const RX_MALWARE = 7; // detected as malware by rx scan const RX_SUSPICIOUS = 8; // detected as suspicious by rx scan const RX_GOOD = 9; // detected as good by rx scan const RX_SKIPPED_SMART = 10; // skipped by smart scan /** * @var string; */ private $filename; /** * @var int */ private $key; /** * @var int */ private $scanned_ts; /** * @var int */ private $updated_ts; /** * @var int */ private $verdict; /** * @var string */ private $sha2; /** * @var string */ private $signature = ''; /** * @var string */ private $snippet = ''; /** * RapidScanStorageRecord constructor. * @param $key * @param $scanned_ts * @param int $verdict * @param $sha2 * @param string $signature */ private function __construct($key, $scanned_ts, $verdict, $sha2, $signature, $filename, $snippet, $updated_ts = 0) { $this->filename = $filename; $this->key = $key; $this->scanned_ts = $scanned_ts; $this->verdict = $verdict; $this->sha2 = $sha2; $this->snippet = $snippet; $this->updated_ts = $updated_ts; if ($signature !== '') { $this->signature = self::padTo10Bytes($signature); } } /** * Create db storage record from file * @param $filename * @param string $signature * @param int $verdict * @return RapidScanStorageRecord * @throws Exception */ public static function fromFile($file, $signature = '', $verdict = self::UNKNOWN, $snippet = '') { $filename = ''; $stat = []; $inode = 0; $ctime = 0; $mtime = 0; if (is_string($file) && file_exists($file)) { $filename = $file; $stat = stat($filename); $inode = $stat['ino']; $ctime = $stat['ctime']; $mtime = $stat['mtime']; } else if ($file instanceof FileInfo && file_exists($file->getFilename())){ $filename = $file->getFilename(); $inode = $file->getInode(); $ctime = $file->getCreated(); $mtime = $file->getModified(); } if (!file_exists($filename)) { throw new Exception('File \'' . $filename . '\' doesn\'t exists.'); } $key = (int)((string)self::fileNameHash($filename) . (string)$inode); $scanned_ts = time(); $updated_ts = max($mtime, $ctime); $sha2 = ''; if (!$verdict) { $verdict = self::NEWFILE; } if ($signature!=='') { $signature = self::padTo10Bytes($signature); } return new self($key, $scanned_ts, $verdict, $sha2, $signature, $filename, $snippet, $updated_ts); } /** * @param $array * @return RapidScanStorageRecord */ public static function fromArray($array) { $key = $array['key']; $scanned_ts = $array['scanned_ts']; $sha2 = hex2bin($array['sha2']); $verdict = $array['verdict']; $signature = $array['signature']; return new self($key, $scanned_ts, $verdict, $sha2, $signature, '', ''); } /** * @return array */ public function toArray() { $array['key'] = $this->key; $array['scanned_ts'] = $this->scanned_ts; $array['verdict'] = $this->verdict; $array['sha2'] = bin2hex($this->sha2); $array['signature'] = $this->signature; return $array; } /** * @param $value * @return int */ public static function getTsFromValue($value) { $timestamp = unpack("l", substr($value, 0, 8)); $scanned_ts = array_pop($timestamp); return $scanned_ts; } /** * @param $value * @return int */ public static function getVerdictFromValue($value) { return (int)ord($value[8]); } /** * @return array */ public function calcSha2() { $this->sha2 = hash('sha256', file_get_contents($this->filename), true); } /** * @param $verdict */ public function setVerdict($verdict) { $this->verdict = $verdict; } /** * @return int */ public function getKey() { return $this->key; } /** * @param $signature */ public function setSignature($signature) { if ($signature!=='') { $this->signature = self::padTo10Bytes($signature); } } /** * @param $ts */ public function setScannedTs($ts) { $this->scanned_ts = $ts; } /** * Unpack bytestring $value to RapidScanStorageRecord * @param $hash * @param $value * @return RapidScanStorageRecord */ public static function unpack($hash, $value) { // pack format // 8 bytes timestamp // 1 byte verdict // 32 bytes sha2 // 10 bytes signature (only for BLACK, DUAL_USE, RX_MALWARE, RX_SUSPICIOUS) // note - we will hold bloomfilter for file later on for those that are WHITE // it will be used to detect installed apps $signature = ''; $timestamp = unpack("l", substr($value, 0, 8)); $scanned_ts = array_pop($timestamp); $verdict = $value[8]; $verdict = (int)ord($verdict); $sha2 = substr($value, 9, 32); if (in_array($verdict, array(self::BLACK, self::DUAL_USE, self::RX_MALWARE, self::RX_SUSPICIOUS))) { $signature = substr($value, 41, 10); # 10 bytes signature string } if (strlen($value) > 51) { $snippet = substr($value, 51); } else { $snippet = ''; } return new self($hash, $scanned_ts, $verdict, $sha2, $signature, '', $snippet); } /** * Pack RapidScanStorageRecord to bytestring to save in db * @return string */ public function pack() { $signature = ''; if (strlen($this->signature) > 0) { $signature = $this->signature; } return (($this->scanned_ts < 0) ? str_pad(pack("l", $this->scanned_ts), 8, "\xff") : str_pad(pack("l", $this->scanned_ts), 8, "\x00")) . pack("c", $this->verdict) . $this->sha2 . $signature . $this->snippet; } /** * Hash function for create hash of full filename to store in db as key * @param $str * @return int */ private static function fileNameHash($str) { for ($i = 0, $h = 5381, $len = strlen($str); $i < $len; $i++) { $h = (($h << 5) + $h + ord($str[$i])) & 0x7FFFFFFF; } return $h; } /** * Convert string to utf-8 and fitting/padding it to 10 bytes * @param $str * @return string */ private static function padTo10Bytes($str) { # convert string to bytes in UTF8, and add 0 bytes to pad it to 10 # cut to 10 bytes of necessary $str = utf8_encode($str); $len = strlen($str); if ($len < 10) { $str = str_pad($str, 10, "\x00"); } elseif ($len > 10) { $str = substr($str, 0, 10); } return $str; } /** * @return int */ public function getScannedTs() { return $this->scanned_ts; } /** * @return int */ public function getUpdatedTs() { return $this->updated_ts; } /** * @return int */ public function getVerdict() { return $this->verdict; } /** * @return string */ public function getSha2() { return $this->sha2; } /** * @return string */ public function getSignature() { return $this->signature; } /** * @return string */ public function getFilename() { return $this->filename; } /** * @param $filename */ public function setFilename($filename) { $this->filename = $filename; $stat = stat($filename); $this->updated_ts = max($stat['mtime'], $stat['ctime']); } /** * @return string */ public function getSnippet() { return $this->snippet; } /** * @param $filename */ public function setSnippet($snippet) { $this->snippet = $snippet; } } /** * Interface RapidScanStorage implements class to work with RapidScan db * @package Aibolit\Lib\Scantrack */ class RapidScanStorage { const DB_VERSION = '1.0'; protected $db_ver = '0'; /** * @var string */ protected $old_dir; /** * @var string */ protected $new_dir; /** * @var resource */ protected $new_db; /** * @var resource */ protected $old_db; /** * @var resource */ private $wb; /** * @var int */ public $batch_count; /** * RapidScanStorage constructor. * @param $base - folder where db located */ public function __construct($base) { if(!is_dir($base) && !mkdir($base) && !is_dir($base)) { throw new Exception(sprintf('Directory "%s" was not created', $base)); } $this->old_dir = $base . '/current'; $this->new_dir = $base . '/new'; $options = [ 'create_if_missing' => true, 'compression' => LEVELDB_NO_COMPRESSION ]; $this->db_ver = $this->getDbVersion(); if ($this->needMigrate()) { $this->migrateDb(); } $this->new_db = new LevelDB($this->new_dir, $options); $this->old_db = new LevelDB($this->old_dir, $options); $this->storeVersion(); $this->wb = NULL; // will be use to track writing to batch $this->batch_count = 0; } /** * @param RapidScanStorageRecord $record * @return bool */ public function put(RapidScanStorageRecord $record) { $this->startBatch(); $this->batch_count++; $value = $this->wb->put(pack('P', $record->getKey()), $record->pack()); return $value; } /** * @param $hash * @return bool|RapidScanStorageRecord */ public function getNew($hash) { $value = $this->new_db->get(pack('P', $hash)); if($value) { $return = RapidScanStorageRecord::unpack($hash, $value); return $return; } return false; } /** * @param $hash * @return bool|RapidScanStorageRecord */ public function getOld($hash) { $value = $this->old_db->get(pack('P', $hash)); if($value) { $return = RapidScanStorageRecord::unpack($hash, $value); return $return; } return false; } /** * @param $hash * @return bool */ public function delete($hash) { $return = $this->new_db->delete(pack('P', $hash)); return $return; } /** * Close db, remove old db, move new to a new space */ public function finish() { $this->old_db->close(); $this->flushBatch(); $this->new_db->close(); self::rmtree($this->old_dir); rename($this->new_dir, $this->old_dir); } /** * Start batch operations */ private function startBatch() { if(!$this->wb) { $this->wb = new LevelDBWriteBatch(); $this->batch_count = 0; } } /** * write all data in a batch, reset batch */ public function flushBatch() { if ($this->wb) { $this->new_db->write($this->wb); $this->batch_count = 0; $this->wb = NULL; } } /** * Helper function to remove folder tree * @param $path */ public static function rmTree($path) { if (is_dir($path)) { foreach (scandir($path) as $name) { if (in_array($name, ['.', '..'])) { continue; } $subpath = $path.DIRECTORY_SEPARATOR . $name; self::rmTree($subpath); } rmdir($path); } else { unlink($path); } } public function getOldTsForRescan($freq, $limit) { $freq = $freq == 0 ? 1 : $freq; $i = 0; $k = 0; $timestamps = []; $first_key = false; $it = $this->old_db->getIterator(); $rewind_cnt = 0; for ($it->seek(random_bytes(1)), $i = 0; $i <= $limit; $it->next()) { if (!$it->valid()) { if ($rewind_cnt > 2) { // Empty base break; } $it->rewind(); $rewind_cnt++; } $key = $it->key(); if ($first_key === false) { $first_key = $key; } elseif ($first_key === $key) { break; } $value = $it->current(); if (!$value) { continue; } if (RapidScanStorageRecord::getVerdictFromValue($value) === RapidScanStorageRecord::RX_GOOD) { $i++; $timestamps[] = RapidScanStorageRecord::getTsFromValue($value); } } $it->destroy(); unset($it); sort($timestamps, SORT_NUMERIC); if ($i < $limit) { $limit = $i; $freq = 1; } $k = (int)($limit / $freq) - 1; return isset($timestamps[$k]) ? $timestamps[$k] : false; } public function getVersion() { return $this->db_ver; } private function getDbVersion() { if (!file_exists($this->old_dir . '/version.txt')) { return '0'; } return trim(file_get_contents($this->old_dir . '/version.txt')); } private function needMigrate() { if ($this->db_ver === '0') { return true; } return false; } private function migrateDb() { $options = [ 'create_if_missing' => true, 'compression' => LEVELDB_NO_COMPRESSION ]; $this->new_db = new LevelDB($this->new_dir, $options); $this->old_db = new LevelDB($this->old_dir, $options); $this->wb = NULL; // will be use to track writing to batch $this->batch_count = 0; $this->startBatch(); foreach($this->old_db->getIterator() as $key => $value) { $this->new_db->put(pack('P', (int)$key), $value); $this->batch_count++; if ($this->batch_count > 1000) { $this->flushBatch(); } } $this->flushBatch(); $this->storeVersion(); $this->finish(); } private function storeVersion() { file_put_contents($this->new_dir . '/version.txt', RapidScanStorage::DB_VERSION); } } /** * For work with Cloud Assisted Storage * @package Aibolit\Lib\Scantrack */ class CloudAssistedStorage { private $db_filepath = ''; public function __construct($folder) { if(!is_dir($folder) && !mkdir($folder) && !is_dir($folder)) { throw new Exception(sprintf('Directory "%s" was not created', $folder)); } $this->db_filepath = $folder . DIRECTORY_SEPARATOR . 'cloud_assisted_verdicts.json'; } public function getList() { if (!file_exists($this->db_filepath)) { return []; } $content = file_get_contents($this->db_filepath); if (!$content) { return []; } $list = json_decode($content, true); if (!$list || !is_array($list)) { return []; } return $list; } public function putList($list) { file_put_contents($this->db_filepath, json_encode($list)); } public function delete() { if (!file_exists($this->db_filepath)) { return; } unlink($this->db_filepath); } } /** * This is actual class that does account level scan * and remembers the state of scan * Class RapidAccountScan * @package Aibolit\Lib\Scantrack */ class RapidAccountScan { const RESCAN_ALL = 0; // mode of operation --> rescan all files that are not white/black/dual_use using cloud scanner & regex scanner const RESCAN_NONE = 1; // don't re-scan any files that we already scanned const RESCAN_SUSPICIOUS = 2; // only re-scan suspicious files using only regex scanner const MAX_BATCH = 1000; // max files to write in a db batch write const MAX_TO_SCAN = 1000; // max files to scan using cloud/rx scanner at a time private $db; private $cas_db; private $cas_list = []; private $vars = null; private $scanlist; private $collisions; private $processedFiles; private $rescan_count = 0; private $rescan_rx_good_count = 0; private $counter = 0; private $str_error = false; private $scanner = null; private $freq; private $old_rescan_ts = false; /** * RapidAccountScan constructor. * @param RapidScanStorage $rapidScanStorage */ public function __construct($scanner, $rapidScanStorage, $cloudAssistedStorage, &$vars, $counter = 0) { $this->db = $rapidScanStorage; $this->cas_db = $cloudAssistedStorage; $this->vars = $vars; $this->scanlist = []; $this->collisions = []; $this->processedFiles = 0; $this->counter = $counter; $this->scanner = $scanner; $this->freq = $vars->options['rapid-scan-rescan-frequency'] ?? false; if ($this->freq !== false) { $this->old_rescan_ts = $this->db->getOldTsForRescan($this->freq, 1000); } } /** * Get str error */ public function getStrError() { return $this->str_error; } /** * Get count of rescan(regexp) files */ public function getRescanCount() { return $this->rescan_count; } /** * Get count of rescan(regexp) RX_GOOD files */ public function getRescanRxGoodCount() { return $this->rescan_rx_good_count; } /** * placeholder for actual regex scan * return RX_GOOD, RX_MALWARE, RX_SUSPICIOUS and signature from regex scaner * if we got one */ private function regexScan($filename, $i, $vars) { $this->rescan_count++; printProgress(++$this->processedFiles, $filename, $vars); $return = $this->scanner->QCR_ScanFile($filename, $vars, null, $i, false); return $return; } /** * we will have batch of new files that we will scan * here we will write them into db once we scanned them * we need to check that there is no conflicts/collisions * in names, for that we check for data in db if such filename_hash * already exists, but we also keep set of filename_hashes of given * batch, to rule out conflicts in current batch as well */ private function writeNew() { $this->collisions = []; foreach ($this->scanlist as $fileinfo) { if (in_array($fileinfo->getKey(), $this->collisions) || $this->db->getNew($fileinfo->getKey())) { $fileinfo->setVerdict(RapidScanStorageRecord::CONFLICT); } $this->collisions [] = $fileinfo->getKey(); $this->db->put($fileinfo); } } /** * given a batch do cloudscan * @throws \Exception */ private function doCloudScan() { if (count($this->scanlist) <= 0) { return; } $index_table = []; $blackfiles = []; $sha_list = []; foreach ($this->scanlist as $i => $fileinfo) { $sha_list[] = bin2hex($fileinfo->getSha2()); $index_table[] = $i; $fileinfo->setVerdict(RapidScanStorageRecord::UNKNOWN); } $ca = Factory::instance()->create(CloudAssistedRequest::class, [CLOUD_ASSIST_TOKEN]); $white_raw = []; $black_raw = []; $verdicts_black_raw = []; try { list($white_raw, $black_raw, $verdicts_black_raw) = $ca->checkFilesByHash($sha_list); } catch (\Exception $e) { $this->str_error = $e->getMessage(); } $dual = array_intersect($white_raw, $black_raw); $black_raw = array_diff($black_raw, $white_raw); foreach ($white_raw as $index) { $this->scanlist[$index_table[$index]]->setVerdict(RapidScanStorageRecord::WHITE); } $signatures_db = []; foreach ($black_raw as $i => $index) { $this->scanlist[$index_table[$index]]->setVerdict(RapidScanStorageRecord::BLACK); $signature = isset($verdicts_black_raw[$i]) ? $verdicts_black_raw[$i] : ''; $signature_id = 'c_' . hash('crc32', $signature); $signatures_db[$signature_id] = $signature; $this->scanlist[$index_table[$index]]->setSignature($signature_id); $blackfiles[$this->scanlist[$index_table[$index]]->getFilename()] = [ 'h' => $sha_list[$index], 'ts' => time(), 'sn' => $signature, 'ras_sigid' => $signature_id, ]; } $signatures_list = $this->cas_db->getList(); foreach ($signatures_db as $hash => $sig) { $this->cas_list[$hash] = $sig; if (isset($signatures_list[$hash])) { continue; } $signatures_list[$hash] = $sig; } $this->cas_db->putList($signatures_list); foreach ($dual as $index) { $this->scanlist[$index_table[$index]]->setVerdict(RapidScanStorageRecord::DUAL_USE); $this->scanlist[$index_table[$index]]->setSignature('DUAL'); //later on we will get sig info from cloud } // we can now update verdicts in batch for those that we know //add entries to report, when needed $this->vars->blackFiles = array_merge($this->vars->blackFiles, $blackfiles); unset($white_raw, $black_raw, $dual, $sha_list, $index_table); } /** * regex scan a single file, add entry to report if needed * @param $fileInfo * @param $i */ private function _regexScan($fileInfo, $i, $vars) { $regex_res = $this->regexScan($fileInfo->getFilename(), $i, $vars); if (!is_array($regex_res)) { return; } list($result, $sigId, $snippet) = $regex_res; $fileInfo->setVerdict($result); $fileInfo->setScannedTs(time()); if ($result !== RapidScanStorageRecord::RX_GOOD || $result !== RapidScanStorageRecord::RX_SKIPPED_SMART) { $fileInfo->setSignature($sigId); $fileInfo->setSnippet($snippet); } } /** * regex scan batch of files. */ private function doRegexScan($vars) { foreach ($this->scanlist as $i => $fileinfo) { if (!in_array($fileinfo->getVerdict(), [ RapidScanStorageRecord::WHITE, RapidScanStorageRecord::BLACK, RapidScanStorageRecord::DUAL_USE ]) ) { $this->_regexScan($fileinfo, $i, $vars); } } } private function processScanList($vars) { $this->doCloudScan(); $this->doRegexScan($vars); $this->writeNew(); $this->scanlist = []; } private function scanFile($filename, $rescan, $i, $vars) { $rxgood_rescan = false; if ($vars->fileinfo !== null) { if($filename !== $vars->fileinfo->getFilename()) { unset($file); $vars->fileinfo = null; } } if ($vars->fileinfo == null) { $file = new FileInfo($filename, $i); $vars->fileinfo = $file; } $file = $vars->fileinfo; if (!file_exists($filename)) { return false; } $file = RapidScanStorageRecord::fromFile($file); $old_value = $this->db->getOld($file->getKey()); $old_scanned = 0; if ($old_value) { $old_scanned = $old_value->getScannedTs(); if ($file->getUpdatedTs() <= $old_scanned) { $file = $old_value; $file->setFilename($filename); } } if ($file->getVerdict() === RapidScanStorageRecord::UNKNOWN || $file->getVerdict() === RapidScanStorageRecord::CONFLICT || $file->getUpdatedTs() > $old_scanned ) { // these files has changed or we know nothing about them, lets re-calculate sha2 // and do full scan $file->calcSha2(); $file->setVerdict(RapidScanStorageRecord::NEWFILE); $this->scanlist[$i] = $file; } elseif ($file->getVerdict() === RapidScanStorageRecord::BLACK) { //these files hasn't changed, but need to be reported as they are on one of the lists $signature_id = $file->getSignature(); $signature = isset($this->cas_list[$signature_id]) ? $this->cas_list[$signature_id] : ''; $this->vars->blackFiles[$filename] = [ 'h' => bin2hex($file->getSha2()), 'ts' => time(), 'sn' => $signature, 'ras_sigid' => $signature_id, ]; $this->db->put($file); } elseif ($file->getVerdict() === RapidScanStorageRecord::DUAL_USE) { $this->db->put($file); } elseif (($rescan === self::RESCAN_SUSPICIOUS || $rescan === self::RESCAN_NONE) && $file->getVerdict() === RapidScanStorageRecord::RX_MALWARE ) { //this files were detected as rx malware before, let's report them $sigId = trim($file->getSignature(), "\0"); if (isset($sigId) && isset($vars->signs->_Mnemo[$sigId])) { $snippet = $file->getSnippet(); if (strtolower(pathinfo($filename, PATHINFO_EXTENSION)) == 'js') { $vars->criticalJS[] = $i; $vars->criticalJSFragment[] = $snippet; $vars->criticalJSSig[] = $sigId; } else { $vars->criticalPHP[] = $i; $vars->criticalPHPFragment[] = $snippet; $vars->criticalPHPSig[] = $sigId; } $this->scanner->AddResult($vars->fileinfo, $i, $vars); $this->db->put($file); } else { $this->scanlist[$i] = $file; } } elseif ($rescan === self::RESCAN_NONE && AI_EXTRA_WARN && $file->getVerdict() === RapidScanStorageRecord::RX_SUSPICIOUS ) { //this files were detected as rx suspicious before, let's report them $sigId = trim($file->getSignature(), "\0"); if (isset($sigId) && isset($vars->signs->_Mnemo[$sigId])) { $snippet = $file->getSnippet(); $vars->warningPHP[] = $i; $vars->warningPHPFragment[] = $snippet; $vars->warningPHPSig[] = $sigId; $this->scanner->AddResult($vars->fileinfo, $i, $vars); $this->db->put($file); } else { $this->scanlist[$i] = $file; } } elseif (( $rescan === self::RESCAN_ALL && in_array($file->getVerdict(), [ RapidScanStorageRecord::RX_SUSPICIOUS, RapidScanStorageRecord::RX_GOOD, RapidScanStorageRecord::RX_MALWARE ]) ) || ( $rescan === self::RESCAN_SUSPICIOUS && $file->getVerdict() === RapidScanStorageRecord::RX_SUSPICIOUS ) || ( $this->freq !== false && $this->old_rescan_ts !== false && $rescan === self::RESCAN_SUSPICIOUS && $file->getVerdict() === RapidScanStorageRecord::RX_GOOD && $old_scanned <= $this->old_rescan_ts && $rxgood_rescan = true ) ) { //rescan all mode, all none white/black/dual listed files need to be re-scanned fully if ($rxgood_rescan) { $this->rescan_rx_good_count++; } $this->scanlist[$i] = $file; } elseif (defined('USE_HEURISTICS') && $file->getVerdict() === RapidScanStorageRecord::HEURISTIC ) { //this files were detected as HEURISTIC before, let's report them as malware $sigId = trim($file->getSignature(), "\0"); $snippet = $file->getSnippet(); $vars->criticalPHP[] = $i; $vars->criticalPHPFragment[] = $snippet; $vars->criticalPHPSig[] = $sigId; $this->scanner->AddResult($vars->fileinfo, $i, $vars); $this->db->put($file); } elseif (defined('USE_HEURISTICS_SUSPICIOUS') && $file->getVerdict() === RapidScanStorageRecord::HEURISTIC ) { //this files were detected as HEURISTIC, let's report them as suspicious $sigId = trim($file->getSignature(), "\0"); $snippet = $file->getSnippet(); $vars->warningPHP[] = $i; $vars->warningPHPFragment[] = $snippet; $vars->warningPHPSig[] = $sigId; $this->scanner->AddResult($vars->fileinfo, $i, $vars); $this->db->put($file); } else { //in theory -- we should have only white files here... $this->db->put($file); } if (count($this->scanlist) >= self::MAX_TO_SCAN) { // our scan list is big enough // let's flush db, and scan the list $this->db->flushBatch(); $this->processScanList($vars); } if ($this->db->batch_count >= self::MAX_BATCH) { //we have added many entries to db, time to flush it $this->db->flushBatch(); $this->processScanList($vars); } unset($file); $vars->fileinfo = null; } public function scan($files, $vars, $rescan = self::RESCAN_SUSPICIOUS) { $i = 0; $this->cas_list = $this->cas_db->getList(); foreach ($files as $filepath) { $counter = $this->counter + $i; $vars->totalFiles++; $this->processedFiles = $counter - $vars->totalFolder - count($this->scanlist); printProgress($this->processedFiles, $filepath, $vars); $this->scanFile($filepath, $rescan, $counter, $vars); $i++; } if ($rescan == self::RESCAN_ALL) { $this->cas_db->delete(); $this->cas_list = []; foreach ($this->vars->blackFiles as $blackfile) { $this->cas_list[$blackfile['ras_sigid']] = $blackfile['sn']; } $this->cas_db->putList($this->cas_list); } //let's flush db again $this->db->flushBatch(); //process whatever is left in our scan list if (count($this->scanlist) > 0) { $this->processScanList($vars); } // whitelist $snum = 0; $list = $this->scanner->check_whitelist($vars->structure['crc'], $snum); $keys = [ 'criticalPHP', 'criticalJS', 'phishing', 'adwareList', 'warningPHP' ]; foreach ($keys as $p) { if (empty($vars->{$p})) { continue; } $p_Fragment = $p . 'Fragment'; $p_Sig = $p . 'Sig'; if ($p == 'phishing') { $p_Sig = $p . 'SigFragment'; } $count = count($vars->{$p}); for ($i = 0; $i < $count; $i++) { $id = $vars->{$p}[$i]; if ($vars->structure['crc'][$id] !== 0 && in_array($vars->structure['crc'][$id], $list)) { $rec = RapidScanStorageRecord::fromFile($vars->structure['n'][$id]); $rec->calcSha2(); $rec->setVerdict(RapidScanStorageRecord::RX_GOOD); $this->db->put($rec); unset($vars->{$p}[$i], $vars->{$p_Sig}[$i], $vars->{$p_Fragment}[$i]); } } $vars->{$p} = array_values($vars->{$p}); $vars->{$p_Fragment} = array_values($vars->{$p_Fragment}); if (!empty($vars->{$p_Sig})) { $vars->{$p_Sig} = array_values($vars->{$p_Sig}); } } //close databases and rename new into 'current' $this->db->finish(); } } /** * DbFolderSpecification class file. */ /** * Class DbFolderSpecification. * * It can be use for checking requirements for a folder that is used for storing a RapidScan DB. */ class DbFolderSpecification { /** * Check whether a particular folder satisfies requirements. * * @param string $folder * @return bool */ public function satisfiedBy($folder) { if (!file_exists($folder) || !is_dir($folder)) { return false; } $owner_id = (int)fileowner($folder); if (function_exists('posix_getpwuid')) { $owner = posix_getpwuid($owner_id); if (!isset($owner['name']) || $owner['name'] !== 'root') { return false; } } elseif ($owner_id != 0) { return false; } $perms = fileperms($folder); if (($perms & 0x0100) // owner r && ($perms & 0x0080) // owner w && ($perms & 0x0040) && !($perms & 0x0800) // owner x && !($perms & 0x0020) // group without r && !($perms & 0x0010) // group without w && (!($perms & 0x0008) || ($perms & 0x0400))// group without x && !($perms & 0x0004) // other without r && !($perms & 0x0002) // other without w && (!($perms & 0x0001) || ($perms & 0x0200))// other without x ) { return true; } return false; } } /** * CriticalFileSpecification class file. */ /** * Class CriticalFileSpecification. */ class CriticalFileSpecification { /** * @var array list of extension */ private $extensions = [ 'php', 'htaccess', 'cgi', 'pl', 'o', 'so', 'py', 'sh', 'phtml', 'php3', 'php4', 'php5', 'php6', 'php7', 'pht', 'shtml', 'susp', 'suspected', 'infected', 'vir', 'ico', 'js', 'json', 'com', '' ]; private $js_extensions = [ 'js', 'json', 'html', 'htm', 'suspicious' ]; private $phish_extensions = [ 'js', 'html', 'htm', 'suspected', 'php', 'phtml', 'pht', 'php7' ]; private $critical_content = '^\s*<\?php' . '|^\s*<\?=' . '|^#!/usr' . '|^#!/bin' . '|\beval' . '|\briny' . '|assert' . '|base64_decode' . '|\bsystem' . '|create_function' . '|\bexec' . '|\bpopen' . '|\bfwrite' . '|\bfputs' . '|file_get_' . '|call_user_func' . '|file_put_' . '|\$_REQUEST' . '|ob_start' . '|\$_GET' . '|\$_POST' . '|\$_SERVER' . '|\$_FILES' . '|\bmove' . '|\bcopy' . '|\barray_' . '|reg_replace' . '|\bmysql_' . '|\bchr' . '|fsockopen' . '|\$GLOBALS' . '|sqliteCreateFunction' . '|EICAR-STANDARD-ANTIVIRUS-TEST-FILE' . '|RewriteCond'; private $critical_js_content = '<script' . '|<iframe' . '|<object' . '|<embed' . '|fromCharCode' . '|setTimeout' . '|setInterval' . '|location\.' . '|document\.' . '|window\.' . '|navigator\.' . '|\$(this)\.'; /**$g_VirusEntries**/ private $critical_phish_content = '<\s*title' . '|<\s*html' . '|<\s*form' . '|<\s*body' . '|bank' . '|account'; /**$g_PhishEntries*/ public function __construct() { //$this->extensions = array_flip($this->extensions); //$this->js_extensions = array_flip($this->js_extensions); //$this->phish_extensions = array_flip($this->phish_extensions); $this->extensions = array_flip(array_merge($this->extensions, $this->js_extensions, $this->phish_extensions)); $this->critical_content = implode('|', [$this->critical_content, $this->critical_js_content, $this->critical_phish_content]); } /** * Check whether a particular file with specified extension is critical. * * @param string $ext * @param string $type * @return bool */ public function satisfiedBy($ext, $type) { //return isset($this->{$type}[$ext]); return isset($this->extensions[$ext]); } /** * Check whether a particular content is critical. * * @param string $content * @param string $type * @return bool */ public function satisfiedByContent($content, $type) { //return preg_match('~' . $this->{$type} . '~smiS', $content, $l_Found) ? true : false; return preg_match('~' . $this->critical_content . '~smiS', $content, $l_Found) ? true : false; } } class Helpers { public static function normalize($string, $save_length = false) { $search = [ ' ;', ' =', ' ,', ' .', ' (', ' )', ' {', ' }', '; ', '= ', ', ', '. ' , '( ', '( ', '{ ', '} ', ' !', ' >', ' <', ' _', '_ ', '< ', '> ', ' $', ' %', '% ' , '# ', ' #', '^ ', ' ^', ' &', '& ', ' ?', '? ']; $replace = [ ';', '=', ',', '.', '(', ')', '{', '}', ';', '=', ',', '.' , '(', ')', '{', '}', '!', '>', '<', '_', '_', '<', '>', '$', '%', '%' , '#', '#', '^', '^', '&', '&', '?', '?']; if (!$save_length) { $string = str_replace('@', '', $string); $string = preg_replace('~\s+~smi', ' ', $string); $string = str_replace($search, $replace, $string); } $string = preg_replace_callback('~\bchr\(\s*([0-9a-fA-FxX]+)\s*\)~', function($m) use ($save_length) { if ($save_length) { return str_pad("'" . @chr(intval($m[1], 0)) . "'", strlen($m[0]), ' '); } else { return "'" . @chr(intval($m[1], 0)) . "'"; } }, $string); $string = preg_replace_callback('/\&\#([0-9]{1,3});/i', function($m) use ($save_length) { if ($save_length) { return str_pad(@chr((int)$m[1]), strlen($m[0]), ' '); } else { return @chr((int)$m[1]); } }, $string); $string = preg_replace_callback('/\\\\x([a-fA-F0-9]{1,2})/i', function($m) use ($save_length) { if ($save_length) { return str_pad(chr(@hexdec($m[1])), strlen($m[0]), ' '); } else { return @chr(hexdec($m[1])); } }, $string); $string = preg_replace_callback('/\\\\([0-9]{1,3})/i', function($m) use ($save_length) { if ($save_length) { return str_pad(@chr(octdec($m[1])), strlen($m[0]), ' '); } else { return @chr(octdec($m[1])); } }, $string); $string = preg_replace_callback('/[\'"]\s*?\.+\s*?[\'"]/smi', function($m) use ($save_length) { if ($save_length) { return str_repeat(' ', strlen($m[0])); } else { return ''; } }, $string); $string = preg_replace_callback('/[\'"]\s*?\++\s*?[\'"]/smi', function($m) use ($save_length) { if ($save_length) { return str_repeat(' ', strlen($m[0])); } else { return ''; } }, $string); if (!$save_length) { $string = str_replace('<?php', '<?php ', $string); $string = preg_replace('~\s+~', ' ', $string); } return $string; } public static function format($source) { $t_count = 0; $in_object = false; $in_at = false; $in_php = false; $in_for = false; $in_comp = false; $in_quote = false; $in_var = false; if (!defined('T_ML_COMMENT')) { define('T_ML_COMMENT', T_COMMENT); } $result = ''; @$tokens = token_get_all($source); foreach ($tokens as $token) { if (is_string($token)) { $token = trim($token); if ($token == '{') { if ($in_for) { $in_for = false; } if (!$in_quote && !$in_var) { $t_count++; $result = rtrim($result) . ' ' . $token . "\n" . str_repeat(' ', $t_count); } else { $result = rtrim($result) . $token; } } elseif ($token == '$') { $in_var = true; $result .= $token; } elseif ($token == '}') { if (!$in_quote && !$in_var) { $new_line = true; $t_count--; if ($t_count < 0) { $t_count = 0; } $result = rtrim($result) . "\n" . str_repeat(' ', $t_count) . $token . "\n" . @str_repeat(' ', $t_count); } else { $result = rtrim($result) . $token; } if ($in_var) { $in_var = false; } } elseif ($token == ';') { if ($in_comp) { $in_comp = false; } if ($in_for) { $result .= $token . ' '; } else { $result .= $token . "\n" . str_repeat(' ', $t_count); } } elseif ($token == ':') { if ($in_comp) { $result .= ' ' . $token . ' '; } else { $result .= $token . "\n" . str_repeat(' ', $t_count); } } elseif ($token == '(') { $result .= ' ' . $token; } elseif ($token == ')') { $result .= $token; } elseif ($token == '@') { $in_at = true; $result .= $token; } elseif ($token == '.') { $result .= ' ' . $token . ' '; } elseif ($token == '=') { $result .= ' ' . $token . ' '; } elseif ($token == '?') { $in_comp = true; $result .= ' ' . $token . ' '; } elseif ($token == '"') { if ($in_quote) { $in_quote = false; } else { $in_quote = true; } $result .= $token; } else { $result .= $token; } } else { list($id, $text) = $token; switch ($id) { case T_OPEN_TAG: case T_OPEN_TAG_WITH_ECHO: $in_php = true; $result .= trim($text) . "\n"; break; case T_CLOSE_TAG: $in_php = false; $result .= trim($text); break; case T_FOR: $in_for = true; $result .= trim($text); break; case T_OBJECT_OPERATOR: $result .= trim($text); $in_object = true; break; case T_ENCAPSED_AND_WHITESPACE: case T_WHITESPACE: $result .= trim($text); break; case T_RETURN: $result = rtrim($result) . "\n" . str_repeat(' ', $t_count) . trim($text) . ' '; break; case T_ELSE: case T_ELSEIF: $result = rtrim($result) . ' ' . trim($text) . ' '; break; case T_CASE: case T_DEFAULT: $result = rtrim($result) . "\n" . str_repeat(' ', $t_count - 1) . trim($text) . ' '; break; case T_FUNCTION: case T_CLASS: $result .= "\n" . str_repeat(' ', $t_count) . trim($text) . ' '; break; case T_AND_EQUAL: case T_AS: case T_BOOLEAN_AND: case T_BOOLEAN_OR: case T_CONCAT_EQUAL: case T_DIV_EQUAL: case T_DOUBLE_ARROW: case T_IS_EQUAL: case T_IS_GREATER_OR_EQUAL: case T_IS_IDENTICAL: case T_IS_NOT_EQUAL: case T_IS_NOT_IDENTICAL: case T_LOGICAL_AND: case T_LOGICAL_OR: case T_LOGICAL_XOR: case T_MINUS_EQUAL: case T_MOD_EQUAL: case T_MUL_EQUAL: case T_OR_EQUAL: case T_PLUS_EQUAL: case T_SL: case T_SL_EQUAL: case T_SR: case T_SR_EQUAL: case T_START_HEREDOC: case T_XOR_EQUAL: $result = rtrim($result) . ' ' . trim($text) . ' '; break; case T_COMMENT: $result = rtrim($result) . "\n" . str_repeat(' ', $t_count) . trim($text) . ' '; break; case T_ML_COMMENT: $result = rtrim($result) . "\n"; $lines = explode("\n", $text); foreach ($lines as $line) { $result .= str_repeat(' ', $t_count) . trim($line); } $result .= "\n"; break; case T_INLINE_HTML: $result .= $text; break; default: $result .= trim($text); break; } } } return $result; } public static function replaceCreateFunction($str) { $hangs = 20; while (strpos($str, 'create_function') !== false && $hangs--) { $start_pos = strpos($str, 'create_function'); $end_pos = 0; $brackets = 0; $started = false; $opened = 0; $closed = 0; for ($i = $start_pos, $iMax = strlen($str); $i < $iMax; $i++) { if ($str[$i] == '(') { $started = true; $brackets++; $opened++; } else if ($str[$i] == ')') { $closed++; $brackets--; } if ($brackets == 0 && $started) { $end_pos = $i + 1; break; } } $cr_func = substr($str, $start_pos, $end_pos - $start_pos); $func = implode('function(', explode('create_function(\'', $cr_func, 2)); //$func = substr_replace('create_function(\'', 'function(', $cr_func); //$func = str_replace('\',\'', ') {', $func); $func = implode(') {', explode('\',\'', $func, 2)); $func = substr($func, 0, -2) . '}'; $str = str_replace($cr_func, $func, $str); } return $str; } public static function calc($expr) { if (is_array($expr)) { $expr = $expr[0]; } preg_match('~(chr|min|max|round)?\(([^\)]+)\)~msi', $expr, $expr_arr); if (@$expr_arr[1] == 'min' || @$expr_arr[1] == 'max') { return $expr_arr[1](explode(',', $expr_arr[2])); } elseif (@$expr_arr[1] == 'chr') { if ($expr_arr[2][0] === '(') { $expr_arr[2] = substr($expr_arr[2], 1); } $expr_arr[2] = self::calc($expr_arr[2]); return $expr_arr[1](intval($expr_arr[2])); } elseif (@$expr_arr[1] == 'round') { $expr_arr[2] = self::calc($expr_arr[2]); return $expr_arr[1]($expr_arr[2]); } else { preg_match_all('~([\d\.a-fx]+)([\*\/\-\+\^\|\&])?~', $expr, $expr_arr); foreach ($expr_arr[1] as &$expr_arg) { if (strpos($expr_arg, "0x")!==false) { $expr = str_replace($expr_arg, hexdec($expr_arg), $expr); $expr_arg = hexdec($expr_arg); } } if (in_array('*', $expr_arr[2]) !== false) { $pos = array_search('*', $expr_arr[2]); $res = $expr_arr[1][$pos] * $expr_arr[1][$pos + 1]; $pos_subst = strpos($expr, $expr_arr[1][$pos] . '*' . $expr_arr[1][$pos + 1]); $expr = substr_replace($expr, $res, $pos_subst, strlen($expr_arr[1][$pos] . '*' . $expr_arr[1][$pos + 1])); $expr = self::calc($expr); } elseif (in_array('/', $expr_arr[2]) !== false) { $pos = array_search('/', $expr_arr[2]); $res = $expr_arr[1][$pos] / $expr_arr[1][$pos + 1]; $pos_subst = strpos($expr, $expr_arr[1][$pos] . '/' . $expr_arr[1][$pos + 1]); $expr = substr_replace($expr, $res, $pos_subst, strlen($expr_arr[1][$pos] . '/' . $expr_arr[1][$pos + 1])); $expr = self::calc($expr); } elseif (in_array('-', $expr_arr[2]) !== false) { $pos = array_search('-', $expr_arr[2]); $res = $expr_arr[1][$pos] - $expr_arr[1][$pos + 1]; $pos_subst = strpos($expr, $expr_arr[1][$pos] . '-' . $expr_arr[1][$pos + 1]); $expr = substr_replace($expr, $res, $pos_subst, strlen($expr_arr[1][$pos] . '-' . $expr_arr[1][$pos + 1])); $expr = self::calc($expr); } elseif (in_array('+', $expr_arr[2]) !== false) { $pos = array_search('+', $expr_arr[2]); $res = $expr_arr[1][$pos] + $expr_arr[1][$pos + 1]; $pos_subst = strpos($expr, $expr_arr[1][$pos] . '+' . $expr_arr[1][$pos + 1]); $expr = substr_replace($expr, $res, $pos_subst, strlen($expr_arr[1][$pos] . '+' . $expr_arr[1][$pos + 1])); $expr = self::calc($expr); } elseif (in_array('^', $expr_arr[2]) !== false) { $pos = array_search('^', $expr_arr[2]); $res = $expr_arr[1][$pos] ^ $expr_arr[1][$pos + 1]; $pos_subst = strpos($expr, $expr_arr[1][$pos] . '^' . $expr_arr[1][$pos + 1]); $expr = substr_replace($expr, $res, $pos_subst, strlen($expr_arr[1][$pos] . '^' . $expr_arr[1][$pos + 1])); $expr = self::calc($expr); } elseif (in_array('|', $expr_arr[2]) !== false) { $pos = array_search('|', $expr_arr[2]); $res = $expr_arr[1][$pos] | $expr_arr[1][$pos + 1]; $pos_subst = strpos($expr, $expr_arr[1][$pos] . '|' . $expr_arr[1][$pos + 1]); $expr = substr_replace($expr, $res, $pos_subst, strlen($expr_arr[1][$pos] . '|' . $expr_arr[1][$pos + 1])); $expr = self::calc($expr); } elseif (in_array('&', $expr_arr[2]) !== false) { $pos = array_search('&', $expr_arr[2]); $res = $expr_arr[1][$pos] & $expr_arr[1][$pos + 1]; $pos_subst = strpos($expr, $expr_arr[1][$pos] . '&' . $expr_arr[1][$pos + 1]); $expr = substr_replace($expr, $res, $pos_subst, strlen($expr_arr[1][$pos] . '&' . $expr_arr[1][$pos + 1])); $expr = self::calc($expr); } else { return $expr; } return $expr; } } public static function getEvalCode($string) { preg_match("/eval\(([^\)]+)\)/msi", $string, $matches); return (empty($matches)) ? '' : end($matches); } public static function getTextInsideQuotes($string) { if (preg_match_all('/("(.*)")/msi', $string, $matches)) { return @end(end($matches)); } elseif (preg_match_all('/\((\'(.*)\')/msi', $string, $matches)) { return @end(end($matches)); } else { return ''; } } public static function getNeedles($string) { preg_match_all("/'(.*?)'/msi", $string, $matches); return (empty($matches)) ? [] : $matches[1]; } public static function getHexValues($string) { preg_match_all('/0x[a-fA-F0-9]{1,8}/msi', $string, $matches); return (empty($matches)) ? [] : $matches[0]; } public static function formatPHP($string) { $string = str_replace('<?php', '', $string); $string = str_replace('?>', '', $string); $string = str_replace(PHP_EOL, "", $string); $string = str_replace(";", ";\n", $string); $string = str_replace("}", "}\n", $string); return $string; } public static function detect_utf_encoding($text) { $first2 = substr($text, 0, 2); $first3 = substr($text, 0, 3); $first4 = substr($text, 0, 4); if ($first4 == chr(0x00) . chr(0x00) . chr(0xFE) . chr(0xFF)) { return 'UTF-32BE'; } elseif ($first4 == chr(0xFF) . chr(0xFE) . chr(0x00) . chr(0x00)) { return 'UTF-32LE'; } elseif ($first2 == chr(0xFE) . chr(0xFF)) { return 'UTF-16BE'; } elseif ($first2 == chr(0xFF) . chr(0xFE)) { return 'UTF-16LE'; } return false; } //from sample_16 public static function someDecoder($str) { $str = base64_decode($str); $TC9A16C47DA8EEE87 = 0; $TA7FB8B0A1C0E2E9E = 0; $T17D35BB9DF7A47E4 = 0; $T65CE9F6823D588A7 = (ord($str[1]) << 8) + ord($str[2]); $i = 3; $T77605D5F26DD5248 = 0; $block = 16; $T7C7E72B89B83E235 = ""; $T43D5686285035C13 = ""; $len = strlen($str); $T6BBC58A3B5B11DC4 = 0; for (; $i < $len;) { if ($block == 0) { $T65CE9F6823D588A7 = (ord($str[$i++]) << 8); $T65CE9F6823D588A7 += ord($str[$i++]); $block = 16; } if ($T65CE9F6823D588A7 & 0x8000) { $TC9A16C47DA8EEE87 = (ord($str[$i++]) << 4); $TC9A16C47DA8EEE87 += (ord($str[$i]) >> 4); if ($TC9A16C47DA8EEE87) { $TA7FB8B0A1C0E2E9E = (ord($str[$i++]) & 0x0F) + 3; for ($T17D35BB9DF7A47E4 = 0; $T17D35BB9DF7A47E4 < $TA7FB8B0A1C0E2E9E; $T17D35BB9DF7A47E4++) { $T7C7E72B89B83E235[$T77605D5F26DD5248 + $T17D35BB9DF7A47E4] = $T7C7E72B89B83E235[$T77605D5F26DD5248 - $TC9A16C47DA8EEE87 + $T17D35BB9DF7A47E4]; } $T77605D5F26DD5248 += $TA7FB8B0A1C0E2E9E; } else { $TA7FB8B0A1C0E2E9E = (ord($str[$i++]) << 8); $TA7FB8B0A1C0E2E9E += ord($str[$i++]) + 16; for ($T17D35BB9DF7A47E4 = 0; $T17D35BB9DF7A47E4 < $TA7FB8B0A1C0E2E9E; $T7C7E72B89B83E235[$T77605D5F26DD5248 + $T17D35BB9DF7A47E4++] = $str[$i]) { } $i++; $T77605D5F26DD5248 += $TA7FB8B0A1C0E2E9E; } } else { $T7C7E72B89B83E235[$T77605D5F26DD5248++] = $str[$i++]; } $T65CE9F6823D588A7 <<= 1; $block--; if ($i == $len) { $T43D5686285035C13 = $T7C7E72B89B83E235; if (is_array($T43D5686285035C13)) { $T43D5686285035C13 = implode($T43D5686285035C13); } $T43D5686285035C13 = "?" . ">" . $T43D5686285035C13; return $T43D5686285035C13; } } } // public static function someDecoder2($WWAcmoxRAZq, $sBtUiFZaz) //sample_05 { $JYekrRTYM = str_rot13(gzinflate(str_rot13(base64_decode('y8svKCwqLiktK6+orFdZV0FWWljPyMzKzsmNNzQyNjE1M7ewNAAA')))); if ($WWAcmoxRAZq == 'asedferg456789034689gd') { $cEerbvwKPI = $JYekrRTYM[18] . $JYekrRTYM[19] . $JYekrRTYM[17] . $JYekrRTYM[17] . $JYekrRTYM[4] . $JYekrRTYM[21]; return $cEerbvwKPI($sBtUiFZaz); } elseif ($WWAcmoxRAZq == 'zfcxdrtgyu678954ftyuip') { $JWTDeUKphI = $JYekrRTYM[1] . $JYekrRTYM[0] . $JYekrRTYM[18] . $JYekrRTYM[4] . $JYekrRTYM[32] . $JYekrRTYM[30] . $JYekrRTYM[26] . $JYekrRTYM[3] . $JYekrRTYM[4] . $JYekrRTYM[2] . $JYekrRTYM[14] . $JYekrRTYM[3] . $JYekrRTYM[4]; return $JWTDeUKphI($sBtUiFZaz); } elseif ($WWAcmoxRAZq == 'gyurt456cdfewqzswexcd7890df') { $rezmMBMev = $JYekrRTYM[6] . $JYekrRTYM[25] . $JYekrRTYM[8] . $JYekrRTYM[13] . $JYekrRTYM[5] . $JYekrRTYM[11] . $JYekrRTYM[0] . $JYekrRTYM[19] . $JYekrRTYM[4]; return $rezmMBMev($sBtUiFZaz); } elseif ($WWAcmoxRAZq == 'zcdfer45dferrttuihvs4321890mj') { $WbbQXOQbH = $JYekrRTYM[18] . $JYekrRTYM[19] . $JYekrRTYM[17] . $JYekrRTYM[26] . $JYekrRTYM[17] . $JYekrRTYM[14] . $JYekrRTYM[19] . $JYekrRTYM[27] . $JYekrRTYM[29]; return $WbbQXOQbH($sBtUiFZaz); } elseif ($WWAcmoxRAZq == 'zsedrtre4565fbghgrtyrssdxv456') { $jPnPLPZcMHgH = $JYekrRTYM[2] . $JYekrRTYM[14] . $JYekrRTYM[13] . $JYekrRTYM[21] . $JYekrRTYM[4] . $JYekrRTYM[17] . $JYekrRTYM[19] . $JYekrRTYM[26] . $JYekrRTYM[20] . $JYekrRTYM[20] . $JYekrRTYM[3] . $JYekrRTYM[4] . $JYekrRTYM[2] . $JYekrRTYM[14] . $JYekrRTYM[3] . $JYekrRTYM[4]; return $jPnPLPZcMHgH($sBtUiFZaz); } } public static function someDecoder3($str) { $l = base64_decode($str); $lllllll = 0; $lllll = 3; $llllll = (ord($l[1]) << 8) + ord($l[2]); $lllllllll = 16; $llllllll = []; for ($lllllMax = strlen($l); $lllll < $lllllMax;) { if ($lllllllll == 0) { $llllll = (ord($l[$lllll++]) << 8); $llllll+= ord($l[$lllll++]); $lllllllll = 16; } if ($llllll & 0x8000) { $lll = (ord($l[$lllll++]) << 4); $lll+= (ord($l[$lllll]) >> 4); if ($lll) { $ll = (ord($l[$lllll++]) & 0x0f) + 3; for ($llll = 0;$llll < $ll;$llll++) $llllllll[$lllllll + $llll] = $llllllll[$lllllll - $lll + $llll]; $lllllll+= $ll; } else { $ll = (ord($l[$lllll++]) << 8); $ll+= ord($l[$lllll++]) + 16; for ($llll = 0;$llll < $ll;$llllllll[$lllllll + $llll++] = ord($l[$lllll])); $lllll++; $lllllll+= $ll; } } else { $llllllll[$lllllll++] = ord($l[$lllll++]); } $llllll <<= 1; $lllllllll--; } $lllll = 0; $lllllllll="?".chr(62); $llllllllll = ""; for (;$lllll < $lllllll;) { $llllllllll.= chr($llllllll[$lllll++] ^ 0x07); } $lllllllll.=$llllllllll.chr(60)."?"; return $lllllllll; } public static function PHPJiaMi_decoder($str, $md5, $rand, $lower_range = '') { $md5_xor = md5($md5); $lower_range = !$lower_range ? ord($rand) : $lower_range; $layer1 = ''; for ($i=0, $iMax = strlen($str); $i < $iMax; $i++) { $layer1 .= ord($str[$i]) < 245 ? ((ord($str[$i]) > $lower_range && ord($str[$i]) < 245) ? chr(ord($str[$i]) / 2) : $str[$i]) : ''; } $layer1 = base64_decode($layer1); $result = ''; $j = $len_md5_xor = strlen($md5_xor); for ($i=0, $iMax = strlen($layer1); $i < $iMax; $i++) { $j = $j ? $j : $len_md5_xor; $j--; $result .= $layer1[$i] ^ $md5_xor[$j]; } return $result; } public static function someDecoder4($ae, $key) { $at = []; for ($i = 0, $iMax = strlen($key); $i < $iMax; $i++) { if ((int)$key[$i] > 0) { $at[$i] = $key[$i]; } } $at = array_values($at); $str = ""; for ($i = 0, $iMax = count($ae); $i < $iMax; $i++) { if ($i < count($ae) - 1) { $str .= str_replace(md5($at[$i]), "", $ae[$i]); } else { $str .= $ae[$i]; } } return $str; } public static function OELoveDecoder($arg1, $arg2 = '') { if (empty($arg1)) { return ''; } $arg1 = base64_decode($arg1); if ($arg2 == '') return ~$arg1; //if ($arg2 == '-1') @271552362217(); $len = strlen($arg1); $arg2 = str_pad($arg2, $len, $arg2); return $arg2 ^ $arg1; } public static function decodeEvalFuncBinary($input) { if (empty($input)) { return; } $keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; $chr1 = $chr2 = $chr3 = ""; $enc1 = $enc2 = $enc3 = $enc4 = ""; $i = 0; $output = ""; $input = preg_replace("[^A-Za-z0-9\+\/\=]", "", $input); do { $enc1 = strpos($keyStr, substr($input, $i++, 1)); $enc2 = strpos($keyStr, substr($input, $i++, 1)); $enc3 = strpos($keyStr, substr($input, $i++, 1)); $enc4 = strpos($keyStr, substr($input, $i++, 1)); $chr1 = ($enc1 << 2) | ($enc2 >> 4); $chr2 = (($enc2 & 15) << 4) | ($enc3 >> 2); $chr3 = (($enc3 & 3) << 6) | $enc4; $output = $output . chr((int)$chr1); if ($enc3 != 64) { $output = $output . chr((int)$chr2); } if ($enc4 != 64) { $output = $output . chr((int)$chr3); } $chr1 = $chr2 = $chr3 = ""; $enc1 = $enc2 = $enc3 = $enc4 = ""; } while ($i < strlen($input)); return $output; } public static function stripsquoteslashes($str) { $res = ''; for ($i = 0, $iMax = strlen($str); $i < $iMax; $i++) { if (isset($str[$i+1]) && ($str[$i] == '\\' && ($str[$i+1] == '\\' || $str[$i+1] == '\''))) { continue; } else { $res .= $str[$i]; } } return $res; } public static function isSafeFunc($str) { $safeFuncs = [ 'base64_decode', 'gzinflate', 'gzuncompress', 'strrev', 'strlen', 'str_rot13', 'urldecode', 'rawurldecode', 'stripslashes', 'chr', 'htmlspecialchars_decode', 'convert_uudecode','pack', 'ord', 'str_repeat', 'sprintf', 'str_replace', 'strtr', 'hex2bin' ]; return in_array(strtolower($str), $safeFuncs); } public static function aanKFMDigitsDecode($digits) { $res = ''; $len = ceil(strlen($digits) / 3) * 3; $cipher = str_pad($digits, $len, '0', STR_PAD_LEFT); for ($i = 0; $i < (strlen($cipher) / 3);$i++) { $res .= chr(substr(strval($cipher), $i * 3, 3)); } return $res; } public static function obf20200414_1_decrypt($data, $key) { $key = md5($key); $x = 0; $data = base64_decode($data); $len = strlen($data); $l = strlen($key); $char = ''; for ($i = 0; $i < $len; $i++) { if ($x == $l) { $x = 0; } $char .= substr($key, $x, 1); $x++; } $str = ''; for ($i = 0; $i < $len; $i++) { if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1))) { $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1))); } else { $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1))); } } return $str; } public static function Xtea_decrypt($text, $key) { $_key = ''; $cbc = 1; if(is_array($key)) { $_key = $key; } else if(isset($key) && !empty($key)) { $_key = self::_str2long(str_pad($key, 16, $key)); } else { $_key = [0, 0, 0, 0]; } $plain = []; $cipher = self::_str2long(base64_decode($text)); if($cbc == 1) { $i = 2; } else { $i = 0; } for ($i, $iMax = count($cipher); $i < $iMax; $i += 2) { $return = self::block_decrypt($cipher[$i], $cipher[$i+1], $_key); if($cbc == 1) { $plain[] = [$return[0] ^ $cipher[$i - 2], $return[1] ^ $cipher[$i - 1]]; } else { $plain[] = $return; } } $output = ""; for($i = 0, $iMax = count($plain); $i < $iMax; $i++) { $output .= self::_long2str($plain[$i][0]); $output .= self::_long2str($plain[$i][1]); } return $output; } public static function calculateMathStr($task) { $res = $task; while (preg_match('~\(?(\d+)\s?([+\-*\/])\s?(\d+)\)?~', $res, $subMatch)) { if (count($subMatch) === 4) { $subSearch = $subMatch[0]; $operator = $subMatch[2]; $number_1 = $subMatch[1]; $number_2 = $subMatch[3]; $res = str_replace($subSearch, self::calc("$number_1$operator$number_2"), $res); } else { return $res; } } return $res; } public static function decrypt_T_func($l) { $x2 = 256; $W2 = 8; $cY = []; $I3 = 0; $C4 = 0; for ($bs = 0; $bs < strlen($l); $bs++) { $I3 = ($I3 << 8) + ord($l[$bs]); $C4 += 8; if ($C4 >= $W2) { $C4 -= $W2; $cY[] = $I3 >> $C4; $I3 &= (1 << $C4) - 1; $x2++; if ($x2 >> $W2) { $W2++; } } } $K5 = range("\x0", "\377"); $UH = ''; foreach ($cY as $bs => $xd) { if (!isset($K5[$xd])) { $iU = $Co . $Co[0]; } else { $iU = $K5[$xd]; } $UH .= $iU; if ($bs) { $K5[] = $Co . $iU[0]; } $Co = $iU; } return $UH; } public static function getDecryptKeyForTinkleShell($size) { $bx = md5(base64_encode($size)); $len = strlen($bx); $arr = []; for ($i = 0; $i < $len; $i++) { $arr[] = substr($bx, $i, 1); } $arr = array_unique($arr); $newstr = ""; foreach ($arr as $k => $v) { $newstr .= $v; } if (strlen($newstr) < 9) { if (strpos($newstr, 'A') === false) { $newstr .= 'A'; } if (strpos($newstr, 'B') === false) { $newstr .= 'B'; } if (strpos($newstr, 'C') === false) { $newstr .= 'C'; } if (strpos($newstr, 'D') === false) { $newstr .= 'D'; } if (strpos($newstr, 'E') === false) { $newstr .= 'E'; } if (strpos($newstr, 'F') === false) { $newstr .= 'F'; } if (strpos($newstr, 'G') === false) { $newstr .= 'G'; } } return strtoupper($newstr); } /** * For 4 args * @param array $arr * * @return string */ public static function decodeEvalCreateFunc_1(array $arr) : string { $args = $arr; for ($i = 0; $i < 4; $i++) { for ($j = 0; $j < strlen($args[$i]); $j++) { $args[$i][$j] = chr(ord($args[$i][$j]) - ($i ? $args[$j xor $j] : 1)); } if ($i == 2 && self::isSafeFunc($args[1]) && self::isSafeFunc($args[2])) { $args[3] = @$args[1](@$args[2]($args[3])); } } return $args[3]; } /** * For 3 args * @param array $arr * * @return string */ public static function decodeEvalCreateFunc_2(array $arr) : string { $args = $arr; for ($i = 0; $i < 3; $i++) { for ($j = 0; $j < strlen($args[$i]); $j++) { $args[$i][$j] = chr(ord($args[$i][$j]) - 1); } if ($i == 1 && self::isSafeFunc($args[0]) && self::isSafeFunc($args[1])) { $args[2] = @$args[0](@$args[1]($args[2])); } } return $args[2]; } /** * @param string $key * @param string $data * * @return string */ public static function decodeFuncVars(string $key, string $data): string { $hakfku = $data; $keyLen = strlen($key); $dataLen = strlen($hakfku); $res = ""; for ($i = 0; $i < $dataLen;) { for ($j = 0; ($j < $keyLen && $i < $dataLen); $j++, $i++) { $res .= $hakfku[$i] ^ $key[$j]; } } return $res; } /** * @param string $dictionary * @param string $content * * @return array */ public static function getVarsFromDictionary($dictionary, $content) : array { $vars = []; preg_match_all('~(\$(?:[^\w]+|\w+)\s*=(\s?\.?\s?\$(?:[^\w]+|\w+)[{\[]\d+[\]}])+)~msi', $content, $concatMatches); for ($i = 0; $iMax = count($concatMatches[0]), $i <= $iMax; $i++) { preg_match_all('~(\$(?:[^\w]+|\w+)(=))?(\s?(\.?)\s?\$(?:[^\w]+|\w+)[{\[](\d+)[\]}])~msi', $concatMatches[0][$i], $varMatches); for ($j = 0; $jMax = count($varMatches[0]), $j < $jMax; $j++) { $varName = substr($varMatches[1][0], 0, -1); $value = $dictionary[(int)$varMatches[5][$j]] ?? ''; if ($varMatches[2][$j] === '=') { $vars[$varName] = $value; } else { $vars[$varName] .= $value; } } } return $vars; } /** * @param array $vars * @param string $content * * @return array */ public static function getVarsFromDictionaryDynamically(array &$vars = [], string $content = ''): array { preg_match_all('~(\$\w+)(\.)?\s?=\s?(?:\$\w+[{\[]?\d+[}\]]?\.?)+;~msi', $content, $varsMatches, PREG_SET_ORDER); foreach ($varsMatches as $varsMatch) { preg_match_all('~(\$\w+)[{\[]?(\d+)?[}\]]?~msi', $varsMatch[0], $subVarsMatches, PREG_SET_ORDER); $concat = ''; foreach ($subVarsMatches as $subVarsMatch) { if (isset($subVarsMatch[2])) { $concat .= $vars[$subVarsMatch[1]][(int)$subVarsMatch[2]] ?? ''; } else if ($varsMatch[1] !== $subVarsMatch[1]) { $concat .= $vars[$subVarsMatch[1]]; } } if (isset($vars[$varsMatch[1]])) { $vars[$varsMatch[1]] .= $concat; } else { $vars[$varsMatch[1]] = $concat; } } return $vars; } /** * @param string $str * @return string */ public static function concatVariableValues($str) : string { preg_match_all('/\$\w+\s?(\.?)=\s?"([\w=\+\/]+)"/', $str, $concatVars); $strVar = ""; foreach ($concatVars[2] as $index => $concatVar) { if ($concatVars[1][$index] === '.') { $strVar .= $concatVar; } else { $strVar = $concatVar; } } return $strVar; } /** * Concats simple str without variable * * @param string $str * @return string */ public static function concatStr($str) : string { preg_match_all('~(\.?)\s?[\'"]([\w=\+/%&]+)[\'"]\s?~msi', $str, $concatStrings); $strVar = ""; foreach ($concatStrings[2] as $index => $concatString) { if ($concatStrings[1][$index] === '.') { $strVar .= $concatString; } else { $strVar = $concatString; } } return $strVar; } /** * Concats simple strings without variable in content globally * * @param string $str * @return string */ public static function concatStringsInContent($str) : string { $strVar = preg_replace_callback('~((?:\.?[\'"][\w=]+[\'"]){2,})~msi', function ($m) { return '\'' . self::concatStr($m[1]) . '\''; }, $str); return $strVar; } /** * @param $dictionaryVar * @param $dictionaryValue * @param $str * * @return string */ public static function replaceVarsFromDictionary($dictionaryVar, $dictionaryValue, $str) : string { $dictionaryName = $dictionaryVar[0] === '$' ? ('\\' . $dictionaryVar) : $dictionaryVar; $result = $str; if (preg_match('~\$GLOBALS\[([\'"]\w+[\'"])\]~msi', $dictionaryVar, $match)) { $dictionaryName = '\$GLOBALS\[' . $match[1] . '\]'; } $result = preg_replace_callback( '~(?:' . $dictionaryName . '[\[{][\'"]?(?:\d+)[\'"]?[\]}]\s?\.?\s?)+~msi', function ($match) use ($dictionaryValue) { preg_match_all('~\]?[\[{][\'"]?(\d+)[\'"]?[\]}]\.?~msi', $match[0], $varsMatch); $result = ""; foreach ($varsMatch[1] as $index) { $result .= $dictionaryValue[(int)$index]; } $lastChar = $match[0][strlen($match[0]) - 1] ?? null; $lastChar = $lastChar === '.' ? '.' : ''; return "'$result'" . $lastChar; }, $result ); return $result; } /** * @param string $arrayName * @param array $array * @param string $str * * @return string */ public static function replaceVarsByArrayName(string $arrayName, array $array, string $str): string { $result = preg_replace_callback('~\s?\\' . $arrayName . '\s?\[\s?(\d+)\s?\]\s?~msi', function ($match) use ($array) { return $array[$match[1]] ?? $match[0]; }, $str ); return $result; } /** * Collects simple or concated vars from str * @param string $str * @param string $trimQuote * * @return array */ public static function collectVars($str, string $trimQuote = '"', &$vars = []) : array { preg_match_all('~(\$\w+)\s?(\.)?=\s?([\'"].*?[\'"]);~msi', $str, $matches); foreach ($matches[1] as $index => $match) { $varName = $match; $varValue = str_replace("$trimQuote.$trimQuote", '', $matches[3][$index]); $varValue = stripcslashes(trim($varValue, $trimQuote)); if ($matches[2][$index] !== '.') { $vars[$varName] = $varValue; } else { $vars[$varName] .= $varValue; } } return $vars; } /** * Collects simple or concated str * @param string $str * @param string $trimQuote * * @return string */ public static function collectStr($str, string $trimQuote = '"') : string { preg_match('~["\'\w%=\.]+~msi', $str, $match); $str = str_replace("$trimQuote.$trimQuote", '', $match[0]); $str = trim($str, $trimQuote); return $str; } /** * Collects function wrapped vars with one arg from str * ex. var1 = base64_decode(str1); var2 = gzinflate(str2); and etc. * * @param string $str * * @return array */ public static function collectFuncVars(string $str, &$vars = []): array { preg_match_all('~(\$\w+)\s*=\s*(\w+)\([\'"]([\w+/=]+)[\'"]\);~msi', $str, $matches); foreach ($matches[1] as $index => $match) { $func = $matches[2][$index]; $str = $matches[3][$index]; if (self::isSafeFunc($func)) { $str = @$func($str); } $vars[$match] = self::isSafeFunc($str) ? $str : "'$str'"; } return $vars; } /** * @param array $vars * @param string $str * * @return string */ public static function replaceVarsFromArray(array $vars, string $str, bool $isFunc = false, $toStr = false) : string { $result = $str; uksort($vars, function($a, $b) { return strlen($b) <=> strlen($a); }); foreach ($vars as $name => $value) { $result = preg_replace_callback('~{?(@)?\${?[\'"]?GLOBALS[\'"]?}?\[[\'"]' . substr($name, 1) . '[\'"]\]}?~msi', function ($m) use ($value) { return $m[1] . $value; }, $result); $result = str_replace('{' . $name . '}', $value, $result); $result = str_replace($name . '(', trim($value, '\'"') . '(', $result); if (!$isFunc && !$toStr) { $result = str_replace($name, $value, $result); } else if ($toStr) { $result = str_replace($name, "'$value'", $result); } } return $result; } /** * @param $str * @return array */ public static function collectVarsChars($str) { $vars = []; preg_match_all('~(\$\w+)=\'(\w)\';~msi', $str, $matches, PREG_SET_ORDER); foreach ($matches as $m) { $vars[$m[1]] = $m[2]; } return $vars; } /** * Removes duplicated string variables after replacing * * @param string $str * * @return string */ public static function removeDuplicatedStrVars($str) : string { return preg_replace('~[\'"]?([^\'"]+)[\'"]?\s?=\s?[\'"]?\1[\'"]?;~msi','', $str); } /** * @param $chars * @param $str * @return array */ public static function assembleStrings($chars, $str) { $vars = []; foreach($chars as $var => $char) { $str = preg_replace_callback('~\\' . $var . '\s*([.;])~ms', function ($m) use ($char) { return '\'' . $char . '\''. $m[1]; }, $str); } $vars = self::collectVars($str, '\''); return $vars; } private static function block_decrypt($y, $z, $key) { $delta = 0x9e3779b9; $sum = 0xC6EF3720; $n = 32; for ($i = 0; $i < 32; $i++) { $z = self::_add($z, -(self::_add($y << 4 ^ self::_rshift($y, 5), $y) ^ self::_add($sum, $key[self::_rshift($sum, 11) & 3]))); $sum = self::_add($sum, -$delta); $y = self::_add($y, -(self::_add($z << 4 ^ self::_rshift($z, 5), $z) ^ self::_add($sum, $key[$sum & 3]))); } return [$y, $z]; } private static function _rshift($integer, $n) { if (0xffffffff < $integer || -0xffffffff > $integer) { $integer = fmod($integer, 0xffffffff + 1); } if (0x7fffffff < $integer) { $integer -= 0xffffffff + 1.0; } else if (-0x80000000 > $integer) { $integer += 0xffffffff + 1.0; } if (0 > $integer) { $integer &= 0x7fffffff; $integer >>= $n; $integer |= 1 << (31 - $n); } else { $integer >>= $n; } return $integer; } private static function _add($i1, $i2) { $result = 0.0; foreach (func_get_args() as $value) { if (0.0 > $value) { $value -= 1.0 + 0xffffffff; } $result += $value; } if (0xffffffff < $result || -0xffffffff > $result) { $result = fmod($result, 0xffffffff + 1); } if (0x7fffffff < $result) { $result -= 0xffffffff + 1.0; } else if (-0x80000000 > $result) { $result += 0xffffffff + 1.0; } return $result; } private static function _str2long($data) { $tmp = unpack('N*', $data); $data_long = []; $j = 0; foreach ($tmp as $value) $data_long[$j++] = $value; return $data_long; } private static function _long2str($l){ return pack('N', $l); } /////////////////////////////////////////////////////////////////////////// } /////////////////////////////////////////////////////////////////////////// function parseArgs($argv) { array_shift($argv); $o = []; foreach ($argv as $a) { if (substr($a, 0, 2) == '--') { $eq = strpos($a, '='); if ($eq !== false) { $o[substr($a, 2, $eq - 2)] = substr($a, $eq + 1); } else { $k = substr($a, 2); if (!isset($o[$k])) { $o[$k] = true; } } } else { if (substr($a, 0, 1) == '-') { if (substr($a, 2, 1) == '=') { $o[substr($a, 1, 1)] = substr($a, 3); } else { foreach (str_split(substr($a, 1)) as $k) { if (!isset($o[$k])) { $o[$k] = true; } } } } else { $o[] = $a; } } } return $o; } //////////////////////////////////////////////////////////////////////////////////////////////////////// // cli handler if (!defined('AIBOLIT_START_TIME') && !defined('PROCU_CLEAN_DB') && @strpos(__FILE__, @$argv[0])!==false) { set_time_limit(0); ini_set('max_execution_time', '900000'); ini_set('realpath_cache_size', '16M'); ini_set('realpath_cache_ttl', '1200'); ini_set('pcre.backtrack_limit', '1000000'); ini_set('pcre.recursion_limit', '12500'); ini_set('pcre.jit', '1'); $options = parseArgs($argv); $str = php_strip_whitespace($options[0]); $str2 = file_get_contents($options[0]); $l_UnicodeContent = Helpers::detect_utf_encoding($str); $l_UnicodeContent2 = Helpers::detect_utf_encoding($str2); if ($l_UnicodeContent !== false) { if (function_exists('iconv')) { $str = iconv($l_UnicodeContent, "UTF-8", $str); $str2 = iconv($l_UnicodeContent2, "UTF-8", $str2); } } $d = new Deobfuscator($str, $str2); $start = microtime(true); $deobf_type = $d->getObfuscateType($str); if ($deobf_type != '') { $str = $d->deobfuscate(); } $code = $str; if (isset($options['prettyprint'])) { $code = Helpers::normalize($code); $code = Helpers::format($code); } if ($l_UnicodeContent !== false) { if (function_exists('iconv')) { $code = iconv('UTF-8', $l_UnicodeContent . '//IGNORE', $code); } } echo $code; echo "\n"; //echo 'Execution time: ' . round(microtime(true) - $start, 4) . ' sec.'; } class Deobfuscator { private $signatures = [ [ 'full' => '~for\((\$\w{1,40})=\d+,(\$\w+)=\'([^\$]+)\',(\$\w+)=\'\';@?ord\(\2\[\1\]\);\1\+\+\)\{if\(\1<\d+\)\{(\$\w+)\[\2\[\1\]\]=\1;\}else\{\$\w+\.\=@?chr\(\(\5\[\2\[\1\]\]<<\d+\)\+\(\5\[\2\[\+\+\1\]\]\)\);\}\}\s*.{0,500}eval\(\4\);(if\(isset\(\$_(GET|REQUEST|POST|COOKIE)\[[\'"][^\'"]+[\'"]\]\)\)\{[^}]+;\})?~msi', 'fast' => '~for\((\$\w{1,40})=\d+,(\$\w+)=\'([^\$]+)\',(\$\w+)=\'\';@?ord\(\2\[\1\]\);\1\+\+\)\{if\(\1<\d+\)\{(\$\w+)\[\2\[\1\]\]=\1;\}else\{\$\w+\.\=@?chr\(\(\5\[\2\[\1\]\]<<\d+\)\+\(\5\[\2\[\+\+\1\]\]\)\);\}\}\s*.{0,500}eval\(\4\);~msi', 'id' => 'parenthesesString', ], [ 'full' => '~(\$\w+)\s*=\s*\'[\'.error_reporting]+;\s*\1\(0\);((?:\s*\$\w+\s*=\s*[\'abcdefgilnorstz64_.]+;)+)((?:\s*\$\w+\s*=\s*\'[^;]+\';)+)((?:\s*\$\w+\()+)(\$\w+)[\s\)]+;\s*die\(\);~mis', 'fast' => '~(\$\w+)\s*=\s*\'[\'.error_reporting]+;\s*\1\(0\);((?:\s*\$\w+\s*=\s*[\'abcdefgilnorstz64_.]+;)+)((?:\s*\$\w+\s*=\s*\'[^;]+\';)+)((?:\s*\$\w+\()+)(\$\w+)[\s\)]+;\s*die\(\);~mis', 'id' => 'blackScorpShell', ], [ 'full' => '~(?(DEFINE)(?\'c\'(?:/\*\w+\*/)*))(\$\w+)\s*=\s*basename(?&c)\((?&c)trim(?&c)\((?&c)preg_replace(?&c)\((?&c)rawurldecode(?&c)\((?&c)"[%0-9A-F\.]+"(?&c)\)(?&c),\s*\'\',\s*__FILE__(?&c)\)(?&c)\)(?&c)\)(?&c);(\$\w+)\s*=\s*"([%\w\.\-\~]+)";(?:(\$\w+)=[^;]+;\5(?&c)\((?&c)\'\',\s*\'};\'\s*\.\s*(?&c)\()?(?:eval(?&c)\()?(?&c)rawurldecode(?&c)\((?&c)\3(?&c)\)(?&c)\s*\^\s*substr(?&c)\((?&c)str_repeat(?&c)\((?&c)\2,\s*(?&c)\((?&c)strlen(?&c)\((?&c)\3(?&c)\)(?&c)/strlen(?&c)\((?&c)\2(?&c)\)(?&c)\)(?&c)\s*\+\s*1(?&c)\)(?&c),\s*0,(?&c)\s*strlen(?&c)\((?&c)\3(?&c)\)(?&c)\)(?&c)\)(?:(?&c)\s*\.\s*\'{\'(?&c)\))?(?&c);~msi', 'fast' => '~(?(DEFINE)(?\'c\'(?:/\*\w+\*/)*))(\$\w+)\s*=\s*basename(?&c)\((?&c)trim(?&c)\((?&c)preg_replace(?&c)\((?&c)rawurldecode(?&c)\((?&c)"[%0-9A-F\.]+"(?&c)\)(?&c),\s*\'\',\s*__FILE__(?&c)\)(?&c)\)(?&c)\)(?&c);(\$\w+)\s*=\s*"([%\w\.\-\~]+)";(?:(\$\w+)=[^;]+;\5(?&c)\((?&c)\'\',\s*\'};\'\s*\.\s*(?&c)\()?(?:eval(?&c)\()?(?&c)rawurldecode(?&c)\((?&c)\3(?&c)\)(?&c)\s*\^\s*substr(?&c)\((?&c)str_repeat(?&c)\((?&c)\2,\s*(?&c)\((?&c)strlen(?&c)\((?&c)\3(?&c)\)(?&c)/strlen(?&c)\((?&c)\2(?&c)\)(?&c)\)(?&c)\s*\+\s*1(?&c)\)(?&c),\s*0,(?&c)\s*strlen(?&c)\((?&c)\3(?&c)\)(?&c)\)(?&c)\)(?:(?&c)\s*\.\s*\'{\'(?&c)\))?(?&c);~msi', 'id' => 'xorFName', ], [ 'full' => '~(\$\w{1,40})=base64_decode\(\'[^\']+\'\);(\$\w+)=base64_decode\(\'[^\']+\'\);(\$\w+)=base64_decode\(\'([^\']+)\'\);eval\(\1\(gzuncompress\(\2\(\3\)\)\)\);~msi', 'fast' => '~(\$\w{1,40})=base64_decode\(\'[^\']+\'\);(\$\w+)=base64_decode\(\'[^\']+\'\);(\$\w+)=base64_decode\(\'([^\']+)\'\);eval\(\1\(gzuncompress\(\2\(\3\)\)\)\);~msi', 'id' => 'phpMess', ], [ 'full' => '~(\$\w{1,40})\s*=\s*\"([^\"]+)\";\s*\$\w+\s*=\s*\$\w+\(\1,\"[^\"]+\",\"[^\"]+\"\);\s*\$\w+\(\"[^\"]+\",\"[^\"]+\",\"\.\"\);~msi', 'fast' => '~(\$\w{1,40})\s*=\s*\"([^\"]+)\";\s*\$\w+\s*=\s*\$\w+\(\1,\"[^\"]+\",\"[^\"]+\"\);\s*\$\w+\(\"[^\"]+\",\"[^\"]+\",\"\.\"\);~msi', 'id' => 'pregReplaceSample05', ], [ 'full' => '~(\$\w{1,40})\s*=\s*\w+\(\'.+?\'\);\s*(\$\w+)\s*=\s*\w+\(\'.+?\'\);\s*(\$\w+)\s*=\s*\"([^\"]+)\";\s*(\$\w+)\s*=\s*.+?;\s*\2\(\5,\"[^\']+\'\3\'[^\"]+\",\"\.\"\);~msi', 'fast' => '~(\$\w{1,40})\s*=\s*\w+\(\'.+?\'\);\s*(\$\w+)\s*=\s*\w+\(\'.+?\'\);\s*(\$\w+)\s*=\s*\"([^\"]+)\";\s*(\$\w+)\s*=\s*.+?;\s*\2\(\5,\"[^\']+\'\3\'[^\"]+\",\"\.\"\);~msi', 'id' => 'pregReplaceB64', ], [ 'full' => '~preg_replace\([\'"]/\(\.\*\)/e[\'"],[\'"]([^\'"]+)[\'"],\s?NULL\);~msi', 'fast' => '~preg_replace\([\'"]/\(\.\*\)/e[\'"],[\'"]([^\'"]+)[\'"],\s?NULL\);~msi', 'id' => 'pregReplaceStr', ], [ 'full' => '~(\$\w{1,40})\s*=\s*\'([^\']+)\';\s*\1\s*=\s*gzinflate\s*\(base64_decode\s*\(\1\)\);\s*\1\s*=\s*str_replace\s*\(\"__FILE__\",\"\'\$\w+\'\",\1\);\s*eval\s*\(\1\);~msi', 'fast' => '~(\$\w{1,40})\s*=\s*\'([^\']+)\';\s*\1\s*=\s*gzinflate\s*\(base64_decode\s*\(\1\)\);\s*\1\s*=\s*str_replace\s*\(\"__FILE__\",\"\'\$\w+\'\",\1\);\s*eval\s*\(\1\);~msi', 'id' => 'GBE', ], [ 'full' => '~(\$GLOBALS\[\s*[\'"]_+\w{1,60}[\'"]\s*\])\s*=\s*\s*array\s*\(\s*base64_decode\s*\(.+?((.+?\1\[\d+\]).+?)+[^;]+;(\s*include\(\$_\d+\);)?}?((.+?_+\d+\(\d+\))+[^;]+;)?(.*?(\$[a-z]+).+\8_\d+;)?(echo\s*\$\w+;})?}?~msi', 'fast' => '~\$GLOBALS\[\s*[\'"]_+\w{1,60}[\'"]\s*\]\s*=\s*\s*array\s*\(\s*base64_decode\s*\(~msi', 'id' => 'Bitrix', ], [ 'full' => '~\$\w{1,40}\s*=\s*(__FILE__|__LINE__);\s*\$\w{1,40}\s*=\s*(\d+);\s*eval(\s*\()+\$?\w+\s*\([\'"][^\'"]+[\'"](\s*\))+;\s*return\s*;\s*\?>(.+)~msi', 'fast' => '~\$\w{1,40}\s*=\s*(__FILE__|__LINE__);\s*\$\w{1,40}\s*=\s*(\d+);\s*eval(\s*\()+\$?\w+\s*\([\'"][^\'"]+[\'"](\s*\))+;\s*return\s*;\s*\?>(.+)~msi', 'id' => 'B64inHTML', ], [ 'full' => '~<\?php\s+(?:/[*/].*?)?(?:\$[O0]*=__FILE__;\s*)?(\$[O0]*)=urldecode\(\'([%a-f0-9]+)\'\);(\$(GLOBALS\[\')?[O0]*(\'\])?=(\d+);)?(.*?)(\$(GLOBALS\[\')?[O0]*(\'\])?\.?=(\$(GLOBALS\[\')?[O0]*(\'\])?([{\[]\d+[}\]])?\.?)+;)+([^\?]+)\?\>[\s\w\~=/+\\\\^{`%|@[}]+~msi', 'fast' => '~(\$[O0]*)=urldecode\(\'([%a-f0-9]+)\'\);(\$(GLOBALS\[\')?[O0]*(\'\])?=(\d+);)?(.*?)(\$(GLOBALS\[\')?[O0]*(\'\])?\.?=(\$(GLOBALS\[\')?[O0]*(\'\])?([{\[]\d+[}\]])?\.?)+;)+([^\?]+)\?\>[\s\w\~=/+\\\\^{`%|@[}]+~msi', 'id' => 'LockIt', ], [ 'full' => '~(\$\w{1,40})\s*=\s*\"(\\\\142|\\\\x62)[0-9a-fx\\\\]+";\s*@?eval\s*\(\1\s*\([^\)]+\)+\s*;~msi', 'fast' => '~(\$\w{1,40})\s*=\s*\"(\\\\142|\\\\x62)[0-9a-fx\\\\]+";\s*@?eval\s*\(\1\s*\(~msi', 'id' => 'FOPO', ], [ 'full' => '~\$_F=__FILE__;\$_X=\'([^\']+\');eval\([^\)]+\)+;~msi', 'fast' => '~\$_F=__FILE__;\$_X=\'([^\']+\');eval\(~ms', 'id' => 'ByteRun', ], [ 'full' => '~(\$\w{1,40}=\'[^\']+\';\s*)+(\$[\w{1,40}]+)=(urldecode|base64_decode){0,1}\(?[\'"]([\w+%=-]+)[\'"]\)?;(\$[\w+]+=(\$(\w+\[\')?[O_0]*(\'\])?([\{\[]\d+[\}\]])?\.?)+;)+[^\?]+(\?\>[\w\~\=\/\+]+|.+\\\\x[^;]+;)~msi', 'fast' => '~(\$\w{1,40}=\'[^\']+\';\s*)+(\$[\w{1,40}]+)=(urldecode|base64_decode){0,1}\(?[\'"]([\w+%=-]+)[\'"]\)?;(\$[\w+]+=(\$(\w+\[\')?[O_0]*(\'\])?([\{\[]\d+[\}\]])?\.?)+;)+[^\?]+(\?\>[\w\~\=\/\+]+|.+\\\\x[^;]+;)~msi', 'id' => 'Urldecode', ], [ 'full' => '~(\$[\w{1,40}]+)\s?=\s?(urldecode|base64_decode)\(?[\'"]([\w+%=-]+)[\'"]\);(\s*\$\w+\.?\s?=\s?((?:\$\w+\s*\.\s*)?\$\w+[{\[]\d+[}\]]\s*[\.;]?\s*)+)+((\$\w+=["\']([^\'"]+)[\'"];\s*eval\(\'\?>\'\.[\$\w\(\)\*\d,\s]+);|(eval\(\s?\$\w+\([\'"]([^\'"]+)[\'"][)\s]+;)|header\(\'[^\']+\'\);(?:\$\w+=\${[^}]+}\[[^\]]+\]\(\'.*?\'?;}?\'\);)+\${[^}]+}\[[^\]]+\]\(\);)~msi', 'fast' => '~(\$[\w{1,40}]+)\s?=\s?(urldecode|base64_decode)\(?[\'"]([\w+%=-]+)[\'"]\);(\s*\$\w+\.?\s?=\s?((?:\$\w+\s*\.\s*)?\$\w+[{\[]\d+[}\]]\s*[\.;]?\s*)+)+((\$\w+=["\']([^\'"]+)[\'"];\s*eval\(\'\?>\'\.[\$\w\(\)\*\d,\s]+);|(eval\(\s?\$\w+\([\'"]([^\'"]+)[\'"][)\s]+;)|header\(\'[^\']+\'\);(?:\$\w+=\${[^}]+}\[[^\]]+\]\(\'.*?\'?;}?\'\);)+\${[^}]+}\[[^\]]+\]\(\);)~msi', 'id' => 'UrlDecode2', ], [ 'full' => '~\$\w{1,40}\s?=\s?[\'"]?[\d\w]+[\'"]?;((?:(\$\w{1,40})=[\'"]([^\'"]+)[\'"];\s*)+(\$[\w{1,40}]+)=urldecode\(\2\);)\w+\((?:\4[{\[]\d+[}\]]\.?)+\);(?:(?:(?:\$\w+\s?=\s?@\$_SERVER\[)?\4[{\[]\d+[}\]]\.?\]?)+;)+(?:.*?\4[\[{]\d+[}\]])+.*?;}\?>~msi', 'fast' => '~\$\w{1,40}\s?=\s?[\'"]?[\d\w]+[\'"]?;((?:(\$\w{1,40})=[\'"]([^\'"]+)[\'"];\s*)+(\$[\w{1,40}]+)=urldecode\(\2\);)\w+\((?:\4[{\[]\d+[}\]]\.?)+\);(?:(?:(?:\$\w+\s?=\s?@\$_SERVER\[)?\4[{\[]\d+[}\]]\.?\]?)+;)+(?:.*?\4[\[{]\d+[}\]])+.*?;}\?>~msi', 'id' => 'UrlDecode3', ], [ 'full' => '~(?:@?session_start\(\);)?(?:@?(?:set_time_limit|error_reporting)\(\d+\);){1,2}(?:@\$\w{1,50}=\$_POST\[base64_decode\([\'"][^\'"]+[\'"]\)\];|if\(\w{1,50}\(\)\){foreach\(\$_POST\s{0,50}as\s{0,50}\$\w{1,50}=>\$\w{1,50}\))(?:.*?base64_decode\([\'"][^\'"]+[\'"]\)){1,200}\)\);return\s?\$\w{1,50};}~msi', 'fast' => '~(?:@?session_start\(\);)?(?:@?(?:set_time_limit|error_reporting)\(\d+\);){1,2}(?:@\$\w{1,50}=\$_POST\[base64_decode\([\'"][^\'"]+[\'"]\)\];|if\(\w{1,50}\(\)\){foreach\(\$_POST\s{0,50}as\s{0,50}\$\w{1,50}=>\$\w{1,50}\))(?:.*?base64_decode\([\'"][^\'"]+[\'"]\)){1,200}\)\);return\s?\$\w{1,50};}~msi', 'id' => 'manyBase64DecodeContent', ], [ 'full' => '~explode\(\"\*\*\*\",\s*\$\w+\);\s*eval\(eval\(\"return strrev\(base64_decode\([^\)]+\)+;~msi', 'fast' => '~explode\(\"\*\*\*\",\s*\$\w+\);\s*eval\(eval\(\"return strrev\(base64_decode\(~msi', 'id' => 'cobra', ], [ 'full' => '~\$[O0]+=\(base64_decode\(strtr\(fread\(\$[O0]+,(\d+)\),\'([^\']+)\',\'([^\']+)\'\)\)\);eval\([^\)]+\)+;~msi', 'fast' => '~\$[O0]+=\(base64_decode\(strtr\(fread\(\$[O0]+,(\d+)\),\'([^\']+)\',\'([^\']+)\'\)\)\);eval\(~msi', 'id' => 'strtrFread', ], [ 'full' => '~if\s*\(\!extension_loaded\(\'IonCube_loader\'\)\).+pack\(\"H\*\",\s*\$__ln\(\"/\[A-Z,\\\\r,\\\\n\]/\",\s*\"\",\s*substr\(\$__lp,\s*([0-9a-fx]+\-[0-9a-fx]+)\)\)\)[^\?]+\?\>\s*[0-9a-z\r\n]+~msi', 'fast' => '~IonCube_loader~ms', 'id' => 'FakeIonCube', ], [ 'full' => '~(\$\w{1,40})="([\w\]\[\<\&\*\_+=/]{300,})";\$\w+=\$\w+\(\1,"([\w\]\[\<\&\*\_+=/]+)","([\w\]\[\<\&\*\_+=/]+)"\);~msi', 'fast' => '~(\$\w{1,40})="([\w\]\[\<\&\*\_+=/]{300,})";\$\w+=\$\w+\(\1,"([\w\]\[\<\&\*\_+=/]+)","([\w\]\[\<\&\*\_+=/]+)"\);~msi', 'id' => 'strtrBase64', ], [ 'full' => '~\$\w+\s*=\s*array\((\'[^\']+\',?)+\);\s*.+?(\$_\w{1,40}\[\w+\])\s*=\s*explode\(\'([^\']+)\',\s*\'([^\']+)\'\);.+?(\2\[[a-fx\d]+\])\(\);(.+?\2)+.+}~msi', 'fast' => '~(\$_\w{1,40}\[\w+\])\s*=\s*explode\(\'([^\']+)\',\s*\'([^\']+)\'\);.+?(\1\[[a-fx\d]+\])\(\);~msi', 'id' => 'explodeSubst', ], [ 'full' => '~(\$[\w{1,40}]+)\s*=\s*\'([\w+%=\-\#\\\\\'\*]+)\';(\$[\w+]+)\s*=\s*Array\(\);(\3\[\]\s*=\s*(\1\[\d+\]\.?)+;+)+(.+\3)[^}]+}~msi', 'fast' => '~(\$[\w{1,40}]+)\s*=\s*\'([\w+%=\-\#\\\\\'\*]+)\';(\$[\w+]+)\s*=\s*Array\(\);(\3\[\]\s*=\s*(\1\[\d+\]\.?)+;+)+~msi', 'id' => 'subst', ], [ 'full' => '~if\(!function_exists\(\"(\w+)\"\)\){function \1\(.+?eval\(\1\(\"[^\"]+\"\)\);~msi', 'fast' => '~if\(!function_exists\(\"(\w+)\"\)\){function \1\(.+?eval\(\1\(\"[^\"]+\"\)\);~msi', 'id' => 'decoder', ], [ 'full' => '~(\$\w{1,40})\s*=\s*\"riny\(\"\.(\$\w+)\(\"base64_decode\"\);\s*(\$\w+)\s*=\s*\2\(\1\.\'\("([^"]+)"\)\);\'\);\s*\$\w+\(\3\);~msi', 'fast' => '~(\$\w{1,40})\s*=\s*\"riny\(\"\.(\$\w+)\(\"base64_decode\"\);\s*(\$\w+)\s*=\s*\2\(\1\.\'\("([^"]+)"\)\);\'\);\s*\$\w+\(\3\);~msi', 'id' => 'GBZ', ], [ 'full' => '~\$\w+\s*=\s*\d+;\s*\$GLOBALS\[\'[^\']+\'\]\s*=\s*Array\(\);\s*global\s*\$\w+;(\$\w{1,40})\s*=\s*\$GLOBALS;\$\{"\\\\x[a-z0-9\\\\]+"\}\[(\'\w+\')\]\s*=\s*\"(([^\"\\\\]|\\\\.)*)\";\1\[(\1\[\2\]\[\d+\].?).+?exit\(\);\}+~msi', 'fast' => '~(\$\w{1,40})\s*=\s*\$GLOBALS;\$\{"\\\\x[a-z0-9\\\\]+"\}\[(\'\w+\')\]\s*=\s*\"(([^\"\\\\]|\\\\.)*)\";\1\[(\1\[\2\]\[\d+\].?)~msi', 'id' => 'globalsArray', ], [ 'full' => '~(\${(["\w\\\\]+)}\[["\w\\\\]+\]=["\w\\\\]+;)+((\${\${(["\w\\\\]+)}\[["\w\\\\]+\]}).?=((urldecode\(["%\w]+\);)|(\${\${["\w\\\\]+}\[["\w\\\\]+\]}{\d+}.?)+;))+eval\(\${\${["\w\\\\]+}\[["\w\\\\]+\]}\(["\w+=]+\)\);~msi', 'fast' => '~(\${(["\w\\\\]+)}\[["\w\\\\]+\]=["\w\\\\]+;)+((\${\${(["\w\\\\]+)}\[["\w\\\\]+\]}).?=((urldecode\(["%\w]+\);)|(\${\${["\w\\\\]+}\[["\w\\\\]+\]}{\d+}.?)+;))+eval\(\${\${["\w\\\\]+}\[["\w\\\\]+\]}\(["\w+=]+\)\);~msi', 'id' => 'xbrangwolf', ], [ 'full' => '~(\$\w{1,40})\s*=\s*\'(\\\\.|[^\']){0,100}\';\s*\$\w+\s*=\s*\'(\\\\.|[^\']){0,100}\'\^\1;[^)]+\)+;\s*\$\w+\(\);~msi', 'fast' => '~(\$\w{1,40})\s*=\s*\'(\\\\.|[^\']){0,100}\';\s*\$\w+\s*=\s*\'(\\\\.|[^\']){0,100}\'\^\1;~msi', 'id' => 'xoredVar', ], [ 'full' => '~\$\w{1,40}=\'[^\']{0,100}(?:\'\^\')?[^\']*\';(?:\$\w{1,40}=\w{1,3};)?(?:\$\w{1,40}=\'[^\']+(?:\'\^\')?[^\']*\';)+\w{1,40};(?:.{0,6000}?)if\(\$\w{1,40}==\$\w{1,40}\(\$\w{1,40}\)\){(?:.{0,6000}?)\w{1,40};\s?\$\w{1,40}\(\'[^\']{0,100}\',\'[^\']{0,100}\'\);\'[^\']{0,100}\';~msi', 'fast' => '~\$\w{1,40}=\'[^\']{0,100}(?:\'\^\')?[^\']*\';(?:\$\w{1,40}=\w{1,3};)?(?:\$\w{1,40}=\'[^\']+(?:\'\^\')?[^\']*\';)+\w{1,40};(?:.{0,6000}?)if\(\$\w{1,40}==\$\w{1,40}\(\$\w{1,40}\)\)~msi', 'id' => 'xoredVar', ], [ 'full' => '~(\$\w{1,40})\s*=\s*\'([^\']*)\';\s*(\$\w{1,40})\s*=\s*explode\s*\((chr\s*\(\s*\(\d+\-\d+\)\)),substr\s*\(\1,\s*\((\d+\-\d+)\),\s*\(\s*(\d+\-\d+)\)\)\);\s*(\$\w{1,40})\s*=\s*\3\[\d+\]\s*\(\3\[\s*\(\d+\-\d+\)\]\);\s*(\$\w{1,40})\s*=\s*\3\[\d+\]\s*\(\3\[\s*\(\d+\-\d+\)\]\);\s*if\s*\(!function_exists\s*\(\'([^\']*)\'\)\)\s*\{\s*function\s*\9\s*\(.+\1\s*=\s*\$\w+[+\-\*]\d+;~msi', 'fast' => '~(\$\w{1,40})\s=\s\'([^\']*)\';\s(\$\w{1,40})=explode\((chr\(\(\d+\-\d+\)\)),substr\(\1,\((\d+\-\d+)\),\((\d+\-\d+)\)\)\);\s(\$\w{1,40})\s=\s\3\[\d+\]\(\3\[\(\d+\-\d+\)\]\);\s(\$\w{1,40})\s=\s\3\[\d+\]\(\3\[\(\d+\-\d+\)\]\);\sif\s\(!function_exists\(\'([^\']*)\'\)\)\s\{\sfunction\s*\9\(~msi', 'id' => 'arrayOffsets', ], [ 'full' => '~(\$\w+)\s?=\s?[\'"](.*?)[\'"];\s?(\$\w+)\s?=\s?explode\(chr\(+(\d+\s?[-+]\s?\d+)\)+,\s?[\'"]((?:\d+,?)+)[\'"]\);\s?(\$\w+)\s?=\s?substr\(\1,\s?\(+(\d+\s?[-+]\s?\d+)\),\s?\(+(\d+\s?[-+]\s?\d+)\)\);\s?if\s?\(!function_exists\([\'"](\w+)[\'"]\)\)\s?{\s?function\s?\9\((\$\w+),\s?(\$\w+)\)\s?{\s?(\$\w+)\s?=\s?NULL;\s?for\s?\((\$\w+)\s?=\s0;\s?\13\s?<\s?\(sizeof\(\10\)\s?/\s?(\d+)\);\s?\13\+\+\)\s?{\s?\12\s?\.=\s?substr\(\11,\s?\10\[\(\13\s?\*\s?(\d+)\)\],\s?\10\[\(\13\s?\*\s?(\d+)\)\s?\+\s?(\d+)\]\);\s?}\s?return\s?\12;\s?}\s;\s?}\s?(\$\w+)\s?=\s?[\'"](.*?eval\(str_replace\(chr\(\(+(\d+\s?[-+]\s?\d+)\)\),\s?chr\(\(+(\d+\s?[-+]\s?\d+)\)\),\s?\9\(\3,\1\)\)\);.*?)[\'"];\s?(\$\w+)\s?=\s?substr\(\1,\s?\(+(\d+\s?[-+]\s?\d+)\),\s?\(+(\d+\s?[-+]\s?\d+)\)\);\s?\22\(\6,\s?\18,\s?NULL\);\s?\22\s?=\s?\18;\s?\22\s?=\s?\(+(\d+\s?[-+]\s?\d+)\);\s?\$\w+\s?=\s?\$\w+\s?\-\s?\d+;~msi', 'fast' => '~(\$\w+)\s?=\s?[\'"](.*?)[\'"];\s?(\$\w+)\s?=\s?explode\(chr\(+(\d+\s?[-+]\s?\d+)\)+,\s?[\'"]((?:\d+,?)+)[\'"]\);\s?(\$\w+)\s?=\s?substr\(\1,\s?\(+(\d+\s?[-+]\s?\d+)\),\s?\(+(\d+\s?[-+]\s?\d+)\)\);\s?if\s?\(!function_exists\([\'"](\w+)[\'"]\)\)\s?{\s?function\s?\9\((\$\w+),\s?(\$\w+)\)\s?{\s?(\$\w+)\s?=\s?NULL;\s?for\s?\((\$\w+)\s?=\s0;\s?\13\s?<\s?\(sizeof\(\10\)\s?/\s?(\d+)\);\s?\13\+\+\)\s?{\s?\12\s?\.=\s?substr\(\11,\s?\10\[\(\13\s?\*\s?(\d+)\)\],\s?\10\[\(\13\s?\*\s?(\d+)\)\s?\+\s?(\d+)\]\);\s?}\s?return\s?\12;\s?}\s;\s?}\s?(\$\w+)\s?=\s?[\'"](.*?eval\(str_replace\(chr\(\(+(\d+\s?[-+]\s?\d+)\)\),\s?chr\(\(+(\d+\s?[-+]\s?\d+)\)\),\s?\9\(\3,\1\)\)\);.*?)[\'"];\s?(\$\w+)\s?=\s?substr\(\1,\s?\(+(\d+\s?[-+]\s?\d+)\),\s?\(+(\d+\s?[-+]\s?\d+)\)\);\s?\22\(\6,\s?\18,\s?NULL\);\s?\22\s?=\s?\18;\s?\22\s?=\s?\(+(\d+\s?[-+]\s?\d+)\);\s?\$\w+\s?=\s?\$\w+\s?\-\s?\d+;~msi', 'id' => 'arrayOffsetsEval', ], [ 'full' => '~(\$\w{1,50}\s*=\s*array\((\'\d+\',?)+\);)+\$\w{1,40}=\"([^\"]+)\";if\s*\(!function_exists\(\"\w{1,50}\"\)\)\s*\{\s*function\s*[^\}]+\}\s*return\s*\$\w+;\}[^}]+}~msi', 'fast' => '~(\$\w{1,50}=\s*array\((\'\d+\',?)+\);)+\$\w{1,40}=\"[^\"]+\";if\s*\(!function_exists\(\"\w{1,50}\"\)\)\{\s*function ~msi', 'id' => 'obfB64', ], [ 'full' => '~if\(\!function_exists\(\'findsysfolder\'\)\){function findsysfolder\(\$fld\).+\$REXISTHEDOG4FBI=\'([^\']+)\';\$\w+=\'[^\']+\';\s*eval\(\w+\(\'([^\']+)\',\$REXISTHEDOG4FBI\)\);~msi', 'fast' => '~if\(!function_exists\(\'findsysfolder\'\)\){function findsysfolder\(\$fld\)\{\$fld1=dirname\(\$fld\);\$fld=\$fld1\.\'/scopbin\';clearstatcache\(\);if\(!is_dir\(\$fld\)\)return findsysfolder\(\$fld1\);else return \$fld;\}\}require_once\(findsysfolder\(__FILE__\)\.\'/911006\.php\'\);~msi', 'id' => 'sourceCop', ], [ 'full' => '~function\s*(\w{1,40})\s*\(\s*(\$\w{1,40})\s*,\s*(\$\w{1,40})\s*\)\s*\{\s*(\$\w{1,40})\s*=\s*str_rot13\s*\(\s*gzinflate\s*\(\s*str_rot13\s*\(\s*base64_decode\s*\(\s*[\'"][^\'"]*[\'"]\s*\)\s*\)\s*\)\s*\)\s*;\s*(if\s*\(\s*\$\w+\s*==[\'"][^\'"]*[\'"]\s*\)\s*\{\s*(\$\w{1,40})\s*=(\$\w+[\{\[]\d+[\}\]]\.?)+;return\s*(\$\w+)\(\3\);\s*\}\s*else\s*)+\s*if\s*\(\s*\$\w+\s*==[\'"][^\'"]*[\'"]\s*\)\s*\{\s*return\s*eval\(\3\);\s*\}\s*\};\s*(\$\w{1,40})\s*=\s*[\'"][^\'"]*[\'"];(\s*\9\([\'"][^\'"]*[\'"],)+\s*[\'"][^\'"]*[\'"]\s*\)+;~msi', 'fast' => '~function\s*(\w{1,40})\s*\(\s*(\$\w{1,40})\s*,\s*(\$\w{1,40})\s*\)\s*\{\s*(\$\w{1,40})\s*=\s*str_rot13\s*\(\s*gzinflate\s*\(\s*str_rot13\s*\(\s*base64_decode\s*\(\s*[\'"][^\'"]*[\'"]\s*\)\s*\)\s*\)\s*\)\s*;\s*(if\s*\(\s*\$\w+\s*==[\'"][^\'"]*[\'"]\s*\)\s*\{\s*(\$\w{1,40})\s*=(\$\w+[\{\[]\d+[\}\]]\.?)+;return\s*(\$\w+)\(\3\);\s*\}\s*else\s*)+\s*if\s*\(\s*\$\w+\s*==[\'"][^\'"]*[\'"]\s*\)\s*\{\s*return\s*eval\(\3\);\s*\}\s*\};\s*(\$\w{1,40})\s*=\s*[\'"][^\'"]*[\'"];(\s*\9\([\'"][^\'"]*[\'"],)+\s*[\'"][^\'"]*[\'"]\s*\)+;~msi', 'id' => 'webshellObf', ], [ 'full' => '~(\$\w{1,40})=\'([^\'\\\\]|.*?)\';\s*((\$\w{1,40})=(\1\[\d+].?)+;\s*)+(\$\w{1,40})=\'\';\s*(\$\w{1,40})\(\6,\$\w{1,40}\.\"([^\"]+)\"\.\$\w{1,40}\.\4\);~msi', 'fast' => '~(\$\w{1,40})=\'([^\\\\\']|.*?)\';\s*((\$\w{1,40})=(\1\[\d+].?)+;\s*)+(\$\w{1,40})=\'\';~msi', 'id' => 'substCreateFunc', ], [ 'full' => '~@error_reporting\(0\);\s*@ini_set\(\'error_log\',NULL\);\s*@ini_set\(\'log_errors\',0\);\s*@ini_set\(\'display_errors\',\s*0\);\s*@(\$\w+)="[create_function"\.]+;\s*(\$\w+)=\1\("([^"]+)","[eval\."]+\(\'\?>\'\.[base64_decode"\.]+\(\3\)\);"\);\s*\2\("([^"]+)"\);exit;~msi', 'fast' => '~@error_reporting\(0\);\s*@ini_set\(\'error_log\',NULL\);\s*@ini_set\(\'log_errors\',0\);\s*@ini_set\(\'display_errors\',\s*0\);\s*@(\$\w+)="[create_function"\.]+;\s*(\$\w+)=\1\("([^"]+)","[eval\."]+\(\'\?>\'\.[base64_decode"\.]+\(\3\)\);"\);\s*\2\("([^"]+)"\);exit;~msi', 'id' => 'Obf_20200507_2', ], [ 'full' => '~\$\w+=([create_function"\'.]+);\s?\$\w+=\$\w+\([\'"]\\\\?\$\w+[\'"],((?:[\'"][eval]{0,4}[\'"]\.?)+)\.([\'"](\([\'"]\?>[\'"]\.)\w+[\'"]\.[^)\\\\]+)\\\\?\$\w+\)+;[\'"]\);\s?\$\w+\([\'"]([\w\+=\\\\\'"%/]+)[\'"]\);~msi', 'fast' => '~\$\w+=([create_function"\'.]+);\s?\$\w+=\$\w+\([\'"]\\\\?\$\w+[\'"],((?:[\'"][eval]{0,4}[\'"]\.?)+)\.([\'"](\([\'"]\?>[\'"]\.)\w+[\'"]\.[^)\\\\]+)\\\\?\$\w+\)+;[\'"]\);\s?\$\w+\([\'"]([\w\+=\\\\\'"%/]+)[\'"]\);~msi', 'id' => 'createFunc', ], [ 'full' => '~(?(DEFINE)(?\'foreach\'(?:/\*\w+\*/)?\s*foreach\(\[[\d,]+\]\s*as\s*\$\w+\)\s*\{\s*\$\w+\s*\.=\s*\$\w+\[\$\w+\];\s*\}\s*(?:/\*\w+\*/)?\s*))(\$\w+)\s*=\s*"([^"]+)";\s*\$\w+\s*=\s*"";(?P>foreach)if\(isset\(\$_REQUEST\s*(?:/\*\w+\*/)?\["\$\w+"\]\)+\{\s*\$\w+\s*=\s*\$_REQUEST\s*(?:/\*\w+\*/)?\["\$\w+"\];(?:\s*\$\w+\s*=\s*"";\s*)+(?P>foreach)+\$\w+\s*=\s*\$\w+\([create_function\'\.]+\);\s*\$\w+\s*=\s*\$\w+\("",\s*\$\w+\(\$\w+\)\);\s*\$\w+\(\);\s*(?:exit\(\);)?\s*}~mis', 'fast' => '~(?(DEFINE)(?\'foreach\'(?:/\*\w+\*/)?\s*foreach\(\[[\d,]+\]\s*as\s*\$\w+\)\s*\{\s*\$\w+\s*\.=\s*\$\w+\[\$\w+\];\s*\}\s*(?:/\*\w+\*/)?\s*))(\$\w+)\s*=\s*"([^"]+)";\s*\$\w+\s*=\s*"";(?P>foreach)if\(isset\(\$_REQUEST\s*(?:/\*\w+\*/)?\["\$\w+"\]\)+\{\s*\$\w+\s*=\s*\$_REQUEST\s*(?:/\*\w+\*/)?\["\$\w+"\];(?:\s*\$\w+\s*=\s*"";\s*)+(?P>foreach)+\$\w+\s*=\s*\$\w+\([create_function\'\.]+\);\s*\$\w+\s*=\s*\$\w+\("",\s*\$\w+\(\$\w+\)\);\s*\$\w+\(\);~mis', 'id' => 'forEach', ], [ 'full' => '~\$\w+\s*=\s*base64_decode\s*\([\'"][^\'"]+[\'"]\);\s*if\s*\(!function_exists\s*\("rotencode"\)\).{0,1000}eval\s*\(\$\w+\s*\(base64_decode\s*\([\'"][^"\']+[\'"]\)+;~msi', 'fast' => '~\$\w+\s*=\s*base64_decode\s*\([\'"][^\'"]+[\'"]\);\s*if\s*\(!function_exists\s*\("rotencode"\)\).{0,1000}eval\s*\(\$\w+\s*\(base64_decode\s*\([\'"][^"\']+[\'"]\)+;~msi', 'id' => 'PHPMyLicense', ], [ 'full' => '~(\$\w{1,40})\s*=\s*file\(__FILE__\);\s*if\(!function_exists\(\"([^\"]*)\"\)\)\{function\s*\2\((\$\w{1,40}),(\$\w{1,40})=\d+\)\{(\$\w{1,40})=implode\(\"[^\"]*\",\3\);(\$\w{1,40})=array\((\d+),(\d+),(\d+)\);if\(\4==0\)\s*(\$\w{1,40})=substr\(\5,\6\[\d+\],\6\[\d+\]\);elseif\(\4==1\)\s*\10=substr\(\5,\6\[\d+\]\+\6\[\d+\],\6\[\d+\]\);else\s*\10=trim\(substr\(\5,\6\[\d+\]\+\6\[\d+\]\+\6\[\d+\]\)\);return\s*\(\10\);\}\}\s*eval\(\w{1,40}\(\2\(\1\s*,\s*2\)\s*,\s*\2\(\1\s*,\s*1\)\)\);\s*__halt_compiler\(\);\s*[\w\+\=/]+~msi', 'fast' => '~(\$\w{1,40})\s*=\s*file\(__FILE__\);\s*if\(!function_exists\(\"([^\"]*)\"\)\)\{function\s*\2\((\$\w{1,40}),(\$\w{1,40})=\d+\)\{(\$\w{1,40})=implode\(\"[^\"]*\",\3\);(\$\w{1,40})=array\((\d+),(\d+),(\d+)\);if\(\4==0\)\s*(\$\w{1,40})=substr\(\5,\6\[\d+\],\6\[\d+\]\);elseif\(\4==1\)\s*\10=substr\(\5,\6\[\d+\]\+\6\[\d+\],\6\[\d+\]\);else\s*\10=trim\(substr\(\5,\6\[\d+\]\+\6\[\d+\]\+\6\[\d+\]\)\);return\s*\(\10\);\}\}\s*eval\(\w{1,40}\(\2\(\1\s*,\s*2\)\s*,\s*\2\(\1\s*,\s*1\)\)\);\s*__halt_compiler\(\);~msi', 'id' => 'zeura', ], [ 'full' => '~<\?php\s*(eval(?:\(\w+)+\((substr\(file_get_contents\(__FILE__\),\s?(\d+)\))\)+;)\s*__halt_compiler\(\);\s*[\w+/]+~msi', 'fast' => '~<\?php\s*(eval(?:\(\w+)+\((substr\(file_get_contents\(__FILE__\),\s?(\d+)\))\)+;)\s*__halt_compiler\(\);\s*[\w+/]+~msi', 'id' => 'evalFileContentOffset', ], [ 'full' => '~(\$\w+)=base64_decode\(((?:(?|[\'"][\w=]+[\'"]|chr\(\d+\))\.?)+)\);(\$\w+)=base64_decode\(((?:(?|[\'"][\w=]+[\'"]|chr\(\d+\))\.?)+)\);(\$\w+)=base64_decode\(((?:(?|[\'"][\w=]+[\'"]|chr\(\d+\))\.?)+)\);(\1\((\(-(\d+)-\(-\9\)\))\);@set_time_limit\((\(-(\d+)-\(-\11\)\))\);)eval\(base64_decode\(((?:(?|[\'"]\d+[\'"]|chr\(\d+\))\.?)+)\)\.gzinflate\(str_rot13\(\3\(\5\){4};~msi', 'fast' => '~(\$\w+)=base64_decode\(((?:(?|[\'"][\w=]+[\'"]|chr\(\d+\))\.?)+)\);(\$\w+)=base64_decode\(((?:(?|[\'"][\w=]+[\'"]|chr\(\d+\))\.?)+)\);(\$\w+)=base64_decode\(((?:(?|[\'"][\w=]+[\'"]|chr\(\d+\))\.?)+)\);(\1\((\(-(\d+)-\(-\9\)\))\);@set_time_limit\((\(-(\d+)-\(-\11\)\))\);)eval\(base64_decode\(((?:(?|[\'"]\d+[\'"]|chr\(\d+\))\.?)+)\)\.gzinflate\(str_rot13\(\3\(\5\){4};~msi', 'id' => 'evalConcatedVars', ], [ 'full' => '~(\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\]="[\w\\\\]+";(\$\w+="\w+";)?){5,}.+\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\].+}+~msi', 'fast' => '~(\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\]="[\w\\\\]+";(\$\w+="\w+";)?){5,}.+\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\].+}+~msi', 'id' => 'Obf_20200618_1', ], [ 'full' => '~(\$\w+\s?=\s?(\w+)\(\'\d+\'\);\s*)+\$\w+\s?=\s?new\s?\$\w+\(\2\(\'(\d+)\'\)+;\s?error_reporting\(0\);\s?eval\(\$\w+\(\$\w+->\$\w+\("([^"]+)"\)+;.+?function \2.+?return\s\$\w+;\s}~msi', 'fast' => '~(\$\w+\s?=\s?(\w+)\(\'\d+\'\);\s*)+\$\w+\s?=\s?new\s?\$\w+\(\2\(\'(\d+)\'\)+;\s?error_reporting\(0\);\s?eval\(\$\w+\(\$\w+->\$\w+\("([^"]+)"\)+;.+?function \2.+?return\s\$\w+;\s}~msi', 'id' => 'aanKFM', ], [ 'full' => '~error_reporting\(\d\);@?set_time_limit\(\d\);(\$\w{1,50})\s?=\s?[\'"]([^\'"]+)[\'"];(\$\w{1,50})\s?=\s?[\'"]([^\'"]+)[\'"];(\$\w{1,50})\s?=\s?[\'"]([^\'"]{0,100})[\'"];(\$\w{1,50}\s?=\s?[\'"][^\'"]{0,500}[\'"];)eval\(gzinflate\(base64_decode\(\3\)\)\);rebirth\(\);eval\(gzinflate\(base64_decode\(hate\(\1,\5\){4};~msi', 'fast' => '~error_reporting\(\d\);@?set_time_limit\(\d\);(\$\w{1,50})\s?=\s?[\'"]([^\'"]+)[\'"];(\$\w{1,50})\s?=\s?[\'"]([^\'"]+)[\'"];(\$\w{1,50})\s?=\s?[\'"]([^\'"]{0,100})[\'"];(\$\w{1,50}\s?=\s?[\'"][^\'"]{0,500}[\'"];)eval\(gzinflate\(base64_decode\(\$\w{1,50}\)\)\);rebirth\(\);eval\(gzinflate\(base64_decode\(hate\(\$\w{1,50},\$\w{1,50}\){4};~msi', 'id' => 'evalLoveHateFuncs', ], [ 'full' => '~function\s?(\w+)\(\){\s?(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?\2\s?=\s?str_rot13\(\2\);\s?(\w+)\(\2\);\s?}\s?function\s?\4\((\$\w+)\){\s?(?:global\s?\$\w+;\s?)?\5\s?=\s?pack\([\'"]H\*[\'"],\5\);\s?(\$\w+)\s?=\s?[\'"]{2};\s?eval\(((?:\6|\5)\.?)+\);\s?}\s?\1\(\);~msi', 'fast' => '~function\s?(\w+)\(\){\s?(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?\2\s?=\s?str_rot13\(\2\);\s?(\w+)\(\2\);\s?}\s?function\s?\4\((\$\w+)\){\s?(?:global\s?\$\w+;\s?)?\5\s?=\s?pack\([\'"]H\*[\'"],\5\);\s?(\$\w+)\s?=\s?[\'"]{2};\s?eval\(((?:\6|\5)\.?)+\);\s?}\s?\1\(\);~msi', 'id' => 'evalPackStrrot', ], [ 'full' => '~error_reporting\(\d\);(?:\$\w+=[\'"]\w+[\'"];)?ini_set\([\'"]\w+[\'"],\d\);eval\(base64_decode\([\'"]([\w\+=]+)[\'"]\)\);\$\w+=str_split\([\'"]([}\w|,[=\'\.;\]&]+)[\'"]\);\$\w+=[\'"]{2};foreach\(\$\w+\s{0,50}as\s{0,50}\$\w+\){foreach\((\$\w+)\s{0,50}as\s{0,50}\$\w+\s{0,50}=>\s{0,50}\$\w+\){(?:\$\w+=[\'"]\w+[\'"];\$\w+=[\'"]\w+[\'"];)?if\(\$\w+\s{0,50}==\s{0,50}\(string\)\$\w+\){(?:\$\w+=[\'"]\w+[\'"];\$\w+=[\'"]\w+[\'"];)?\$\w+\s{0,50}\.=\s{0,50}\$\w+;break;}}}eval\([\'"]\?>[\'"]\.gzinflate\(base64_decode\(\$\w+\)\)\);~msi', 'fast' => '~error_reporting\(\d\);(?:\$\w+=[\'"]\w+[\'"];)?ini_set\([\'"]\w+[\'"],\d\);eval\(base64_decode\([\'"]([\w\+=]+)[\'"]\)\);\$\w+=str_split\([\'"]([}\w|,[=\'\.;\]&]+)[\'"]\);\$\w+=[\'"]{2};foreach\(\$\w+\s{0,50}as\s{0,50}\$\w+\){foreach\((\$\w+)\s{0,50}as\s{0,50}\$\w+\s{0,50}=>\s{0,50}\$\w+\){(?:\$\w+=[\'"]\w+[\'"];\$\w+=[\'"]\w+[\'"];)?if\(\$\w+\s{0,50}==\s{0,50}\(string\)\$\w+\){(?:\$\w+=[\'"]\w+[\'"];\$\w+=[\'"]\w+[\'"];)?\$\w+\s{0,50}\.=\s{0,50}\$\w+;break;}}}eval\([\'"]\?>[\'"]\.gzinflate\(base64_decode\(\$\w+\)\)\);~msi', 'id' => 'evalArrayVar', ], [ 'full' => '~((\$\w+)\s*\.=\s*"[^"]+";\s*)+eval\((\$\w+\s*\.?\s*)+\)~msi', 'fast' => '~((\$\w+)\s*\.=\s*"[^"]+";\s*)+eval\((\$\w+\s*\.?\s*)+\)~msi', 'id' => 'evalVarConcat', ], [ 'full' => '~((\$[^\s=]+)\s*=\s*[\'"]([^\'"]+)[\'"];\s*)+\s*.{0,10}?(?:error_reporting\(\d\);|@set_time_limit\(\d\);|@){0,2}eval\s*\(\s*([\'"?>.\s]+)?\(?(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|htmlspecialchars_decode\s*\()+(\({0,1}[\s"\']?(\$[^\s=\'")]+)?(?:str_replace\((?:.+?,){3}\2?)?[\s"\']?\){0,1})\)+;~msi', 'fast' => '~((\$[^\s=]+)\s*=\s*[\'"]([^\'"]+)[\'"];\s*)+\s*.{0,10}?(?:error_reporting\(\d\);|@set_time_limit\(\d\);|@){0,2}eval\s*\(\s*([\'"?>.\s]+)?\(?(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|htmlspecialchars_decode\s*\()+(\({0,1}[\s"\']?(\$[^\s=\'")]+)?(?:str_replace\((?:.+?,){3}\2?)?[\s"\']?\){0,1})\)+;~msi', 'id' => 'evalVar', ], [ 'full' => '~((?:(?:\$\w+=[\'"]\\\\[^\'"]+)[\'"];)+)@(eval\((?:\$\w+\()+[\'"]([^\'"]+)[\'"]\)+;)~msi', 'fast' => '~((?:(?:\$\w+=[\'"]\\\\[^\'"]+)[\'"];)+)@(eval\((?:\$\w+\()+[\'"]([^\'"]+)[\'"]\)+;)~msi', 'id' => 'evalVarSlashed', ], [ 'full' => '~function\s*(\w{1,40})\((\$\w{1,40})\)\{(\$\w{1,40})=\'base64_decode\';(\$\w{1,40})=\'gzinflate\';return\s*\4\(\3\(\2\)\);\}\$\w{1,40}=\'[^\']*\';\$\w{1,40}=\'[^\']*\';eval\(\1\(\'([^\']*)\'\)\);~msi', 'fast' => '~function\s*(\w{1,40})\((\$\w{1,40})\)\{(\$\w{1,40})=\'base64_decode\';(\$\w{1,40})=\'gzinflate\';return\s*\4\(\3\(\2\)\);\}\$\w{1,40}=\'[^\']*\';\$\w{1,40}=\'[^\']*\';eval\(\1\(\'([^\']*)\'\)\);~msi', 'id' => 'evalFunc', ], [ 'full' => '~function\s*(\w{1,40})\s*\((\$\w{1,40})\)\s*\{\s*(\$\w{1,40})\s*=\s*"\\\\x62\\\\x61\\\\x73\\\\x65\\\\x36\\\\x34\\\\x5f\\\\x64\\\\x65\\\\x63\\\\x6f\\\\x64\\\\x65";\s*(\$\w{1,40})\s*=\s*"\\\\x67\\\\x7a\\\\x69\\\\x6e\\\\x66\\\\x6c\\\\x61\\\\x74\\\\x65";\s*return\s*\4\s*\(\3\s*\(\2\)\);\s*\}\s*\$\w{1,40}\s*=\s*\"[^\"]*\";\s*\$\w{1,40}\s*=\s*\"[^\"]*\";\s*eval\s*\(\1\s*\(\"([^\"]*)\"\)\);~msi', 'fast' => '~function\s*(\w{1,40})\s*\((\$\w{1,40})\)\s*\{\s*(\$\w{1,40})\s*=\s*"\\\\x62\\\\x61\\\\x73\\\\x65\\\\x36\\\\x34\\\\x5f\\\\x64\\\\x65\\\\x63\\\\x6f\\\\x64\\\\x65";\s*(\$\w{1,40})\s*=\s*"\\\\x67\\\\x7a\\\\x69\\\\x6e\\\\x66\\\\x6c\\\\x61\\\\x74\\\\x65";\s*return\s*\4\s*\(\3\s*\(\2\)\);\s*\}\s*\$\w{1,40}\s*=\s*\"[^\"]*\";\s*\$\w{1,40}\s*=\s*\"[^\"]*\";\s*eval\s*\(\1\s*\(\"([^\"]*)\"\)\);~msi', 'id' => 'evalFunc', ], [ 'full' => '~(\$\w+)\s?=\s?[\'"]@?(([\w."]+\()+[\'"]([\w\/+]+)[\'"])\)+;[\'"]\s?;\s?(\$\w+)\s?=\s?([\w@."]+)\s?;\s?@?(\$\w+)\s?=\s\5\([\'"]+,\s?"\1;"\s?\);\7\([\'"]{2}\);~msi', 'fast' => '~(\$\w+)\s?=\s?[\'"]@?(([\w."]+\()+[\'"]([\w\/+]+)[\'"])\)+;[\'"]\s?;\s?(\$\w+)\s?=\s?([\w@."]+)\s?;\s?@?(\$\w+)\s?=\s\5\([\'"]+,\s?"\1;"\s?\);\7\([\'"]{2}\);~msi', 'id' => 'evalConcatFunc', ], [ 'full' => '~function\sT_\((\$\w+)\)\s{\s(\$\w+)\s=\s256;\s(\$w2)\s=\s8;\s(\$\w+)\s=\sarray\(\);\s(\$\w+)\s=\s0;\s(\$\w+)\s=\s0;\sfor\s\((\$\w+)\s=\s0;\s\7\s<\sstrlen\(\1\);\s\7\+\+\)\s{\s\5\s=\s\(\5\s<<\s8\)\s\+\sord\(\1\[\7\]\);\s\6\s\+=\s8;\sif\s\(\6\s>=\s\3\)\s{\s\6\s-=\s\3;\s(\$\w+)\[\]\s=\s\5\s>>\s\6;\s\5\s&=\s\(1\s<<\s\6\)\s-\s1;\s\2\+\+;\sif\s\(\2\s>>\s\3\)\s{\s\3\+\+;\s}\s}\s}\s(\$\w+)\s=\srange\("\\\\x0",\s"\\\\377"\);\s(\$\w+)\s=\s\'\';\sforeach\s\(\4\sas\s\7\s=>\s(\$\w+)\)\s{\sif\s\(!isset\(\9\[\11\]\)\)\s{\s(\$\w+)\s=\s(\$\w+)\s\.\s\13\[0\];\s}\selse\s{\s\12\s=\s\9\[\11\];\s}\s\10\s\.=\s\12;\sif\s\(\7\)\s{\s\9\[\]\s=\s\13\s\.\s\12\[0\];\s}\s\13\s=\s\12;\s}\sreturn\s\10;\s}\s(\$_\w+)="[\w\\\\]+";eval\(T_\(\14\("(.*)"\)\)\);~mis', 'fast' => '~function\sT_\((\$\w+)\)\s{\s(\$\w+)\s=\s256;\s(\$w2)\s=\s8;\s(\$\w+)\s=\sarray\(\);\s(\$\w+)\s=\s0;\s(\$\w+)\s=\s0;\sfor\s\((\$\w+)\s=\s0;\s\7\s<\sstrlen\(\1\);\s\7\+\+\)\s{\s\5\s=\s\(\5\s<<\s8\)\s\+\sord\(\1\[\7\]\);\s\6\s\+=\s8;\sif\s\(\6\s>=\s\3\)\s{\s\6\s-=\s\3;\s(\$\w+)\[\]\s=\s\5\s>>\s\6;\s\5\s&=\s\(1\s<<\s\6\)\s-\s1;\s\2\+\+;\sif\s\(\2\s>>\s\3\)\s{\s\3\+\+;\s}\s}\s}\s(\$\w+)\s=\srange\("\\\\x0",\s"\\\\377"\);\s(\$\w+)\s=\s\'\';\sforeach\s\(\4\sas\s\7\s=>\s(\$\w+)\)\s{\sif\s\(!isset\(\9\[\11\]\)\)\s{\s(\$\w+)\s=\s(\$\w+)\s\.\s\13\[0\];\s}\selse\s{\s\12\s=\s\9\[\11\];\s}\s\10\s\.=\s\12;\sif\s\(\7\)\s{\s\9\[\]\s=\s\13\s\.\s\12\[0\];\s}\s\13\s=\s\12;\s}\sreturn\s\10;\s}\s(\$_\w+)="[\w\\\\]+";eval\(T_\(\14\("(.*)"\)\)\);~mis', 'id' => 'evalFuncFunc', ], [ 'full' => '~(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?(\$\w+)\s?=\s?bin2hex\(\5\);\s?(\$\w+)\s?=\s?hex2bin\(\7\);\s*(?:eval\()+[\'"]\?>[\'"]\.\1\(\3\(\8\)+;~msi', 'fast' => '~(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s?(\$\w+)\s?=\s?bin2hex\(\5\);\s?(\$\w+)\s?=\s?hex2bin\(\7\);\s*(?:eval\()+[\'"]\?>[\'"]\.\1\(\3\(\8\)+;~msi', 'id' => 'evalBinHexVar', ], [ 'full' => '~((?:\${"(?:\w{0,10}?\\\\x\w{1,10}){1,100}"}\["\w{0,10}?(?:\\\\x\w{1,10}){1,100}"\]="(?:\\\\x\w{1,10}){1,100}";)+.*?define.*?)\${\$\w{1,50}}=array\(array\(((?:"[^"]{1,500}",?){1,1000})\)\);(.*create_function\(.*?array_walk\(\${\${"(?:\\\\x\w{1,10}){1,10}"}\["(?:\\\\x\w{1,10}){1,10}"\]},\${\${"(?:\\\\x\w{1,10}){1,10}"}\["(?:\w?\\\\x\w{1,10}){1,10}"\]}\);)~msi', 'fast' => '~((?:\${"(?:\w{0,10}?\\\\x\w{1,10}){1,100}"}\["\w{0,10}?(?:\\\\x\w{1,10}){1,100}"\]="(?:\\\\x\w{1,10}){1,100}";)+.*?define.*?)\${\$\w{1,50}}=array\(array\(((?:"[^"]{1,500}",?){1,1000})\)\);(.*create_function\(.*?array_walk\(\${\${"(?:\\\\x\w{1,10}){1,10}"}\["(?:\\\\x\w{1,10}){1,10}"\]},\${\${"(?:\\\\x\w{1,10}){1,10}"}\["(?:\w?\\\\x\w{1,10}){1,10}"\]}\);)~msi', 'id' => 'evalArrayWalkFunc' ], [ 'full' => '~(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s*eval\([\'"]\?>[\'"]\s?\.\s?base64_decode\(strtr\(substr\(\1\s?,(\d+)\*(\d+)\)\s?,\s?substr\(\1\s?,(\d+)\s?,\s?(\d+)\)\s?,\s*substr\(\s?\1\s?,\s?(\d+)\s?,\s?(\d+)(?:\s?\))+;~msi', 'fast' => '~(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];\s*eval\([\'"]\?>[\'"]\s?\.\s?base64_decode\(strtr\(substr\(\1\s?,(\d+)\*(\d+)\)\s?,\s?substr\(\1\s?,(\d+)\s?,\s?(\d+)\)\s?,\s*substr\(\s?\1\s?,\s?(\d+)\s?,\s?(\d+)(?:\s?\))+;~msi', 'id' => 'evalSubstrVal' ], [ 'full' => '~(preg_replace\(["\']/\.\*?/[^"\']+["\']\s*,\s*)[^\),]+(?:[\)\\\\0-5]+;[\'"])?(,\s*["\'][^"\']*["\'])\)+;~msi', 'fast' => '~(preg_replace\(["\']/\.\*?/[^"\']+["\']\s*,\s*)[^\),]+(?:[\)\\\\0-5]+;[\'"])?(,\s*["\'][^"\']*["\'])\)+;~msi', 'id' => 'eval', ], [ 'full' => '~(\$\w{1,40})\s*=\s*[\'"]([^\'"]*)[\'"]\s*;\s*(\$\w{1,40}\s*=\s*(strtolower|strtoupper)\s*\((\s*\1[\[\{]\s*\d+\s*[\]\}]\s*\.?\s*)+\);\s*)+\s*if\s*\(\s*isset\s*\(\s*\$\{\s*\$\w{1,40}\s*\}\s*\[\s*[\'"][^\'"]*[\'"]\s*\]\s*\)\s*\)\s*\{\s*eval\s*\(\s*\$\w{1,40}\s*\(\s*\$\s*\{\s*\$\w{1,40}\s*\}\s*\[\s*[\'"][^\'"]*[\'"]\s*\]\s*\)\s*\)\s*;\s*\}\s*~msi', 'fast' => '~(\$\w{1,40})\s*=\s*[\'"]([^\'"]*)[\'"]\s*;\s*(\$\w{1,40}\s*=\s*(strtolower|strtoupper)\s*\((\s*\1[\[\{]\s*\d+\s*[\]\}]\s*\.?\s*)+\);\s*)+\s*if\s*\(\s*isset\s*\(\s*\$\{\s*\$\w{1,40}\s*\}\s*\[\s*[\'"][^\'"]*[\'"]\s*\]\s*\)\s*\)\s*\{\s*eval\s*\(\s*\$\w{1,40}\s*\(\s*\$\s*\{\s*\$\w{1,40}\s*\}\s*\[\s*[\'"][^\'"]*[\'"]\s*\]\s*\)\s*\)\s*;\s*\}\s*~msi', 'id' => 'evalInject', ], [ 'full' => '~((\$\w+)\s*=\s*(([base64_decode\'\.\s]+)|([eval\'\.\s]+)|([create_function\'\.\s]+)|([stripslashes\'\.\s]+)|([gzinflate\'\.\s]+)|([strrev\'\.\s]+)|([str_rot13\'\.\s]+)|([gzuncompress\'\.\s]+)|([urldecode\'\.\s]+)([rawurldecode\'\.\s]+));\s*)+\$\w+\s*=\s*\$\w+\(\'\',(\s*\$\w+\s*\(\s*)+\'[^\']+\'\)+;\s*\$\w+\(\);~msi', 'fast' => '~((\$\w+)\s*=\s*(([base64_decode\'\.\s]+)|([eval\'\.\s]+)|([create_function\'\.\s]+)|([stripslashes\'\.\s]+)|([gzinflate\'\.\s]+)|([strrev\'\.\s]+)|([str_rot13\'\.\s]+)|([gzuncompress\'\.\s]+)|([urldecode\'\.\s]+)([rawurldecode\'\.\s]+));\s*)+\$\w+\s*=\s*\$\w+\(\'\',(\s*\$\w+\s*\(\s*)+\'[^\']+\'\)+;\s*\$\w+\(\);~msi', 'id' => 'createFuncConcat', ], [ 'full' => '~(\$\w+)\s*=\s*base64_decode\("([^"]+)"\);(\1\s*=\s*ereg_replace\("([^"]+)","([^"]+)",\1\);)+\1=base64_decode\(\1\);eval\(\1\);~msi', 'fast' => '~(\$\w+)\s*=\s*base64_decode\("([^"]+)"\);(\1\s*=\s*ereg_replace\("([^"]+)","([^"]+)",\1\);)+\1=base64_decode\(\1\);eval\(\1\);~msi', 'id' => 'evalEregReplace', ], [ 'full' => '~((\$\w+)\s*=\s*(([base64_decode"\'\.\s]+)|([eval"\'\.\s]+)|([create_function"\'\.\s]+)|([stripslashes"\'\.\s]+)|([gzinflate"\'\.\s]+)|([strrev"\'\.\s]+)|([str_rot13"\'\.\s]+)|([gzuncompress"\'\.\s]+)|([urldecode"\'\.\s]+)([rawurldecode"\'\.\s]+));\s*)+\s*@?eval\(\$[^)]+\)+;~msi', 'fast' => '~((\$\w+)\s*=\s*(([base64_decode"\'\.\s]+)|([eval"\'\.\s]+)|([create_function"\'\.\s]+)|([stripslashes"\'\.\s]+)|([gzinflate"\'\.\s]+)|([strrev"\'\.\s]+)|([str_rot13"\'\.\s]+)|([gzuncompress"\'\.\s]+)|([urldecode"\'\.\s]+)([rawurldecode"\'\.\s]+));\s*)+\s*@?eval\(\$[^)]+\)+;~msi', 'id' => 'evalWrapVar', ], [ 'full' => '~\$\{"(.{1,20}?(\\\\x[0-9a-f]{2})+)+.?";@?eval\s*\(\s*([\'"?>.]+)?@?\s*(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|eval\s*\()+\(?\$\{\$\{"[^\)]+\)+;~msi', 'fast' => '~\$\{"(.{1,20}?(\\\\x[0-9a-f]{2})+)+.?";@?eval\s*\(\s*([\'"?>.]+)?@?\s*(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|eval\s*\()+\(?\$\{\$\{"[^\)]+\)+;~msi', 'id' => 'escapes', ], [ 'full' => '~(\$\w+)\s*=(?:\s*(?:(?:["\'][a-z0-9][\'"])|(?:chr\s*\(\d+\))|(?:[\'"]\\\\x[0-9a-f]+[\'"]))\s*?\.?)+;\s*(\$\w+)\s*=(?:\s*(?:(?:["\'][a-z0-9][\'"])|(?:chr\s*\(\d+\))|(?:[\'"]\\\\x[0-9a-f]+[\'"]))\s*?\.?)+;\s*@?\1\s*\(@?\2\s*\([\'"]([^\'"]+)[\'"]\)+;~msi', 'fast' => '~(\$\w+)\s*=(?:\s*(?:(?:["\'][a-z0-9][\'"])|(?:chr\s*\(\d+\))|(?:[\'"]\\\\x[0-9a-f]+[\'"]))\s*?\.?)+;\s*(\$\w+)\s*=(?:\s*(?:(?:["\'][a-z0-9][\'"])|(?:chr\s*\(\d+\))|(?:[\'"]\\\\x[0-9a-f]+[\'"]))\s*?\.?)+;\s*@?\1\s*\(@?\2\s*\([\'"]([^\'"]+)[\'"]\)+;~msi', 'id' => 'assert', ], [ 'full' => '~eval\s*\(str_rot13\s*\([\'"]+\s*(?:.+(?=\\\\\')\\\\\'[^\'"]+)+[\'"]+\)+;~msi', 'fast' => '~eval\s*\(str_rot13\s*\([\'"]+\s*(?:.+(?=\\\\\')\\\\\'[^\'"]+)+[\'"]+\)+;~msi', 'id' => 'evalCodeFunc', ], [ 'full' => '~\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\'](\w+)[\'"];\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\']\2[\'"];\${\$\{"GLOBALS"\}\[[\'"]\3[\'"]\]}=[\'"]([^\'"]+)[\'"];eval.{10,50}?\$\{\$\{"GLOBALS"\}\[[\'"]\1[\'"]\]\}\)+;~msi', 'fast' => '~\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\'](\w+)[\'"];\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\']\2[\'"];\${\$\{"GLOBALS"\}\[[\'"]\3[\'"]\]}=[\'"]([^\'"]+)[\'"];eval.{10,50}?\$\{\$\{"GLOBALS"\}\[[\'"]\1[\'"]\]\}\)+;~msi', 'id' => 'evalVarVar', ], [ 'full' => '~(\$\w+)=[\'"][^"\']+[\'"];(\$\w+)=strrev\(\'edoced_46esab\'\);eval\(\2\([\'"][^\'"]+[\'"]\)+;~msi', 'fast' => '~(\$\w+)=[\'"][^"\']+[\'"];(\$\w+)=strrev\(\'edoced_46esab\'\);eval\(\2\([\'"][^\'"]+[\'"]\)+;~msi', 'id' => 'edoced_46esab', ], [ 'full' => '~(\$\w+)=strrev\([\'"](?:|ed|oc|_|4|6|es|ab|(?:"\."))+[\'"]\);\s*(\$\w+)=strrev\([\'"](?:|et|al|fn|iz|g|(?:"\."))+[\'"]\);\s?@?eval\(\2\(\1\([\'"]([\w\/\+=]+)[\'"]\)\)\);~msi', 'fast' => '~(\$\w+)=strrev\([\'"](?:|ed|oc|_|4|6|es|ab|(?:"\."))+[\'"]\);\s*(\$\w+)=strrev\([\'"](?:|et|al|fn|iz|g|(?:"\."))+[\'"]\);\s?@?eval\(\2\(\1\([\'"]([\w\/\+=]+)[\'"]\)\)\);~msi', 'id' => 'edoced_46esab_etalfnizg', ], [ 'full' => '~(\$\w+)\s*=\s*"((?:[^"]|(?<=\\\\)")*)";(\$\w+)\s*=\s*(\1\[\d+\]\.?)+;(\$\w+)\s*=\s*[^;]+;(\$\w+)\s*=\s*"[^"]+";\$\w+\s*=\s*\5\."[^"]+"\.\6;\3\((\1\[\d+\]\.?)+,\s*\$\w+\s*,"\d+"\);~smi', 'fast' => '~(\$\w+)\s*=\s*"((?:[^"]|(?<=\\\\)"){0,1000})";(\$\w+)\s*=\s*(\1\[\d+\]\.?)+;(\$\w+)\s*=\s*[^;]+;(\$\w+)\s*=\s*"[^"]+";\$\w+\s*=\s*\5\."[^"]+"\.\6;\3\((\1\[\d+\]\.?)+,\s*\$\w+\s*,"\d+"\);~smi', 'id' => 'eval2', ], [ 'full' => '~(?:\${"\\\\x[\\\\\w]+"}\["\\\\x[\\\\\w]+"\]\s?=\s?"[\w\\\\]+";){1,10}\${\${"\\\\x[\\\\\w]+"}\["[\\\\\w]+"\]}\s?=\s?"\w{1,100}";\${\${\${"\\\\x[\\\\\w]+"}\["[\\\\\w]+"\]}\s?}="(\\\\x[\\\\\w]+)";eval\(((?|str_rot13\(|gzinflate\(|base64_decode\(){1,10})\(\${\${"\\\\x[\\\\\w]+"}\["[\\\\\w]+"\]}\){1,5};~msi', 'fast' => '~(?:\${"\\\\x[\\\\\w]+"}\["\\\\x[\\\\\w]+"\]\s?=\s?"[\w\\\\]+";){1,10}\${\${"\\\\x[\\\\\w]+"}\["[\\\\\w]+"\]}\s?=\s?"\w{1,100}";\${\${\${"\\\\x[\\\\\w]+"}\["[\\\\\w]+"\]}\s?}="(\\\\x[\\\\\w]+)";eval\(((?|str_rot13\(|gzinflate\(|base64_decode\(){1,10})\(\${\${"\\\\x[\\\\\w]+"}\["[\\\\\w]+"\]}\){1,5};~msi', 'id' => 'evalEscapedCharsContent', ], [ 'full' => '~@?(eval|echo|(\$\w+)\s*=\s*create_function)(?:\/\*+\/)?\s*\((\'\',)?\s*([\'"?>.\s]+)?\s*\(?\s*@?\s*(base64_decode\s*\(|pack\s*\(\'H\*\',|convert_uudecode\s*\(|htmlspecialchars_decode\s*\(|stripslashes\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|eval\s*\(|hex2bin\()+.*?[^\'");]+((\s*\.?[\'"]([^\'";]+[\'"]*\s*)+)?\s*[\'"\);]+)+(\s*\2\(\);)?~msi', 'fast' => '~@?(eval|echo|(\$\w+)\s*=\s*create_function)(?:\/\*+\/)?\s*\((\'\',)?\s*([\'"?>.\s]+)?\s*\(?\s*@?\s*(base64_decode\s*\(|pack\s*\(\'H\*\',|convert_uudecode\s*\(|htmlspecialchars_decode\s*\(|stripslashes\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|eval\s*\(|hex2bin\()+.*?[^\'");]+((\s*\.?[\'"]([^\'";]+[\'"]*\s*)+)?\s*[\'"\);]+)+(\s*\2\(\);)?~msi', 'id' => 'eval', ], [ 'full' => '~eval\s*/\*[\w\s\.:,]+\*/\s*\([^\)]+\)+;~msi', 'fast' => '~eval\s*/\*[\w\s\.:,]+\*/\s*\(~msi', 'id' => 'eval', ], [ 'full' => '~((?:\$\w+\s?=\s?(?:base64_decode|str_rot13)\([\'"][^\'"]+[\'"]\);)+)\s?(eval\((?:(?:\w+\()*\$\w+\(?)+(?:.*?)?\)+;)~msi', 'fast' => '~((?:\$\w+\s?=\s?(?:base64_decode|str_rot13)\([\'"][^\'"]+[\'"]\);)+)\s?(eval\((?:(?:\w+\()*\$\w+\(?)+(?:.*?)?\)+;)~msi', 'id' => 'evalFuncVars', ], [ 'full' => '~eval\("\\\\145\\\\166\\\\141\\\\154\\\\050\\\\142\\\\141\\\\163[^\)]+\)+;~msi', 'fast' => '~eval\("\\\\145\\\\166\\\\141\\\\154\\\\050\\\\142\\\\141\\\\163~msi', 'id' => 'evalHex', ], [ 'full' => '~eval\s*\("\\\\x?\d+[^\)]+\)+;(?:[\'"]\)+;)?~msi', 'fast' => '~eval\s*\("\\\\x?\d+~msi', 'id' => 'evalHex', ], [ 'full' => '~(\$\w+)\s=\s(["\']?[\w\/\+]+["\']?);\s(\$\w+)\s=\s((?:str_rot13\(|rawurldecode\(|convert_uudecode\(|gzinflate\(|str_rot13\(|base64_decode\(|rawurldecode\(|)+\1\)\)+);\secho\s(eval\(\3\);)~msi', 'fast' => '~(\$\w+)\s=\s(["\']?[\w\/\+]+["\']?);\s(\$\w+)\s=\s((?:str_rot13\(|rawurldecode\(|convert_uudecode\(|gzinflate\(|str_rot13\(|base64_decode\(|rawurldecode\(|)+\1\)\)+);\secho\s(eval\(\3\);)~msi', 'id' => 'echoEval', ], [ 'full' => '~if\(!function_exists\([\'"](\w+)[\'"]\)\){function\s?\1\((\$\w+)\){(\$\w+)=array\(\'(\d+)\',\'([^\']+)\',\'([^\']+)\',\2\);for\((\$\w+)=0;\7<4;\7\+\+\){for\((\$\w+)=0;\8<strlen\(\3\[\7\]\);\8\+\+\)\s?\3\[\7\]\[\8\]\s?=\s?chr\(ord\(\3\[\7\]\[\8\]\)-\(\7\?\3\[\8\s?xor\s?\8\]:1\)\);if\(\7==2\)\s?\3\[3\]=\3\[1\]\(\3\[2\]\(\3\[3\]\)\);}\s?return\s?\3\[3\];}(\$\w+)=["\']([\w\+\/=]+)["\'];(\$\w+)=[\'"]\1[\'"];(\$\w+)=\11\([\'"]([\w=]+)[\'"]\);\$\w+=\12\(\'\',\11\(\9\)\);\$\w+\(\);}~msi', 'fast' => '~if\(!function_exists\([\'"](\w+)[\'"]\)\){function\s?\1\((\$\w+)\){(\$\w+)=array\(\'(\d+)\',\'([^\']+)\',\'([^\']+)\',\2\);for\((\$\w+)=0;\7<4;\7\+\+\){for\((\$\w+)=0;\8<strlen\(\3\[\7\]\);\8\+\+\)\s?\3\[\7\]\[\8\]\s?=\s?chr\(ord\(\3\[\7\]\[\8\]\)-\(\7\?\3\[\8\s?xor\s?\8\]:1\)\);if\(\7==2\)\s?\3\[3\]=\3\[1\]\(\3\[2\]\(\3\[3\]\)\);}\s?return\s?\3\[3\];}(\$\w+)=["\']([\w\+\/=]+)["\'];(\$\w+)=[\'"]\1[\'"];(\$\w+)=\11\([\'"]([\w=]+)[\'"]\);\$\w+=\12\(\'\',\11\(\9\)\);\$\w+\(\);}~msi', 'id' => 'evalCreateFunc', ], [ 'full' => '~(\$\w{1,1000})=[\'"]([\'"\w/\+=]+)[\'"];(\$\w{1,3000}=(?:base64_decode|gzinflate|convert_uudecode|str_rot13)\(\$\w{1,3000}\);){1,100}eval\((\$\w{1,3000})\);~msi', 'fast' => '~(\$\w{1,1000})=[\'"]([\'"\w/\+=]+)[\'"];(\$\w{1,3000}=(?:base64_decode|gzinflate|convert_uudecode|str_rot13)\(\$\w{1,3000}\);){1,100}eval\((\$\w{1,3000})\);~msi', 'id' => 'evalAssignedVars', ], [ 'full' => '~\$\w{1,50}=\'printf\';(\s*\$\w{1,50}\s*=\s*\'[^\']+\'\s*;)+\s*(\$\w{1,50}\s*=\s*\$\w{1,50}\([^\)]+\);\s*|(?:if\(!function_exists\(\'[^\']+\'\)\){function\s\w{1,50}\(\$\w{1,50},\$\w{1,50}\){return\s?eval\("return function\(\$\w{1,50}\){{\$\w{1,50}}};"\);}}\s*)?)+(\$\w{1,50}\s*=\s*\'[^\']+\';\s*)?(\s*(\$\w{1,50}\s*=\s*)?\$\w+\([^)]*\)+;\s*)+(echo\s*\$\w{1,50};)?~msi', 'fast' => '~\$\w{1,50}=\'printf\';(\s*\$\w{1,50}\s*=\s*\'[^\']+\'\s*;)+\s*(\$\w{1,50}\s*=\s*\$\w{1,50}\([^\)]+\);\s*|(?:if\(!function_exists\(\'[^\']+\'\)\){function\s\w{1,50}\(\$\w{1,50},\$\w{1,50}\){return\s?eval\("return function\(\$\w{1,50}\){{\$\w{1,50}}};"\);}}\s*)?)+(\$\w{1,50}\s*=\s*\'[^\']+\';\s*)?(\s*(\$\w{1,50}\s*=\s*)?\$\w+\([^)]*\)+;\s*)+(echo\s*\$\w{1,50};)?~msi', 'id' => 'seolyzer', ], [ 'full' => '~(\$\w+)="((?:[^"]|(?<=\\\\)")*)";(\s*\$GLOBALS\[\'\w+\'\]\s*=\s*(?:\${)?(\1\[\d+\]}?\.?)+;\s*)+(.{0,400}\s*\1\[\d+\]\.?)+;\s*}~msi', 'fast' => '~(\$\w+)="((?:[^"]|(?<=\\\\)"){0,1000})";(\s*\$GLOBALS\[\'\w+\'\]\s*=\s*(?:\${)?(\1\[\d+\]}?\.?)+;\s*)+(.{0,400}\s*\1\[\d+\]\.?)+;\s*}~msi', 'id' => 'subst2', ], [ 'full' => '~(\$\w{1,50}\s*=\s*"[^"]{1,1000}";\s*)+(\$\w{1,50}\s*=\s*\$?\w{1,50}\("\w{1,50}"\s*,\s*""\s*,\s*"\w{1,50}"\);\s*)+\$\w{1,50}\s*=\s*\$\w{1,50}\("",\s*\$\w{1,50}\(\$\w{1,50}\("\w{1,50}",\s*"",(\s*\$\w{1,50}\.?)+\)+;\$\w{1,50}\(\);~msi', 'fast' => '~(\$\w{1,50}\s*=\s*"[^"]{1,1000}";\s*)+(\$\w{1,50}\s*=\s*\$?\w{1,50}\("\w{1,50}"\s*,\s*""\s*,\s*"\w{1,50}"\);\s*)+\$\w{1,50}\s*=\s*\$\w{1,50}\("",\s*\$\w{1,50}\(\$\w{1,50}\("\w{1,50}",\s*"",(\s*\$\w{1,50}\.?)+\)+;\$\w{1,50}\(\);~msi', 'id' => 'strreplace', ], [ 'full' => '~\$\w{1,50}\s?=\s?\'[^\']{1,500}\';\s?\$\w{1,50}\s?=\s?str_replace\(\'\w{1,50}\',\'\',\'\w{1,100}\'\);\s?(?:\$\w{1,50}\s?=\s?\'[^\']{1,500}\';\s?){1,15}\$\w{1,50}\s?=\s?str_replace\(\'[^\']{1,100}\',\'\',(?:\$\w{1,50}\.?){1,50}\);\s?\$\w{1,50}\s?=\s?\$\w{1,50}\(\'\',\$\w{1,50}\);\$\w{1,50}\(\);~msi', 'fast' => '~\$\w{1,50}\s?=\s?\'[^\']{1,500}\';\s?\$\w{1,50}\s?=\s?str_replace\(\'\w{1,50}\',\'\',\'\w{1,100}\'\);\s?(?:\$\w{1,50}\s?=\s?\'[^\']{1,500}\';\s?){1,15}\$\w{1,50}\s?=\s?str_replace\(\'[^\']{1,100}\',\'\',(?:\$\w{1,50}\.?){1,50}\);\s?\$\w{1,50}\s?=\s?\$\w{1,50}\(\'\',\$\w{1,50}\);\$\w{1,50}\(\);~msi', 'id' => 'strreplace', ], [ 'full' => '~@?echo\s*([\'"?>.\s]+)?@?\s*(base64_decode\s*\(|stripslashes\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|eval\s*\()+.*?[^\'")]+((\s*\.?[\'"]([^\'";]+\s*)+)?\s*[\'"\);]+)+~msi', 'fast' => '~@?echo\s*([\'"?>.\s]+)?@?\s*(base64_decode\s*\(|stripslashes\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|eval\s*\()+.*?[^\'")]+((\s*\.?[\'"]([^\'";]+\s*)+)?\s*[\'"\);]+)+~msi', 'id' => 'echo', ], [ 'full' => '~(\$\w+)="([^"]+)";\s*(\$\w+)=strtoupper\s*\((\1\[\d+\]\s*\.?\s*)+\)\s*;\s*if\(\s*isset\s*\(\${\s*\3\s*}\[\d*\s*\'\w+\'\s*\]\s*\)\s*\)\s*{eval\(\${\3\s*}\[\'\w+\']\s*\)\s*;}~smi', 'fast' => '~(\$\w+)="([^"]+)";\s*(\$\w+)=strtoupper\s*\((\1\[\d+\]\s*\.?\s*)+\)\s*;\s*if\(\s*isset\s*\(\${\s*\3\s*}\[\d*\s*\'\w+\'\s*\]\s*\)\s*\)\s*{eval\(\${\3\s*}\[\'\w+\']\s*\)\s*;}~smi', 'id' => 'strtoupper', ], [ 'full' => '~(\$\w+)="[^"]+";\s*(\$\w+)=str_ireplace\("[^"]+","",\1\);(\$\w+)\s*=\s*"[^"]+";\s*function\s*(\w+)\((\$\w+,?)+\){\s*(\$\w+)=\s*create_function\(\'\',\$\w+\);\s*array_map\(\6,array\(\'\'\)+;\s*}\s*set_error_handler\(\'\4\'\);(\$\w+)=\2\(\3\);user_error\(\7,E_USER_ERROR\);\s*if\s*.+?}~msi', 'fast' => '~(\$\w+)="[^"]+";\s*(\$\w+)=str_ireplace\("[^"]+","",\1\);(\$\w+)\s*=\s*"[^"]+";\s*function\s*(\w+)\((\$\w+,?)+\){\s*(\$\w+)=\s*create_function\(\'\',\$\w+\);\s*array_map\(\6,array\(\'\'\)+;\s*}\s*set_error_handler\(\'\4\'\);(\$\w+)=\2\(\3\);user_error\(\7,E_USER_ERROR\);\s*if\s*.+?}~msi', 'id' => 'errorHandler', ], [ 'full' => '~(\$\w+)=strrev\(str_ireplace\("[^"]+","","[^"]+"\)\);(\$\w+)="([^"]+)";eval\(\1\(\2\)+;}~msi', 'fast' => '~(\$\w+)=strrev\(str_ireplace\("[^"]+","","[^"]+"\)\);(\$\w+)="([^"]+)";eval\(\1\(\2\)+;}~msi', 'id' => 'evalIReplace', ], [ 'full' => '~error_reporting\(0\);ini_set\("display_errors",\s*0\);if\(!defined\(\'(\w+)\'\)\){define\(\'\1\',__FILE__\);if\(!function_exists\("([^"]+)"\)\){function [^(]+\([^\)]+\).+?eval\(""\);.+?;eval\(\$[^\)]+\)\);[^\)]+\)+;return\s*\$[^;]+;\s*\?>([^;]+);~msi', 'fast' => '~error_reporting\(0\);ini_set\("display_errors",\s*0\);if\(!defined\(\'(\w+)\'\)\){define\(\'\1\',__FILE__\);if\(!function_exists\("([^"]+)"\)\){function [^(]+\([^\)]+\).+?eval\(""\);.+?;eval\(\$[^\)]+\)\);[^\)]+\)+;return\s*\$[^;]+;\s*\?>([^;]+);~msi', 'id' => 'PHPJiaMi', ], [ 'full' => '~\$\w+=0;(\$GLOBALS\[\'\w+\'\])\s*=\s*\'([^\']+)\';\s*(\$\w+)=pack\(\'H\*\',substr\(\1,\s*([-\d]+)\)\);if\s*\(!function_exists\(\'(\w+)\'\)\){function\s*\5\(\$\w+,\s*\$\w+\){\$\w+=\1;\s*\$d=pack\(\'H\*\',substr\(\1,\s*\4\)\);\s*return\s*\$\w+\(substr\(\$\w+,\s*\$\w+,\s*\$\w+\)\);}};eval\(\3\(\'[^\']+\'\)\);~msi', 'fast' => '~\$\w+=0;(\$GLOBALS\[\'\w+\'\])\s*=\s*\'([^\']+)\';\s*(\$\w+)=pack\(\'H\*\',substr\(\1,\s*([-\d]+)\)\);if\s*\(!function_exists\(\'(\w+)\'\)\){function\s*\5\(\$\w+,\s*\$\w+\){\$\w+=\1;\s*\$d=pack\(\'H\*\',substr\(\1,\s*\4\)\);\s*return\s*\$\w+\(substr\(\$\w+,\s*\$\w+,\s*\$\w+\)\);}};eval\(\3\(\'[^\']+\'\)\);~msi', 'id' => 'substr', ], [ 'full' => '~(function\s*(\w+)\((\$\w+)\){\s*return\s*(base64_decode|gzinflate|eval)\(\$\w+(,\d+)?\);}\s*)+(\$\w+)="([^"]+)";(\w+\()+\6\)+~msi', 'fast' => '~(function\s*(\w+)\((\$\w+)\){\s*return\s*(base64_decode|gzinflate|eval)\(\$\w+(,\d+)?\);}\s*)+(\$\w+)="([^"]+)";(\w+\()+\6\)+~msi', 'id' => 'funcs', ], [ 'full' => '~\$_F=__(?:FILE|hex)__;\$_X=["\']([^\'"]+)[\'"];\s*(?:\$[_\w]+\.=[\'"][\w\+\/=]+[\'"];){0,30}\$_\w+=base64_decode\(\$_X\);\$_X=strtr\(\$_X,\'([^\']+)\',\'([^\']+)\'\);\$_R=@?(?:(str_replace)|(ereg_replace)|(preg_replace))\(\'\~?__FILE__\~?\',"\'".\$_F."\'",\$_X\);eval\(\$_R\);\$_R=0;\$_X=0;~msi', 'fast' => '~\$_F=__(?:FILE|hex)__;\$_X=["\']([^\'"]+)[\'"];\s*(?:\$[_\w]+\.=[\'"][\w\+\/=]+[\'"];){0,30}\$_\w+=base64_decode\(\$_X\);\$_X=strtr\(\$_X,\'([^\']+)\',\'([^\']+)\'\);\$_R=@?(?:(str_replace)|(ereg_replace)|(preg_replace))\(\'\~?__FILE__\~?\',"\'".\$_F."\'",\$_X\);eval\(\$_R\);\$_R=0;\$_X=0;~msi', 'id' => 'LockIt2', ], [ 'full' => '~(?:@error_reporting\(\d+\);\s*@set_time_limit\(\d+\);)?\s*(\$\w+)=([\s\'\w\/+=]+);\s*(\$\w+)=(__FILE__);\s*\1=gzinflate\(str_rot13\(base64_decode\(\$tr\)\)\);\1=strtr\(\1,\'([^\']+)\'\s*,\'([^\']+)\'\);(\$_R)=@?ereg_replace\(\'\~?\4\~?\',"\'".\3."\'",\1\);eval\(\7\);\7=0;\1=0;~msi', 'fast' => '~(\$\w+)=([\s\'\w\/+=]+);\s*(\$\w+)=(__FILE__);\s*\1=\w+\(\w+\(\w+\(\$tr\)\)\);\1=\w+\(\1,\'([^\']+)\'\s*,\'([^\']+)\'\);(\$_R)=@?\w+\(\'\~?\4\~?\',"\'".\3."\'",\1\);\w+\(\7\);\7=0;\1=0;~msi', 'id' => 'anaski', ], [ 'full' => '~\$\w+="[^"]+";\$l+=0;\$l+=\'base64_decode\';\$l+=0;eval\(.+?;eval\(\$l+\);return;~msi', 'fast' => '~\$\w+="[^"]+";\$l+=0;\$l+=\'base64_decode\';\$l+=0;eval\(.+?;eval\(\$l+\);return;~msi', 'id' => 'custom1', ], [ 'full' => '~(\$\w+)\s*=\s*"(\w{32})";\s*(\$\w+)\s*=\s*array\s*\(\);\s*(\3\[\d+\]\s*=\s*"[^"]+";\s*)+\s*(\$\w+)\s*=\s*"base64_decode";\s*\$\w+\s*=\s*(\w+)\s*\(\3,\1\);function\s*\6\(\s*.{200,500}return\s*\$\w+;\s*}\s*eval\s*\(\5\s*\(\$\w+\)\);~msi', 'fast' => '~(\$\w+)\s*=\s*"(\w{32})";\s*(\$\w+)\s*=\s*array\s*\(\);\s*(\3\[\d+\]\s*=\s*"[^"]+";\s*)+\s*(\$\w+)\s*=\s*"base64_decode";\s*\$\w+\s*=\s*(\w+)\s*\(\3,\1\);function\s*\6\(\s*.{200,500}return\s*\$\w+;\s*}\s*eval\s*\(\5\s*\(\$\w+\)\);~msi', 'id' => 'custom2', ], [ 'full' => '~\$\w+=\'=+\s*Obfuscation provided by Unknowndevice64 - Free Online PHP Obfuscator\s*(?:http://www\.ud64\.com/)?\s*=+\';\s*(\$ud64_c[o0]m="[\\\\0-9a-z\."]+;)+\$\w+=(\$ud64_c[o0]m\()+"([^"]+)"\)+;@eval\(\$ud64_c[o0]m\(\'[^\']+\'\)+;~msi', 'fast' => '~\$\w+=\'=+\s*Obfuscation provided by Unknowndevice64 - Free Online PHP Obfuscator\s*(?:http://www\.ud64\.com/)?\s*=+\';\s*(\$ud64_c[o0]m="[\\\\0-9a-z\."]+;)+\$\w+=(\$ud64_c[o0]m\()+"([^"]+)"\)+;@eval\(\$ud64_c[o0]m\(\'[^\']+\'\)+;~msi', 'id' => 'ud64', ], [ 'full' => '~(\$[\w_]+=("[\\\\\\\\\w]+"\.?)+;)+\$\w+=(?:\$\w+\()+"([\w\/\+=]+)"\)+;@eval\(\$\w+\(\'.*?\'\)+;~msi', 'fast' => '~(\$[\w_]+=("[\\\\\\\\\w]+"\.?)+;)+\$\w+=(?:\$\w+\()+"([\w\/\+=]+)"\)+;@eval\(\$\w+\(\'.*?\'\)+;~msi', 'id' => 'ud64', ], [ 'full' => '~\$\w+=__FILE__;\$\w+=fopen\(\$\w+,\'rb\'\);fread\(\$\w+,(\d+)\);\$\w+=explode\("\\\\t",base64_decode\(fread\(\$\w+,(\d+)\)+;\$\w+=\$\w+\[[\d+]\];[\$l1=\d{}\.;\(\)\[\]]+eval\(\$\w+\(\'[^\']+\'\)+;\s*return\s*;\?>[\w=\+]+~msi', 'fast' => '~\$\w+=__FILE__;\$\w+=fopen\(\$\w+,\'rb\'\);fread\(\$\w+,(\d+)\);\$\w+=explode\("\\\\t",base64_decode\(fread\(\$\w+,(\d+)\)+;\$\w+=\$\w+\[[\d+]\];[\$l1=\d{}\.;\(\)\[\]]+eval\(\$\w+\(\'[^\']+\'\)+;\s*return\s*;\?>[\w=\+]+~msi', 'id' => 'qibosoft', ], [ 'full' => '~(\$\w+)=base64_decode\("([^"]+)"\);\s*eval\("return\s*eval\(\\\\"\1\\\\"\);"\)~msi', 'fast' => '~(\$\w+)=base64_decode\("([^"]+)"\);\s*eval\("return\s*eval\(\\\\"\1\\\\"\);"\)~msi', 'id' => 'evalReturn', ], [ 'full' => '~(?:\$[0O]+\[[\'"](\w+)[\'"]\]\.?="[\\\\\w]+";)+(?:\$[0O]+\[[\'"]\w+[\'"]\]\.?=\$[0O]+\[[\'"]\w+[\'"]\]\([\'"][\d\(]+[\'"](,__FILE__)?\);)+@eval\((?:\$[0O]+\[[\'"]\w+[\'"]\]\()+"([^"]+)"\)+;~mis', 'fast' => '~(?:\$[0O]+\[[\'"](\w+)[\'"]\]\.?="[\\\\\w]+";)+(?:\$[0O]+\[[\'"]\w+[\'"]\]\.?=\$[0O]+\[[\'"]\w+[\'"]\]\([\'"][\d\(]+[\'"](,__FILE__)?\);)+@eval\((?:\$[0O]+\[[\'"]\w+[\'"]\]\()+"([^"]+)"\)+;~mis', 'id' => 'evalChars', ], [ 'full' => '~<\?php\s+((\$GLOBALS\[\s*[\'"]\w+[\'"]\s*\])\s*=\s*base64_decode\("([^"]*)"\);)+\s*\?><\?php\s.+\2.+exit;\s}\sfunction\s\w+\(\)\s{\sreturn\sarray\(\s\'favicon\'\s=>\s\'[^\']+\',\s+\'sprites\'\s=>\s\'[^\']+\',\s\);\s}~msi', 'fast' => '~<\?php\s+((\$GLOBALS\[\s*[\'"]\w+[\'"]\s*\])\s*=\s*base64_decode\("([^"]*)"\);)+\s*\?><\?php\s.+\2.+exit;\s}\sfunction\s\w+\(\)\s{\sreturn\sarray\(\s\'favicon\'\s=>\s\'[^\']+\',\s+\'sprites\'\s=>\s\'[^\']+\',\s\);\s}~msi', 'id' => 'globalsBase64', ], [ 'full' => '~(\$\w+=strrev\("[^"]+"\);)+eval\((\$\w+\()+"[^"]+"\)+;~mis', 'fast' => '~(\$\w+=strrev\("[^"]+"\);)+eval\((\$\w+\()+"[^"]+"\)+;~mis', 'id' => 'strrevVarEval', ], [ 'full' => '~\$\w+=basename/\*\w+\*/\(/\*\w+\*/trim/\*\w+\*/\(.+?(\$\w+)=.+\1.+?;~msi', 'fast' => '~\$\w+=basename/\*\w+\*/\(/\*\w+\*/trim/\*\w+\*/\(.+?(\$\w+)=.+\1.+?;~msi', 'id' => 'comments', ], [ 'full' => '~(\$\w+)\s*=\s*(base64_decode\s*\(+|gzinflate\s*\(+|strrev\s*\(+|str_rot13\s*\(+|gzuncompress\s*\(+|convert_uudecode\s*\(+|urldecode\s*\(+|rawurldecode\s*\(+|htmlspecialchars_decode\s*\(+)+"([^"]+)"\)+;\s*@?eval\(([\'"?>.\s]+)?\1\);~', 'fast' => '~(\$\w+)\s*=\s*(base64_decode\s*\(+|gzinflate\s*\(+|strrev\s*\(+|str_rot13\s*\(+|gzuncompress\s*\(+|convert_uudecode\s*\(+|urldecode\s*\(+|rawurldecode\s*\(+|htmlspecialchars_decode\s*\(+)+"([^"]+)"\)+;\s*@?eval\(([\'"?>.\s]+)?\1\);~', 'id' => 'varFuncsEval', ], [ 'full' => '~((\$\w+)="";\$\w+\s*\.=\s*"[^;]+;\s*)+(?:="";)?eval\((\s*\$\w+\s*\.)+\s*"[^"]+(?:"\);)+~msi', 'fast' => '~((\$\w+)="";\$\w+\s*\.=\s*"[^;]+;\s*)+(?:="";)?eval\((\s*\$\w+\s*\.)+\s*"[^"]+(?:"\);)+~msi', 'id' => 'evalConcatVars', ], [ 'full' => '~<\?php\s*defined\(\'[^\']+\'\)\s*\|\|\s*define\(\'[^\']+\',__FILE__\);(global\s*\$[^;]+;)+\s*(if\(!function_exists\(\'([^\']+)\'\)\){\s*function\s*[^\)]+\(\$[^,]+,\$[^=]+=\'\'\){\s*if\(empty\(\$[^\)]+\)\)\s*return\s*\'\';\s*\$[^=]+=base64_decode\(\$[^\)]+\);\s*if\(\$[^=]+==\'\'\)\s*return\s*\~\$[^;]+;\s*if\(\$[^=]+==\'-1\'\)\s*@[^\(]+\(\);\s*\$[^=]+=\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\(\$[^\)]+\);\s*\$[^=]+=\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\(\$[^,]+,\$[^,]+,\$[^\)]+\);\s*return\s*\$[^^]+\^\$[^;]+;\s*}}\s*)+(\$[^\[]+\["[^"]+"]=[^\(]+\(\'[^\']+\',\'[^\']*\'\);\s*)+(\$[^\[]+\[\'[^\']+\'\]=\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\([^\)]*\)+;\s*)+return\(eval\(\$[^\[]+\[\'[^\']+\'\]\)+;\s*\?>\s*#!/usr/bin/php\s*-q\s*(\s*[^\s]+)+~msi', 'fast' => '~<\?php\s*defined\(\'[^\']{10,30}\'\)\s*\|\|\s*define\(\'[^\']{10,30}\',__FILE__\);(global\s*\$[^;]{10,30};)+\s*if\(!function_exists\(\'([^\']+)\'\)\){\s*function\s*[^\)]+\(\$[^,]{10,30},\$[^=]{10,30}=\'\'\){\s*if\(empty\(\$[^\)]+\)\)\s*return\s*\'\';\s*\$[^=]{10,30}=base64_decode~msi', 'id' => 'OELove', ], [ 'full' => '~\$\w+\s*=(\s*(\d+)\+)+\d+;(\$\w+="[^"]+";)+(\$\w+)\s*=\s*\w+\(\'[^\']+\',\s*\$\w+,\s*\'[^\']+\'\);.+\4\("[^"]+"\);\$\w+\s*=\s*\4;(\$\w+="[^"]+";)+.+\$\w+\(\$\w+,\$\w+\("",\s*\$\w+\(\$\w+\(\$\w+\(\$\w+\(\$\w+,\s*"(\d+)"\)+,\$\w+\);.+function \w+\((\$\w+),\s*\$\w+,\s(\$\w+)\)\s{\8\s=\s\8\s\.\s\8;.+return \7;}~msi', 'fast' => '~\$\w+\s*=(\s*(\d+)\+)+\d+;(\$\w+="[^"]+";)+(\$\w+)\s*=\s*\w+\(\'[^\']+\',\s*\$\w+,\s*\'[^\']+\'\);.+\4\("[^"]+"\);\$\w+\s*=\s*\4;(\$\w+="[^"]+";)+~msi', 'id' => 'Obf_20200402_1', ], [ 'full' => '~(?:\$\w+\s*=\s*"[^"]+";\s*)?function\s(\w+)\((\$\w+),\s*(\$\w+),\s*(\$\w+)\){\s*return\s*([\'\.]*(\2|\3|\4)[\'\.]*)+;\s*}\s*(?:\$\w+\s*=\s*"[^"]+";)?(\s*\$\w+\s*=\s*\1\((((\'\')|(\$\w+)|(\$\w+[\[\{]\d+[\]\}](\.\'\')?)|(\$\w+[\[\{]\d+[\]\}]\.\$\w+[\[\{]\d+[\]\}]))\s*,?\s*)+\);\s*)+\s*\$\w+\s*=\s*\1[^"]+"\'([^\']+)\'".+?array\(\'\',\'}\'.\$\w+\.\'//\'\)\);~msi', 'fast' => '~function\s(\w+)\((\$\w+),\s*(\$\w+),\s*(\$\w+)\){\s*return\s*([\'\.]*(\2|\3|\4)[\'\.]*)+;\s*}\s*(?:\$\w+\s*=\s*"[^"]+";)?(\s*\$\w+\s*=\s*\1\((((\'\')|(\$\w+)|(\$\w+[\[\{]\d+[\]\}](\.\'\')?)|(\$\w+[\[\{]\d+[\]\}]\.\$\w+[\[\{]\d+[\]\}]))\s*,?\s*)+\);\s*)+\s*\$\w+\s*=\s*\1[^"]+"\'([^\']+)\'".+?array\(\'\',\'}\'.\$\w+\.\'//\'\)\);~msi', 'id' => 'Obf_20200402_2', ], [ 'full' => '~(?:function\s*\w{1,50}\(\$\w{1,50},\s*\$\w{1,50}\)\s*\{(?:\s*\$\w{1,50}\s*=\s*(?:md5\(\$\w{1,50}\)|\d+|base64_decode\(\$\w{1,50}\)|strlen\(\$\w{1,50}\)|\'\');\s*)+\s*for\s*\(\$\w{1,50}\s*=\s\d+;\s*\$\w{1,50}\s*<\s*\$len;\s*\$\w{1,50}\+\+\)\s*\{\s*if\s*\(\$\w{1,50}\s*==\s*\$\w{1,50}\)\s*\{\s*\$\w{1,50}\s*=\s*\d+;\s*}\s*\$\w{1,50}\s*\.=\s*substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\);\s*\$\w{1,50}\+\+;\s*\}(?:\s*\$\w{1,50}\s*=\s*\'\';)?\s*for\s*\(\$\w{1,50}\s*=\s*\d+;\s*\$\w{1,50}\s*<\s*\$\w{1,50};\s*\$\w{1,50}\+\+\)\s*{\s*if\s*\(ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\s*<\s*ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\)\s*\{\s*\$\w{1,50}\s*\.=\s*chr\(\(ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\s*\+\s*\d+\)\s*-\s*ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\);\s*}\s*else\s*{\s*\$\w{1,50}\s*\.=\s*chr\(ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\s*-\s*ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\);\s*}\s*}\s*return\s*\$\w{1,50};\s*\}\s*|\$\w{1,50}\s*=\s*"([^"]+)";\s*){2}\s*\$\w{1,50}\s*=\s*"([^"]+)";\s*\$\w{1,50}\s*=\s*\w{1,50}\(\$\w{1,50},\s*\$\w{1,50}\);\s*eval\(\$\w{1,50}\);~msi', 'fast' => '~(?:function\s*\w{1,50}\(\$\w{1,50},\s*\$\w{1,50}\)\s*\{(?:\s*\$\w{1,50}\s*=\s*(?:md5\(\$\w{1,50}\)|\d+|base64_decode\(\$\w{1,50}\)|strlen\(\$\w{1,50}\)|\'\');\s*)+\s*for\s*\(\$\w{1,50}\s*=\s\d+;\s*\$\w{1,50}\s*<\s*\$len;\s*\$\w{1,50}\+\+\)\s*\{\s*if\s*\(\$\w{1,50}\s*==\s*\$\w{1,50}\)\s*\{\s*\$\w{1,50}\s*=\s*\d+;\s*}\s*\$\w{1,50}\s*\.=\s*substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\);\s*\$\w{1,50}\+\+;\s*\}(?:\s*\$\w{1,50}\s*=\s*\'\';)?\s*for\s*\(\$\w{1,50}\s*=\s*\d+;\s*\$\w{1,50}\s*<\s*\$\w{1,50};\s*\$\w{1,50}\+\+\)\s*{\s*if\s*\(ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\s*<\s*ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\)\s*\{\s*\$\w{1,50}\s*\.=\s*chr\(\(ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\s*\+\s*\d+\)\s*-\s*ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\);\s*}\s*else\s*{\s*\$\w{1,50}\s*\.=\s*chr\(ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\s*-\s*ord\(substr\(\$\w{1,50},\s*\$\w{1,50},\s*\d+\)\)\);\s*}\s*}\s*return\s*\$\w{1,50};\s*\}\s*|\$\w{1,50}\s*=\s*"([^"]+)";\s*){2}\s*\$\w{1,50}\s*=\s*"([^"]+)";\s*\$\w{1,50}\s*=\s*\w{1,50}\(\$\w{1,50},\s*\$\w{1,50}\);\s*eval\(\$\w{1,50}\);~msi', 'id' => 'Obf_20200414_1', ], [ 'full' => '~(?:\$\w+\s*=\s*\'\w+\';)?\s*(\$\w+)\s*=\s*urldecode\(\'[%0-9a-f]+\'\);(\s*(\$\w+)\s*=(\s*\1\{\d+\}\.?)+;)+\s*(\$\w+)\s*=\s*"[^"]+"\.\3\("[^"]+"\);\s*eval\(\5\);~msi', 'fast' => '~(\$\w+)\s*=\s*urldecode\(\'[%0-9a-f]+\'\);(\s*(\$\w+)\s*=(\s*\1\{\d+\}\.?)+;)+\s*(\$\w+)\s*=\s*"[^"]+"\.\3\("[^"]+"\);\s*eval\(\5\);~msi', 'id' => 'Obf_20200421_1', ], [ 'full' => '~(\$\w+)=\'([^\']+)\';(\$\w+)=str_rot13\(gzinflate\(str_rot13\(base64_decode\(\1\)\)\)\);eval\(\3\);~msi', 'fast' => '~(\$\w+)=\'([^\']+)\';(\$\w+)=str_rot13\(gzinflate\(str_rot13\(base64_decode\(\1\)\)\)\);eval\(\3\);~msi', 'id' => 'SmartToolsShop', ], [ 'full' => '~(\$\w+)\s*=\s*\("\?>"\.gzuncompress\(base64_decode\("[^"]+"\)\)\);\s*@?eval\(\1\);~msi', 'fast' => '~(\$\w+)\s*=\s*\("\?>"\.gzuncompress\(base64_decode\("[^"]+"\)\)\);\s*@?eval\(\1\);~msi', 'id' => 'Obf_20200504_1', ], [ 'full' => '~(\$\w+)=base64_decode\(\'[^\']+\'\);\s*eval\(\1\);~mis', 'fast' => '~(\$\w+)=base64_decode\(\'[^\']+\'\);\s*eval\(\1\);~mis', 'id' => 'Obf_20200507_1', ], [ 'full' => '~@error_reporting\(0\);\s*@ini_set\(\'error_log\',NULL\);\s*@ini_set\(\'log_errors\',0\);\s*@ini_set\(\'output_buffering\',\s*0\);\s*@ini_set\(\'display_errors\',\s*0\);\s*\$\w+="(An0n_3xPloiTeR)";\$UeXploiT="([^"]+)";\$\1="([^"]+)";exit;~msi', 'fast' => '~@error_reporting\(0\);\s*@ini_set\(\'error_log\',NULL\);\s*@ini_set\(\'log_errors\',0\);\s*@ini_set\(\'output_buffering\',\s*0\);\s*@ini_set\(\'display_errors\',\s*0\);\s*\$\w+="(An0n_3xPloiTeR)";\$UeXploiT="([^"]+)";\$\1="([^"]+)";exit;~msi', 'id' => 'Obf_20200507_3', ], [ 'full' => '~(?:error_reporting\(0\);\s*ini_set\("max_execution_time",0\);\s*(?:/\*.*?\*/)?\s*)?(\$\w+)=\s*\[(("."=>".",?\s*)+)];\s*(\$\w+)=str_split\("([^"]+)"\);\s*(?:\$\w+="";)?\s*foreach\(\4\s*as\s*(\$\w+)\)\s*{\s*foreach\(\s*\1\s*as\s*(\$\w+)=>(\$\w+)\)\s*{\s*if\(\6==\(string\)\8\)\s*\{\s*\$\w+\.=\7;\s*break;\s*}\s*}\s*}~msi', 'fast' => '~(\$\w+)=\s*\[(("."=>".",?\s*)+)];\s*(\$\w+)=str_split\("([^"]+)"\);\s*(?:\$\w+="";)?\s*foreach\(\4\s*as\s*(\$\w+)\)\s*{\s*foreach\(\s*\1\s*as\s*(\$\w+)=>(\$\w+)\)\s*{\s*if\(\6==\(string\)\8\)\s*\{\s*\$\w+\.=\7;\s*break;\s*}\s*}\s*}~msi', 'id' => 'Obf_20200507_4', ], [ 'full' => '~assert\("[eval"\.]+\([base64_decode\."]+\(\'([^\']+)\'\)\)"\);~msi', 'fast' => '~assert\("[eval"\.]+\([base64_decode\."]+\(\'([^\']+)\'\)\)"\);~msi', 'id' => 'Obf_20200507_5', ], [ 'full' => '~parse_str\(\'([^\']+)\',(\$\w+)\);(\2\[\d+\]\()+\'[^\']+\'\),array\(\),array\(\'[^\']+\'\.(\2\[\d+\]\()+\'([^\']+)\'\)+\.\'//\'\)+;~msi', 'fast' => '~parse_str\(\'([^\']+)\',(\$\w+)\);(\2\[\d+\]\()+\'[^\']+\'\),array\(\),array\(\'[^\']+\'\.(\2\[\d+\]\()+\'([^\']+)\'\)+\.\'//\'\)+;~msi', 'id' => 'Obf_20200513_1', ], [ 'full' => '~function\s{0,50}(\w+)\((\$\w+)\)\s{0,50}\{\s{0,50}\2\s{0,50}=\s{0,50}substr\(\2,\s{0,50}\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\)\);\s{0,50}\2\s{0,50}=\s{0,50}substr\(\2,\s{0,50}\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\),\s{0,50}\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\)\);\s{0,50}return\s{0,50}\2;\s{0,50}\}\s{0,50}(\$\w+)\s{0,50}=\s{0,50}\'[^\']+\';\s{0,50}(\$\w+)\s{0,50}=\s{0,50}\'base64_decode\';\s{0,50}function\s{0,50}\w+\((\$\w+)\)\s{0,50}{\s{0,50}global\s{0,50}\6;\s{0,50}global\s{0,50}\7;\s{0,50}return\s{0,50}strrev\(gzinflate\(\7\(\1\(\8\)\)\)\);\s{0,50}\}\s{0,50}(?:eval\(\w+\(\')?([^\']+)\'\)+~msi', 'fast' => '~function\s{0,50}(\w+)\((\$\w+)\)\s{0,50}\{\s{0,50}\2\s{0,50}=\s{0,50}substr\(\2,\s{0,50}\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\)\);\s{0,50}\2\s{0,50}=\s{0,50}substr\(\2,\s{0,50}\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\),\s{0,50}\(int\)\(hex2bin\(\'([0-9a-f]+)\'\)\)\);\s{0,50}return\s{0,50}\2;\s{0,50}\}\s{0,50}(\$\w+)\s{0,50}=\s{0,50}\'[^\']+\';\s{0,50}(\$\w+)\s{0,50}=\s{0,50}\'base64_decode\';\s{0,50}function\s{0,50}\w+\((\$\w+)\)\s{0,50}{\s{0,50}global\s{0,50}\6;\s{0,50}global\s{0,50}\7;\s{0,50}return\s{0,50}strrev\(gzinflate\(\7\(\1\(\8\)\)\)\);\s{0,50}\}\s{0,50}(?:eval\(\w+\(\')?([^\']+)\'\)+~msi', 'id' => 'Obf_20200522_1', ], [ 'full' => '~(\$\w+)=strrev\("[base64_decode"\.]+\);eval\(\1\(\'([^\']+)\'\)\);~msi', 'fast' => '~(\$\w+)=strrev\("[base64_decode"\.]+\);eval\(\1\(\'([^\']+)\'\)\);~msi', 'id' => 'Obf_20200526_1', ], [ 'full' => '~error_reporting\(0\);define\(\'\w+\',\s*__FILE__\);define\(\'\w+\',\s*fopen\(__FILE__,\s*\'r\'\)\);fseek\(\w+,\s*__COMPILER_HALT_OFFSET__\);((\$\w+="\\\\x[0-9a-f]+";)+(\$\w+="[^"]+";)+eval\("\?>"\.(\$\w+\()+"([^"]+)"\)+;)+(?:/\*\w+\*/)?__halt_compiler\(\);[\w#|>^%\[\.\]\\\\/=]+~msi', 'fast' => '~error_reporting\(0\);define\(\'\w+\',\s*__FILE__\);define\(\'\w+\',\s*fopen\(__FILE__,\s*\'r\'\)\);fseek\(\w+,\s*__COMPILER_HALT_OFFSET__\);((\$\w+="\\\\x[0-9a-f]+";)+(\$\w+="[^"]+";)+eval\("\?>"\.(\$\w+\()+"([^"]+)"\)+;)+(?:/\*\w+\*/)?__halt_compiler\(\);[\w#|>^%\[\.\]\\\\/=]+~msi', 'id' => 'Obf_20200527_1', ], [ 'full' => '~(\$\w+)=strrev\("[base64_decode]+"\)\.str_replace\(\'(\w+)\',\'\',\'\w+\'\);\s*eval\(\1\(\$\w+\)\);~msi', 'fast' => '~(\$\w+)=strrev\("[base64_decode]+"\)\.str_replace\(\'(\w+)\',\'\',\'\w+\'\);\s*eval\(\1\(\$\w+\)\);~msi', 'id' => 'Obf_20200602_1', ], [ 'full' => '~(\$\w+)\s*=\s*"([^"]+)";\s*(\$\w+)\s*=\s*base64_decode\(\1\);\s*eval\(\3\);~msi', 'fast' => '~(\$\w+)\s*=\s*"([^"]+)";\s*(\$\w+)\s*=\s*base64_decode\(\1\);\s*eval\(\3\);~msi', 'id' => 'Obf_20200720_1', ], [ 'full' => '~[\'".]+(\$\w+\s*=\s*[\'"]\w+[\'"];)+(\$\w+=\$\w+[\'.]+\$\w+;)+(\$\w+=(str_rot13|base64_decode|gzinflate)\(\$\w+\);)+eval\(\$\w+\);~msi', 'fast' => '~[\'".]+(\$\w+\s*=\s*[\'"]\w+[\'"];)+(\$\w+=\$\w+[\'.]+\$\w+;)+(\$\w+=(str_rot13|base64_decode|gzinflate)\(\$\w+\);)+eval\(\$\w+\);~msi', 'id' => 'flamux', ], [ 'full' => '~function\s*(\w+)\(\)\{\s*return\s*"([^"]+)";\s*\}\s*eval\("([^"]+)"\.\1\(\)\."([^"]+)"\);~msi', 'fast' => '~function\s*(\w+)\(\)\{\s*return\s*"([^"]+)";\s*\}\s*eval\("([^"]+)"\.\1\(\)\."([^"]+)"\);~msi', 'id' => 'bypass', ], [ 'full' => '~(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+(echo)\s*"(?:[<\w\\\\>\/\s={:}#]+);(?:[\\\\\w\-:]+;)+(?:[\\\\\w}:{\s#]+;)+(?:[\\\\\w}:{#\-\s]+;)+[\\\\\w}<\/]+";\$\w+=["\\\\\w]+;(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";error_reporting\(\d\);\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;set_time_limit\(\d\);\$\w+=["\\\\\w]+;(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+(if\(empty\()[\$_\w\["\\\\\]]+\)\){\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\w()]+;(}else{)\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;}chdir\(\${\$\w+}\);\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=htmlentities\(\$[_\w\["\\\\\].?]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);\1[<\\\\\w>\/"]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";(?:\$\w+=["\w\\\\]+;)+(?:\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;)+\$\w+=["\w\\\\]+;\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["\\\\\w<>=\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w=\s\/<>]+;(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\1["<\\\\\w\s\'.\${}>\/]+;\1["<\\\\\w>\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."&\w\\\\\'<\/]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;\1["<\\\\\w>\s=\'.\${}&\/]+;(?:\1["<\\\\\w>\/]+;)+\$\w+=["\\\\\w]+;\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";switch\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\){case"[\w\\\\\s]+":(?:\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;)+\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){(?:\$\w+=["\\\\\w]+;)+(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=fopen\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},"\w"\);\$\w+=["\\\\\w]+;\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=(?:(?|fread|filesize)\(\${\$\w+},?)+\)\);\${\$\w+}=str_replace\("[\w\\\\\s]+",[<\w\\\\>"]+,\${\$\w+}\);\1["\\\\\w<>=\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w=\s\/<>&\${}\']+;\1["\\\\\w\s.:]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\."[\w\\\\\s]+";\1["\\\\\w\s\'=]+\.\${\$\w+}\.["<\w\\\\>]+;\1["<\\\\\w>\s=\'\/;]+\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";(?:\$\w+=["\w\\\\]+;)+\${\$\w+}=fopen\(\${\$\w+},"\w"\);if\(fwrite\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\s\\\\\w]+;\3\1["\\\\\w\s.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\\\\\w]+;}}fclose\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);(break;case")[\w\\\\\s]+":\${\$\w+}=[\$_\w\["\]\\\\]+;if\(unlink\([\${}\w]+\)\){\1\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["\s\w\\\\.>]+;\3\$\w+=["\w\\\\]+;\1["\\\\\w\s.${}<]+;}\4[\w\\\\\s]+":(?:\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;)+\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["<\w\\\\\s=.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}.["\\\\\w&.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\s=]+;(?:\1["\w\\\\:\s\'><=\/]+;)+\3(?:\$\w+=["\w\\\\]+;)+if\(copy\(\${\$\w+},\${\$\w+}\)\){\1"[\w\\\\\s]+";\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+;}}\4[\w\\\\\s]+":(?:\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;)+\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\'\\\\\w\s=>]+;\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\1["\\\\\w\s\'=>\/;]+\3if\(rename\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3\$\w+=["\w\\\\]+;\1"[\w\\\\\s]+"\.\${\$\w+}[."\\\\\w>;]+}}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\${\$\w+}=[\$_\w\["\]\\\\]+;\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["\\\\\w\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["\\\\\w=.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["\\\\\w\s>]+;(?:\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;)+\1["\\\\\w\s=\'<\/;]+\3if\(rename\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+;}}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;if\(rmdir\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3\$\w+=["\\\\\w]+;\1"[\w\\\\\s]+"\.\${\$\w+}[."\\\\\w]+;}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";system\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\$\w+=["\w\\\\]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3\$\w+=["\w\\\\]+;if\(\${\$\w+}=fopen\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},"\w"\)\){\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;\3\$\w+=["\w\\\\]+;\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;}\$\w+=["\w\\\\]+;fclose\(\${\$\w+}\);}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\${\$\w+}=basename\([\$_\w\["\\\\\]]+\);\2\${\$\w+}\)\){\1["<\\\\\w\s=\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["&\w\\\\\s=\/\-\'>]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";if\(move_uploaded_file\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;unlink\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);\3\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+;}}\4[\w\\\\\s]+":\${\$\w+}=[\$_\w\["\]\\\\]+;\2\${\$\w+}\)\){(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=explode\(":",\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);if\(\(!is_numeric\(\${\$\w+}\[\d\]\)\)or\(!is_numeric\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\[\d\]\)\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3(?:\$\w+=["\w\\\\]+;)+\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\w\\\\]+;(?:\${\$\w+}=\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\[\d\];)+\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;while\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}<=\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=\d;\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=fsockopen\(\$\w+,\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)or\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=\d;if\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}==\d\){\$\w+=["\\\\\w]+;echo\${\$\w+}\.["\\\\\w>]+;}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\+\+;fclose\(\${\$\w+}\);}}}break;}clearstatcache\(\);(?:\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;){2}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=scandir\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);foreach\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\s\w+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\){if\(is_file\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=round\(filesize\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\/\d+,\d\);\$\w+=["\w\\\\]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\/\w\\\\>;]+\$\w+=["\\\\\w]+;\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\s<\/>]+;\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w=&]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\/<>;]+\$\w+=["\\\\\w]+;\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+\${\$\w+}[.">\w\\\\\/<]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3(?:\$\w+=["\\\\\w]+;){2}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=scandir\(\${\$\w+}\);(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";){2}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=count\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\-\d;\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+\/\w+>";\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\s=<\/]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;){3}}}\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;~msi', 'fast' => '~(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+(echo)\s*"(?:[<\w\\\\>\/\s={:}#]+);(?:[\\\\\w\-:]+;)+(?:[\\\\\w}:{\s#]+;)+(?:[\\\\\w}:{#\-\s]+;)+[\\\\\w}<\/]+";\$\w+=["\\\\\w]+;(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";error_reporting\(\d\);\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;set_time_limit\(\d\);\$\w+=["\\\\\w]+;(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+(if\(empty\()[\$_\w\["\\\\\]]+\)\){\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\w()]+;(}else{)\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;}chdir\(\${\$\w+}\);\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=htmlentities\(\$[_\w\["\\\\\].?]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);\1[<\\\\\w>\/"]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";(?:\$\w+=["\w\\\\]+;)+(?:\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;)+\$\w+=["\w\\\\]+;\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["\\\\\w<>=\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w=\s\/<>]+;(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\1["<\\\\\w\s\'.\${}>\/]+;\1["<\\\\\w>\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."&\w\\\\\'<\/]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;\1["<\\\\\w>\s=\'.\${}&\/]+;(?:\1["<\\\\\w>\/]+;)+\$\w+=["\\\\\w]+;\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";switch\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\){case"[\w\\\\\s]+":(?:\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;)+\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){(?:\$\w+=["\\\\\w]+;)+(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=fopen\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},"\w"\);\$\w+=["\\\\\w]+;\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=(?:(?|fread|filesize)\(\${\$\w+},?)+\)\);\${\$\w+}=str_replace\("[\w\\\\\s]+",[<\w\\\\>"]+,\${\$\w+}\);\1["\\\\\w<>=\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w=\s\/<>&\${}\']+;\1["\\\\\w\s.:]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\."[\w\\\\\s]+";\1["\\\\\w\s\'=]+\.\${\$\w+}\.["<\w\\\\>]+;\1["<\\\\\w>\s=\'\/;]+\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";(?:\$\w+=["\w\\\\]+;)+\${\$\w+}=fopen\(\${\$\w+},"\w"\);if\(fwrite\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\s\\\\\w]+;\3\1["\\\\\w\s.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\\\\\w]+;}}fclose\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);(break;case")[\w\\\\\s]+":\${\$\w+}=[\$_\w\["\]\\\\]+;if\(unlink\([\${}\w]+\)\){\1\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["\s\w\\\\.>]+;\3\$\w+=["\w\\\\]+;\1["\\\\\w\s.${}<]+;}\4[\w\\\\\s]+":(?:\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;)+\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["<\w\\\\\s=.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}.["\\\\\w&.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\s=]+;(?:\1["\w\\\\:\s\'><=\/]+;)+\3(?:\$\w+=["\w\\\\]+;)+if\(copy\(\${\$\w+},\${\$\w+}\)\){\1"[\w\\\\\s]+";\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+;}}\4[\w\\\\\s]+":(?:\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;)+\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\'\\\\\w\s=>]+;\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\1["\\\\\w\s\'=>\/;]+\3if\(rename\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3\$\w+=["\w\\\\]+;\1"[\w\\\\\s]+"\.\${\$\w+}[."\\\\\w>;]+}}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\${\$\w+}=[\$_\w\["\]\\\\]+;\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["\\\\\w\s\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["\\\\\w=.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["\\\\\w\s>]+;(?:\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;)+\1["\\\\\w\s=\'<\/;]+\3if\(rename\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+;}}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;if\(rmdir\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3\$\w+=["\\\\\w]+;\1"[\w\\\\\s]+"\.\${\$\w+}[."\\\\\w]+;}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";system\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\2\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\$\w+=["\w\\\\]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3\$\w+=["\w\\\\]+;if\(\${\$\w+}=fopen\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},"\w"\)\){\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;\3\$\w+=["\w\\\\]+;\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;}\$\w+=["\w\\\\]+;fclose\(\${\$\w+}\);}\4[\w\\\\\s]+":\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=[\$_\w\["\\\\\]]+;\${\$\w+}=basename\([\$_\w\["\\\\\]]+\);\2\${\$\w+}\)\){\1["<\\\\\w\s=\'.]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\.["&\w\\\\\s=\/\-\'>]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";if\(move_uploaded_file\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]},\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;unlink\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);\3\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+;}}\4[\w\\\\\s]+":\${\$\w+}=[\$_\w\["\]\\\\]+;\2\${\$\w+}\)\){(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;\3\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=explode\(":",\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);if\(\(!is_numeric\(\${\$\w+}\[\d\]\)\)or\(!is_numeric\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\[\d\]\)\)\){\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;\3(?:\$\w+=["\w\\\\]+;)+\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\w\\\\]+;(?:\${\$\w+}=\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\[\d\];)+\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;while\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}<=\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\){\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\$\w+=["\\\\\w]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=\d;\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=fsockopen\(\$\w+,\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)or\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=\d;if\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}==\d\){\$\w+=["\\\\\w]+;echo\${\$\w+}\.["\\\\\w>]+;}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\+\+;fclose\(\${\$\w+}\);}}}break;}clearstatcache\(\);(?:\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;){2}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=scandir\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\);foreach\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\s\w+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\){if\(is_file\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\){(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";)+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=round\(filesize\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\/\d+,\d\);\$\w+=["\w\\\\]+;\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\/\w\\\\>;]+\$\w+=["\\\\\w]+;\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\s<\/>]+;\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w=&]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\/<>;]+\$\w+=["\\\\\w]+;\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+\${\$\w+}[.">\w\\\\\/<]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;)+\3(?:\$\w+=["\\\\\w]+;){2}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=scandir\(\${\$\w+}\);(?:\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";){2}\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}=count\(\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}\)\-\d;\1"[\w\\\\\s]+"\.\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."<\w>\\\\=&]+\/\w+>";\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]="[\w\\\\\s]+";\1["<\\\\\w>.\s=]+\${\${"[\w\\\\\s]+"}\["[\w\\\\\s]+"\]}[."\\\\\w\s=<\/]+;(?:\1["\\\\\w\s=.\${}\[\]&\':\/<>]+;){3}}}\1["\\\\\w:\s.\$\[\]>()_\'<\/%]+;~msi', 'id' => 'darkShell', ], [ 'full' => '~(\$\w+)=\'([\w\(;\$\)=\s\[\/\]."*]+)\';(\$\w+)=(?:\1\[[-+\(\d*\/\)]+\]\.?)+;(\$\w+)=(?:\1\[[-+\(\d*\/\)]+\]\.?)+;(\$\w+)=(?:\1\[[-+\(\d*\/\)]+\]\.?)+;(\$\w+)=\s+"([\'\w\/+=]+)";(\$\w+)\.=\4;\8\.=\6;\8\.=\5;@(\$\w+)=\3\(\(\'+\),\s+\(\8\)\);@\9\(\);~msi', 'fast' => '~(\$\w+)=\'([\w\(;\$\)=\s\[\/\]."*]+)\';(\$\w+)=(?:\1\[[-+\(\d*\/\)]+\]\.?)+;(\$\w+)=(?:\1\[[-+\(\d*\/\)]+\]\.?)+;(\$\w+)=(?:\1\[[-+\(\d*\/\)]+\]\.?)+;(\$\w+)=\s+"([\'\w\/+=]+)";(\$\w+)\.=\4;\8\.=\6;\8\.=\5;@(\$\w+)=\3\(\(\'+\),\s+\(\8\)\);@\9\(\);~msi', 'id' => 'wso', ], [ 'full' => '~(?:(?:@?error_reporting|@?set_time_limit)\(\d+\);\s*){1,2}function\s*class_uc_key\((\$\w{1,50})\){\s*(\$\w{1,50})\s*=\s*strlen\s*\(trim\(\1\)\);\s*(\$\w{1,50})\s*=\s*\'\';\s*for\((\$\w{1,50})\s*=\s*0;\4\s*<\s*\2;\4\+=2\)\s*{\s*\3\s*\.=\s*pack\s*\("C",hexdec\s*\(substr\s\(\1,\4,2\)\)\);\s*}\s*return\s*\3;\s*}\s*header\("\w+-\w+:\s\w+\/\w+;\s*charset=(\w+)"\);\s*(\$\w{1,50})=(?:(?:class_uc_key\("(\w+)"\)|\$\w{1,50})\.?\s*)+\.\'([\w\/\+=\\\\]+\'\)\)\);)\';\s*(\$\w{1,50})=create_function\(\'\',\6\);\9\(\);~msi', 'fast' => '~(?:(?:@?error_reporting|@?set_time_limit)\(\d+\);\s*){1,2}function\s*class_uc_key\((\$\w{1,50})\){\s*(\$\w{1,50})\s*=\s*strlen\s*\(trim\(\1\)\);\s*(\$\w{1,50})\s*=\s*\'\';\s*for\((\$\w{1,50})\s*=\s*0;\4\s*<\s*\2;\4\+=2\)\s*{\s*\3\s*\.=\s*pack\s*\("C",hexdec\s*\(substr\s\(\1,\4,2\)\)\);\s*}\s*return\s*\3;\s*}\s*header\("\w+-\w+:\s\w+\/\w+;\s*charset=(\w+)"\);\s*(\$\w{1,50})=(?:(?:class_uc_key\("(\w+)"\)|\$\w{1,50})\.?\s*)+\.\'([\w\/\+=\\\\]+\'\)\)\);)\';\s*(\$\w{1,50})=create_function\(\'\',\6\);\9\(\);~msi', 'id' => 'anonymousFox', ], [ 'full' => '~(\$my_sucuri_encoding)\s{0,10}=\s{0,10}[\'"]([^\'"]+)[\'"];\s{0,10}(\$tempb64)\s{0,10}=\s{0,10}base64_decode\(\s{0,10}\1\);\s{0,10}eval\(\s{0,10}\3\s{0,10}\);~msi', 'fast' => '~(\$my_sucuri_encoding)\s{0,10}=\s{0,10}[\'"]([^\'"]+)[\'"];\s{0,10}(\$tempb64)\s{0,10}=\s{0,10}base64_decode\(\s{0,10}\1\);\s{0,10}eval\(\s{0,10}\3\s{0,10}\);~msi', 'id' => 'wsoEval', ], [ 'full' => '~\$fun\s=\s\'ass\';\$fun\s\.=\s\'ert\';@\$fun\(str_rot13\(\'(.*;)\'\)\);~msi', 'fast' => '~\$fun\s=\s\'ass\';\$fun\s\.=\s\'ert\';@\$fun\(str_rot13\(\'(.*;)\'\)\);~msi', 'id' => 'assertStr', ], [ 'full' => '~(function\s\w+\(\$\w+,\$\w+,\$\w+\){return\sstr_replace\(\$\w+,\$\w+,\$\w+\);}\s?){3}(\$\w+)\s=\s\'(\w+)\';\s\2\s=\s(\w+)\(\'(\w+)\',\'\',\2\);\s(\$\w+)\s=\s\'(\w+)\';\s\6\s=\s\4\(\'(\w+)\',\'\',\6\);\s(\$\w+)\s=\s\'(\w+)\';\s\9\s=\s\4\(\'(\w+)\',\'\',\9\);\s(\$\w+)\s=\s\'(\$\w+)\';\s(\$\w+)\s=\s\6\(\12,\9\.\'\(\'\.\2\.\'\(\'\.\12\.\'\)\);\'\);\s\14\(\'(\w+)\'\);~msi', 'fast' => '~(function\s\w+\(\$\w+,\$\w+,\$\w+\){return\sstr_replace\(\$\w+,\$\w+,\$\w+\);}\s?){3}(\$\w+)\s=\s\'(\w+)\';\s\2\s=\s(\w+)\(\'(\w+)\',\'\',\2\);\s(\$\w+)\s=\s\'(\w+)\';\s\6\s=\s\4\(\'(\w+)\',\'\',\6\);\s(\$\w+)\s=\s\'(\w+)\';\s\9\s=\s\4\(\'(\w+)\',\'\',\9\);\s(\$\w+)\s=\s\'(\$\w+)\';\s(\$\w+)\s=\s\6\(\12,\9\.\'\(\'\.\2\.\'\(\'\.\12\.\'\)\);\'\);\s\14\(\'(\w+)\'\);~msi', 'id' => 'funcVar', ], [ 'full' => '~(\$\w+)=[\'"]([\w</,\s()\$\+}\\\\\'"?\[\]{;%=^&-]+)[\'"];(\$\w+=(?:\s?\1\[\d+\](?:\s?\.?))+;)+((?:\$\w+\(\d+\);)?(\$\w+=(\$\w+)\(["\']{2},(\$\w+\(\$\w+\(["\'][=\w\+\/]+[\'"]\)\))\);\$\w+\(\);|.*?if\s?\(isset\(\${(?:\$\w+\[\d+\]\.?)+}.*?function\s\w+.*?include\s\${(?:\$\w+\[\d+\]\.?)+}\[(?:\$\w+\[\d+\]\.?)+\];\s?}))~msi', 'fast' => '~(\$\w+)=[\'"]([\w</,\s()\$\+}\\\\\'"?\[\]{;%=^&-]+)[\'"];(\$\w+=(?:\s?\1\[\d+\](?:\s?\.?))+;)+((?:\$\w+\(\d+\);)?(\$\w+=(\$\w+)\(["\']{2},(\$\w+\(\$\w+\(["\'][=\w\+\/]+[\'"]\)\))\);\$\w+\(\);|.*?if\s?\(isset\(\${(?:\$\w+\[\d+\]\.?)+}.*?function\s\w+.*?include\s\${(?:\$\w+\[\d+\]\.?)+}\[(?:\$\w+\[\d+\]\.?)+\];\s?}))~msi', 'id' => 'dictionaryVars', ], [ 'full' => '~(?:(?<concatVar>\$\w+)\s?=\s?""\s?;((?:\s?(?P=concatVar)\s?\.=\s?"[\w]+"\s?;\s?)+))?(\$\w+)\s?=\s?(?:(?P=concatVar)|"(?<strVal>[\w]+)")\s?;\s?if\s?\(\s?!function_exists\s?\(\s?"(\w+)"\)\){function\s\5\(\s?(\$\w+)\){\s?(?:\$\w+=\s?""\s?;)?\s?(\$\w+)\s?=\s?strlen\s?\(\s?\6\s?\)\s?\/\s?2\s?;\s?for\s?\(\s?(\$\w+)\s?=0\s?;\s?\8\s?<\s?\7\s?;\s?\8\+\+\s?\)\s?{\s?\$\w+\s?\.=\s?chr\s?\(\s?base_convert\s?\(\s?substr\s?\(\s?\6\s?,\s?\8\s?\*\s?2\s?,\s?2\s?\)\s?,\s?16\s?,\s?10\s?\)\s?\)\s?;\s?}\s?return\s?\$\w+;\s?}\s?}\s?\$\w+\s?=\s?create_function\s?\(\s?null\s?,\s?\5\(\s?\3\)\)\s?;\s?\3\(\)\s?;~msi', 'fast' => '~(?:(?<concatVar>\$\w+)\s?=\s?""\s?;((?:\s?(?P=concatVar)\s?\.=\s?"[\w]+"\s?;\s?)+))?(\$\w+)\s?=\s?(?:(?P=concatVar)|"(?<strVal>[\w]+)")\s?;\s?if\s?\(\s?!function_exists\s?\(\s?"(\w+)"\)\){function\s\5\(\s?(\$\w+)\){\s?(?:\$\w+=\s?""\s?;)?\s?(\$\w+)\s?=\s?strlen\s?\(\s?\6\s?\)\s?\/\s?2\s?;\s?for\s?\(\s?(\$\w+)\s?=0\s?;\s?\8\s?<\s?\7\s?;\s?\8\+\+\s?\)\s?{\s?\$\w+\s?\.=\s?chr\s?\(\s?base_convert\s?\(\s?substr\s?\(\s?\6\s?,\s?\8\s?\*\s?2\s?,\s?2\s?\)\s?,\s?16\s?,\s?10\s?\)\s?\)\s?;\s?}\s?return\s?\$\w+;\s?}\s?}\s?\$\w+\s?=\s?create_function\s?\(\s?null\s?,\s?\5\(\s?\3\)\)\s?;\s?\3\(\)\s?;~msi', 'id' => 'concatVarFunc', ], [ 'full' => '~function\s?(\w+)\(\){(((\$\w+)\.?="\w+";)+)return\seval\(\4\(\w+\(\)\)\);}function\s(\w+)\((\$\w+)\){((?:(\$\w+)\.?="\w+";)+)return\s\8\(\6\);}function\s?(\w+)\(\){((\$\w+)\.?="([\w\/+=]+)";)return\s(\w+)\(\11\);}function\s\13\((\$\w+)\){(\$\w+)=(\w+)\((\w+)\((\w+)\(\14\)\)\);return\s\15;}function\s\17\(\14\){(((\$\w+)\.?="\w+";)+)return\s\21\(\14\);}\1\(\);function\s\16\(\14\){(((\$\w+)\.?="\w+";)+)return\s\24\(\14\);}~msi', 'fast' => '~function\s?(\w+)\(\){(((\$\w+)\.?="\w+";)+)return\seval\(\4\(\w+\(\)\)\);}function\s(\w+)\((\$\w+)\){((?:(\$\w+)\.?="\w+";)+)return\s\8\(\6\);}function\s?(\w+)\(\){((\$\w+)\.?="([\w\/+=]+)";)return\s(\w+)\(\11\);}function\s\13\((\$\w+)\){(\$\w+)=(\w+)\((\w+)\((\w+)\(\14\)\)\);return\s\15;}function\s\17\(\14\){(((\$\w+)\.?="\w+";)+)return\s\21\(\14\);}\1\(\);function\s\16\(\14\){(((\$\w+)\.?="\w+";)+)return\s\24\(\14\);}~msi', 'id' => 'concatVarFuncFunc', ], [ 'full' => '~(?:(?:\s?\$\w+\s?=\s?strrev\("\w+"\);\s?)|(?:\s?\$\w+\s?=\s?strrev\("\w+"\);\s?)|(?:\s?eval\((?:\$\w+)?\([\'"][\w=]+[\'"]\)\);\s?)|(?:\s?eval\(\$\w+\(\$\w+\(\'[\w\/+=]+\'\)\)\);\s?)){3,4}~msi', 'fast' => '~(?:(?:\s?\$\w+\s?=\s?strrev\("\w+"\);\s?)|(?:\s?\$\w+\s?=\s?strrev\("\w+"\);\s?)|(?:\s?eval\((?:\$\w+)?\([\'"][\w=]+[\'"]\)\);\s?)|(?:\s?eval\(\$\w+\(\$\w+\(\'[\w\/+=]+\'\)\)\);\s?)){3,4}~msi', 'id' => 'evalVarDoubled', ], [ 'full' => '~(\$\w+)\s?=\s?(\w+)\("([\w+\/=]+)"\);\s?echo\s?\1;~msi', 'fast' => '~(\$\w+)\s?=\s?(\w+)\("([\w+\/=]+)"\);\s?echo\s?\1;~msi', 'id' => 'varFuncsEcho', ], [ 'full' => '~(\$\w+)="";\s*(?:(?:do\s?{[^}]+}\s?while\s?\(\d+>\d+\);\s*\1=\1\."[^"]+";)?(?:.*?)(\$\w+)=(\d+);\s?(?:.*?)(\$\w+)=((?:\'[\w%]+\'\.?)+);\s?(?:.*?)\s(\$\w+)=((?:\4\[?{?\d+\]?}?\.?)+);\s?)?(?:function\s\w+\(\){(?:.*?);\s}\s?\1=\w+\(\1,"\w+"\);\s?|\$\w+=array\((?:\'\w+\',?)+\);\s?|\1=\w+\(\1,\sjoin\(\'\',\s\$\w+\)\s?\);\s?|\s?\$\w+\+=\d+;\s?|\1=\w+\(\1,\w+\(\)\);\s?|function\s\w+\(\){\s?|do{\s?if\s?\(\d+<\d+\)\s?{\s?|)+(?:.*?)(?:\$\w+\s?=\s?\$\w+\([\'"]{2},\s?\$\w+\(\$\w+(?:\(\1\),\s?(?:\$\w+\[\'\w+\'\]\)\s?)?|\)\s?)\);\s?\$\w+\(\);)(?:\s?function\s\w+\((?:\$\w+,\s?\$\w+)?\)(?:.*?);\s}|\s?class\s\w+\s?{(?:.*?);(?:\s}){1,2})+~msi', 'fast' => '~function\s+\w+\(\)\{\s*global\s*(\$\w+);\s*return\s*(\1[\[{]\d+[\]}]\.?){15};\s*}~msi', 'id' => 'varFuncsMany', ], [ 'full' => '~((\$(?:GLOBALS|{"[\\\\\w]+"})\[[\'"]\w+["\']\])\s?=\s?[\'"]+([\\\\\w]+)["\'];)\s?(?:(\$GLOBALS\[?(\s?(?:\2|\$GLOBALS\[\'\w+\'\])\[\d+\]\.?)+\])\s?=\s?\g<5>+;\s?)+(?:\g<4>\s?=\s[\$_\w]+;\s)+(?:@\g<4>\(\g<5>+\s?,\s?\w+\s?\);\s?)+@\g<4>\(\d+\);\s{0,50}(?:if\s?\(!\g<4>\s?\(\g<5>+\)\)\s{\s{0,50}\g<4>\(\g<5>+,\s\g<5>*\d*\);\s{0,50}}?\s{0,50})*(?:\$\w+\s?=\s?\w+;\s?)*\g<4>\s?=\s\g<5>+;\s?global\s?\$\w+;\s?function\s\w+\(\$\w+,\s\$\w+\)\s{\s?\$\w+\s?=\s?["\']{2};\s?for\s?\(\$\w+\s?=\d+;\s?\$\w+\s?<\s?\g<4>\(\$\w+\)\s?;\s?\)\s?{\s?for\s?\(\s?\$\w+=\d+;\s?\$\w+\s?<\s?\g<4>\(\$\w+\)\s?&&\s?\$\w+\s?<\g<4>\(\$\w+\);\s?\$\w+\+{2},\s?\$\w+\+{2}\)\s?{\s?\$\w+\s?\.=\s?\g<4>\(\g<4>\(\$\w+\[\$\w+\]\)\s?\^\s?\g<4>\(\$\w+\[\$\w+\]\)\);\s?}\s?}\s?return\s\$\w+;\s?}\s?function\s?\w+\(\$\w+,\s?\$\w+\)\s?{\s?global\s?\$\w+;\s?return\s\g<4>\(\g<4>\(\$\w+,\s?\$\w+\),\s?\$\w+\)\s?;\s?}\s?foreach\s?\(\g<4>\sas\s\$\w+=>\$\w+\)\s?{\s?\$\w+\s?=\s?\$\w+;\s?\$\w+\s?=\s?\$\w+;\s?}\s?if\s?\(!\$\w+\)\s?{\s?foreach\s?\(\g<4>\sas\s\$\w+\s?=>\s?\$\w+\)\s?{\s?\$\w+\s?=\s?\$\w+;\s?\$\w+\s?=\s?\$\w+;\s?}\s?}\s?\$\w+\s?=\s?@\g<4>\(\g<4>\(@?\g<4>\(\$\w+\),\s?\$\w+\)\);\s?if\s?\(isset\(\$\w+\[\g<5>+\]\)\s?&&\s?\$\w+==\$\w+\[\g<5>+\]\)\s?{\s?if\s?\(\$\w+\[\g<5>\]\s?==\s?\g<5>\)\s?{\s?\$\w+\s?=\s?array\(\s?\g<5>+\s?=>\s?@\g<4>\(\),\s?\g<5>+\s?=>\s?\g<5>+,\s?\);\s?echo\s?@\g<4>\(\$\w+\);\s?}\s?elseif\s?\(\$\w+\[\g<5>\]\s?==\s?\g<5>\)\s?{\s?eval\(\$\w+\[\g<5>\]\);\s?}\s?(?:exit\(\);)?\s?}\s?}?~msi', 'fast' => '~((\$(?:GLOBALS|{"[\\\\\w]+"})\[[\'"]\w+["\']\])\s?=\s?[\'"]+([\\\\\w]+)["\'];)\s?(?:(\$GLOBALS\[?(\s?(?:\2|\$GLOBALS\[\'\w+\'\])\[\d+\]\.?)+\])\s?=\s?\g<5>+;\s?)+(?:\g<4>\s?=\s[\$_\w]+;\s)+(?:@\g<4>\(\g<5>+\s?,\s?\w+\s?\);\s?)+@\g<4>\(\d+\);\s{0,50}(?:if\s?\(!\g<4>\s?\(\g<5>+\)\)\s{\s{0,50}\g<4>\(\g<5>+,\s\g<5>*\d*\);\s{0,50}}?\s{0,50})*(?:\$\w+\s?=\s?\w+;\s?)*\g<4>\s?=\s\g<5>+;\s?global\s?\$\w+;\s?function\s\w+\(\$\w+,\s\$\w+\)\s{\s?\$\w+\s?=\s?["\']{2};\s?for\s?\(\$\w+\s?=\d+;\s?\$\w+\s?<\s?\g<4>\(\$\w+\)\s?;\s?\)\s?{\s?for\s?\(\s?\$\w+=\d+;\s?\$\w+\s?<\s?\g<4>\(\$\w+\)\s?&&\s?\$\w+\s?<\g<4>\(\$\w+\);\s?\$\w+\+{2},\s?\$\w+\+{2}\)\s?{\s?\$\w+\s?\.=\s?\g<4>\(\g<4>\(\$\w+\[\$\w+\]\)\s?\^\s?\g<4>\(\$\w+\[\$\w+\]\)\);\s?}\s?}\s?return\s\$\w+;\s?}\s?function\s?\w+\(\$\w+,\s?\$\w+\)\s?{\s?global\s?\$\w+;\s?return\s\g<4>\(\g<4>\(\$\w+,\s?\$\w+\),\s?\$\w+\)\s?;\s?}\s?foreach\s?\(\g<4>\sas\s\$\w+=>\$\w+\)\s?{\s?\$\w+\s?=\s?\$\w+;\s?\$\w+\s?=\s?\$\w+;\s?}\s?if\s?\(!\$\w+\)\s?{\s?foreach\s?\(\g<4>\sas\s\$\w+\s?=>\s?\$\w+\)\s?{\s?\$\w+\s?=\s?\$\w+;\s?\$\w+\s?=\s?\$\w+;\s?}\s?}\s?\$\w+\s?=\s?@\g<4>\(\g<4>\(@?\g<4>\(\$\w+\),\s?\$\w+\)\);\s?if\s?\(isset\(\$\w+\[\g<5>+\]\)\s?&&\s?\$\w+==\$\w+\[\g<5>+\]\)\s?{\s?if\s?\(\$\w+\[\g<5>\]\s?==\s?\g<5>\)\s?{\s?\$\w+\s?=\s?array\(\s?\g<5>+\s?=>\s?@\g<4>\(\),\s?\g<5>+\s?=>\s?\g<5>+,\s?\);\s?echo\s?@\g<4>\(\$\w+\);\s?}\s?elseif\s?\(\$\w+\[\g<5>\]\s?==\s?\g<5>\)\s?{\s?eval\(\$\w+\[\g<5>\]\);\s?}\s?(?:exit\(\);)?\s?}\s?}?~msi', 'id' => 'globalArrayEval', ], [ 'full' => '~<\?php\s{0,30}(\$\w+)\s{0,30}=\s{0,30}"(.+?)";\s{0,30}((?:\$\w+\s{0,30}=\s{0,30}(?:\1\[\'\w\s{0,30}\'\s{0,30}\+\s{0,30}\d+\s{0,30}\+\s{0,30}\'\s{0,30}\w\'\]\s{0,30}\.?\s{0,30})+;\s{0,30})+)(\$\w+)\s{0,30}=\s{0,30}"(\d+)";\s{0,30}(?:\$\w+\s{0,30}=\s{0,30}\$\w+\(\s{0,30}\$\w+\s{0,30},\s{0,30}\$\w+\(\s{0,30}"\s{0,30}"\)\s{0,30},\s{0,30}"[\w\+]+"\)\s{0,30};\s{0,30})+(?:\$\w+\s{0,30}=\s{0,30}\$\w+\(\s{0,30}\$\w+\(\s{0,30}\$\w+\)\s{0,30},\s{0,30}\$\w+\(\s{0,30}?\$\w+\)\s{0,30}\)\s{0,30};\s{0,30})+\$\w+\((?:\s{0,30}\$\w+\(\s{0,30}"\s{0,20}\w\s{0,20}"\)\s{0,30}\.?\s{0,30})+"\(\\\\"\w+\\\\"\s{0,30},\s{0,30}"\s{0,30}\.\s{0,30}\$\w+\(\s{0,30}\$\w+\(\s{0,30}"\d+"\s{0,30},\s{0,30}\$\w+\(\s{0,30}"\s{0,20}"\)\s{0,30},\s{0,30}"[\d\w=]+"\)\s{0,30}\)\s{0,30}\.\s{0,30}"\s{0,30}\)\s{0,30};"\)\s{0,30};\s{0,30}\$\w+\s{0,30}=\s{0,30}\$\w+\(\w+\)\s{0,30};\s{0,30}\$\w+\(\s{0,30}(?:\$\w+\(\s{0,30}"\s{0,30}[?>]\s{0,30}"\)\s{0,30}\.\s{0,30})+(\$\w+)\(\s{0,30}(\$\w+)\(\s{0,30}(\$\w+),\s{0,30}(\$\w+)\(\s{0,30}"\s{0,30}"\)\s{0,30},\s{0,30}(\$\w+)\(\s{0,30}"([()\w@|*#\[\]&\/\+=]+)"\s{0,30},\s{0,30}(\$\w+),\s{0,30}(\$\w+)\)\s{0,30}\)\)\s{0,30}\)\s{0,30};\s{0,30}\$\w+\s?=\s?\d+\s?;\s{0,30}\?>~msi', 'fast' => '~<\?php\s{0,30}(\$\w+)\s{0,30}=\s{0,30}"(.+?)";\s{0,30}((?:\$\w+\s{0,30}=\s{0,30}(?:\1\[\'\w\s{0,30}\'\s{0,30}\+\s{0,30}\d+\s{0,30}\+\s{0,30}\'\s{0,30}\w\'\]\s{0,30}\.?\s{0,30})+;\s{0,30})+)(\$\w+)\s{0,30}=\s{0,30}"(\d+)";\s{0,30}(?:\$\w+\s{0,30}=\s{0,30}\$\w+\(\s{0,30}\$\w+\s{0,30},\s{0,30}\$\w+\(\s{0,30}"\s{0,30}"\)\s{0,30},\s{0,30}"[\w\+]+"\)\s{0,30};\s{0,30})+(?:\$\w+\s{0,30}=\s{0,30}\$\w+\(\s{0,30}\$\w+\(\s{0,30}\$\w+\)\s{0,30},\s{0,30}\$\w+\(\s{0,30}?\$\w+\)\s{0,30}\)\s{0,30};\s{0,30})+\$\w+\((?:\s{0,30}\$\w+\(\s{0,30}"\s{0,20}\w\s{0,20}"\)\s{0,30}\.?\s{0,30})+"\(\\\\"\w+\\\\"\s{0,30},\s{0,30}"\s{0,30}\.\s{0,30}\$\w+\(\s{0,30}\$\w+\(\s{0,30}"\d+"\s{0,30},\s{0,30}\$\w+\(\s{0,30}"\s{0,20}"\)\s{0,30},\s{0,30}"[\d\w=]+"\)\s{0,30}\)\s{0,30}\.\s{0,30}"\s{0,30}\)\s{0,30};"\)\s{0,30};\s{0,30}\$\w+\s{0,30}=\s{0,30}\$\w+\(\w+\)\s{0,30};\s{0,30}\$\w+\(\s{0,30}(?:\$\w+\(\s{0,30}"\s{0,30}[?>]\s{0,30}"\)\s{0,30}\.\s{0,30})+(\$\w+)\(\s{0,30}(\$\w+)\(\s{0,30}(\$\w+),\s{0,30}(\$\w+)\(\s{0,30}"\s{0,30}"\)\s{0,30},\s{0,30}(\$\w+)\(\s{0,30}"([()\w@|*#\[\]&\/\+=]+)"\s{0,30},\s{0,30}(\$\w+),\s{0,30}(\$\w+)\)\s{0,30}\)\)\s{0,30}\)\s{0,30};\s{0,30}\$\w+\s?=\s?\d+\s?;\s{0,30}\?>~msi', 'id' => 'tinkleShell', ], [ 'full' => '~(?:\$\w+="\w+";)+(\$\w+)="([\w_)(;\/\.*]+)";\$\w+="\w+";function\s(\w+)\((?:\$\w+,?){3}\){return\s?""(?:\.\$\w+\.""){3};}(?:\$\w+=(?:(?:"\w+")|(?:\3\((?:\1\[\d+\],?\.?)+\))|(?:(?:\3\()+(?:\$\w+\,?(?:\)\,)?)+)(?:(?:(?:\3\()+)*(?:(?:\$\w+,?)+)*(?:\),)*(?:\)*))+);)+\$\w+=\3\((?:\1\[\d+\]\.?)+(?:,"")+\);(?:\$\w+=\3\(\3\(\$\w+,\$\w+,\$\w+\),\3\((?:\$\w+,?)+\),\3\(\$\w+,\3\(\$\w+,\$\w+,""\),\$\w+\)\)\."\'(?<str>[\w\/\+]+)\'")\.\3\((?:\1\[\d+\],?\.?)+\);\$\w+\(\$\w+,array\("","}"\.\$\w+\."\/+"\)\);~msi', 'fast' => '~(?:\$\w+="\w+";)+(\$\w+)="([\w_)(;\/\.*]+)";\$\w+="\w+";function\s(\w+)\((?:\$\w+,?){3}\){return\s?""(?:\.\$\w+\.""){3};}(?:\$\w+=(?:(?:"\w+")|(?:\3\((?:\1\[\d+\],?\.?)+\))|(?:(?:\3\()+(?:\$\w+\,?(?:\)\,)?)+)(?:(?:(?:\3\()+)*(?:(?:\$\w+,?)+)*(?:\),)*(?:\)*))+);)+\$\w+=\3\((?:\1\[\d+\]\.?)+(?:,"")+\);(?:\$\w+=\3\(\3\(\$\w+,\$\w+,\$\w+\),\3\((?:\$\w+,?)+\),\3\(\$\w+,\3\(\$\w+,\$\w+,""\),\$\w+\)\)\."\'(?<str>[\w\/\+]+)\'")\.\3\((?:\1\[\d+\],?\.?)+\);\$\w+\(\$\w+,array\("","}"\.\$\w+\."\/+"\)\);~msi', 'id' => 'wsoFunc', ], [ 'full' => '~\$\w+\[\'\w+\'\]\s?=\s?"[\w;\/\.*)(]+";\s?\$\w+\[\'\w+\'\]\s?=\s?(?:\$\w+\[\'\w+\'\]\[\d+\]\.?)+;\s?\$\w+\s?=\s?(?:"[\w()]*"\.chr\([\d-]+\)\.?)+"\(";\s?\$\w+\s?=\s?"[)\\\\\w;]+";\s?\$\w+\s?=\s?\$\w+\."\'(?<str>[\w\/\+]+)\'"\.\$\w+;\s?\$\w+\[\'\w+\'\]\((?:\$\w+\[\'\w+\'\]\[\d+\]\.?)+,\s?\$\w+\s?,"\d+"\);~msi', 'fast' => '~\$\w+\[\'\w+\'\]\s?=\s?"[\w;\/\.*)(]+";\s?\$\w+\[\'\w+\'\]\s?=\s?(?:\$\w+\[\'\w+\'\]\[\d+\]\.?)+;\s?\$\w+\s?=\s?(?:"[\w()]*"\.chr\([\d-]+\)\.?)+"\(";\s?\$\w+\s?=\s?"[)\\\\\w;]+";\s?\$\w+\s?=\s?\$\w+\."\'(?<str>[\w\/\+]+)\'"\.\$\w+;\s?\$\w+\[\'\w+\'\]\((?:\$\w+\[\'\w+\'\]\[\d+\]\.?)+,\s?\$\w+\s?,"\d+"\);~msi', 'id' => 'wsoFunc', ], [ 'full' => '~function\s(\w+)\((\$\w+)\)\s{0,50}{\s{0,50}\2=gzinflate\(base64_decode\(\2\)\);\s{0,50}for\((\$\w+)=\d+;\3<strlen\(\2\);\3\+\+\)\s{0,50}{\s{0,50}\2\[\3\]\s?=\s?chr\(ord\(\2\[\3\]\)-(\d+)\);\s{0,50}}\s{0,50}return\s?\2;\s{0,50}}\s{0,50}eval\(\1\([\'"]([\w\+\/=]+)[\'"]\)\);~msi', 'fast' => '~function\s(\w+)\((\$\w+)\)\s{0,50}{\s{0,50}\2=gzinflate\(base64_decode\(\2\)\);\s{0,50}for\((\$\w+)=\d+;\3<strlen\(\2\);\3\+\+\)\s{0,50}{\s{0,50}\2\[\3\]\s?=\s?chr\(ord\(\2\[\3\]\)-(\d+)\);\s{0,50}}\s{0,50}return\s?\2;\s{0,50}}\s{0,50}eval\(\1\([\'"]([\w\+\/=]+)[\'"]\)\);~msi', 'id' => 'evalWanFunc', ], [ 'full' => '~(?:(?:if\s?\(file_exists\("\w+"\)\)\s?{\s?}\s?else\s?{\s?)?\$\w+\s?=\s?fopen\([\'"][^\'"]+\.php[\'"],\s?[\'"]w[\'"]\);)?\s?(\$\w+)\s?=\s?(?:base64_decode\()?[\'"]([^\'"]+)[\'"]\)?;\s?(?:\$\w{1,50}\s?=\s?fopen\([\'"][^\'"]+[\'"],\s?[\'"]\w[\'"]\);\s?)?(?:echo\s?)?fwrite\(\$\w{1,50}\s?,(?:base64_decode\()?\$\w{1,50}\)?\);\s?fclose\(\$\w{1,50}\);\s?}?~msi', 'fast' => '~(?:(?:if\s?\(file_exists\("\w+"\)\)\s?{\s?}\s?else\s?{\s?)?\$\w+\s?=\s?fopen\([\'"][^\'"]+\.php[\'"],\s?[\'"]w[\'"]\);)?\s?(\$\w+)\s?=\s?(?:base64_decode\()?[\'"]([^\'"]+)[\'"]\)?;\s?(?:\$\w{1,50}\s?=\s?fopen\([\'"][^\'"]+[\'"],\s?[\'"]\w[\'"]\);\s?)?(?:echo\s?)?fwrite\(\$\w{1,50}\s?,(?:base64_decode\()?\$\w{1,50}\)?\);\s?fclose\(\$\w{1,50}\);\s?}?~msi', 'id' => 'funcFile', ], [ 'full' => '~(\$(?:GLOBALS\[\')?\w+(?:\'\])?\s{0,100}=\s{0,100}array\(\s{0,100}(?:\s{0,100}\'[^\']+\'\s{0,100}=>\s{0,100}\'?[^\']+\'?,\s{0,100})+\s{0,100}\);\s{0,100}((?:\$\w+=(?:[\'"][^\'"]*[\'"]\.?)+;)+)(?:if\(!\$\w+\((?:\'\w*\'\.?|\$\w+)+\)\){function\s{0,100}\w+\(\$\w+\){.*?else{function\s{0,100}\w+\(\$\w+\){.*?return\s{0,100}\$\w+\(\$\w+\);}}){2})\$\w+=(?:\'\w*\'\.?)+;(\$\w+)\s{0,100}=\s{0,100}@?\$\w+\(\'\$\w+\',\$\w+\.\'\(.\.\$\w+\.(?:\'[\w(\$);]*\'\.?)+\);\3\("([^"]+)"\);~msi', 'fast' => '~(\$(?:GLOBALS\[\')?\w+(?:\'\])?\s{0,100}=\s{0,100}array\(\s{0,100}(?:\s{0,100}\'[^\']+\'\s{0,100}=>\s{0,100}\'?[^\']+\'?,\s{0,100})+\s{0,100}\);\s{0,100}((?:\$\w+=(?:[\'"][^\'"]*[\'"]\.?)+;)+)(?:if\(!\$\w+\((?:\'\w*\'\.?|\$\w+)+\)\){function\s{0,100}\w+\(\$\w+\){.*?else{function\s{0,100}\w+\(\$\w+\){.*?return\s{0,100}\$\w+\(\$\w+\);}}){2})\$\w+=(?:\'\w*\'\.?)+;(\$\w+)\s{0,100}=\s{0,100}@?\$\w+\(\'\$\w+\',\$\w+\.\'\(.\.\$\w+\.(?:\'[\w(\$);]*\'\.?)+\);\3\("([^"]+)"\);~msi', 'id' => 'gulf', ], [ 'full' => '~(\$\w+)=(\w+);\$\w+="(.+?)";(?:\$\w+=\$\w+;)?(\$\w+)=strlen\(\$\w+\);(\$\w+)=[\'"]{2};for\((\$\w+)=\d+;\6<\4;\6\+\+\)\s?\5\s?\.=\s?chr\(ord\(\$\w+\[\6\]\)\s?\^\s?\1\);eval\("\?>"\.\5\."<\?"\);~msi', 'fast' => '~(\$\w+)=(\w+);\$\w+="(.+?)";(?:\$\w+=\$\w+;)?(\$\w+)=strlen\(\$\w+\);(\$\w+)=[\'"]{2};for\((\$\w+)=\d+;\6<\4;\6\+\+\)\s?\5\s?\.=\s?chr\(ord\(\$\w+\[\6\]\)\s?\^\s?\1\);eval\("\?>"\.\5\."<\?"\);~msi', 'id' => 'evalConcatAsciiChars', ], [ 'full' => '~(?:\$\w+="[\w=]+";\s?)+(\$\w+)\s?=\s?str_replace\((?:"\w*",?)+\);\s?(\$\w+)\s?=\s?\1\((?:"\w*",?\s?)+\);\s?(\$\w+)\s?=\s?\1\((?:"\w*",?)+\);\s?(\$\w+)\s?=\s?\3\("",\s?(\2\(\2\((\1\("([#;*,\.]+)",\s?"",\s?((?:\$\w+\.?)+)\))\)\))\);\s?\4\(\);~msi', 'fast' => '~(?:\$\w+="[\w=]+";\s?)+(\$\w+)\s?=\s?str_replace\((?:"\w*",?)+\);\s?(\$\w+)\s?=\s?\1\((?:"\w*",?\s?)+\);\s?(\$\w+)\s?=\s?\1\((?:"\w*",?)+\);\s?(\$\w+)\s?=\s?\3\("",\s?(\2\(\2\((\1\("([#;*,\.]+)",\s?"",\s?((?:\$\w+\.?)+)\))\)\))\);\s?\4\(\);~msi', 'id' => 'evalPost', ], [ 'full' => '~\$\w+\s?=\s?"e\/\*\.\/";\spreg_replace\(strrev\(\$\w+\),"([\\\\\w]+)\'([\w\/\+=]+)\'([\\\\\w]+)","\."\);~msi', 'fast' => '~\$\w+\s?=\s?"e\/\*\.\/";\spreg_replace\(strrev\(\$\w+\),"([\\\\\w]+)\'([\w\/\+=]+)\'([\\\\\w]+)","\."\);~msi', 'id' => 'evalPregStr', ], [ 'full' => '~\$GLOBALS\[\'\w+\'\]=array\(\'preg_re\'\s?\.\'place\'\);\s?function\s\w+\(\$\w+\)\s?{\$\w+=array\("\/\.\*\/e","([\\\\\w]+)\'([\w\/\+]+)\'([\\\\\w]+)","{2}\);\s?return\s\$\w+\[\$\w+\];}\s?\$GLOBALS\[\'\w+\'\]\[\d+\]\(\w+\(\d+\),\w+\(\d+\),\w+\(\d+\)\);~msi', 'fast' => '~\$GLOBALS\[\'\w+\'\]=array\(\'preg_re\'\s?\.\'place\'\);\s?function\s\w+\(\$\w+\)\s?{\$\w+=array\("\/\.\*\/e","([\\\\\w]+)\'([\w\/\+]+)\'([\\\\\w]+)","{2}\);\s?return\s\$\w+\[\$\w+\];}\s?\$GLOBALS\[\'\w+\'\]\[\d+\]\(\w+\(\d+\),\w+\(\d+\),\w+\(\d+\)\);~msi', 'id' => 'evalPregStr', ], [ 'full' => '~class\s?\w+{\s?function\s?__destruct\(\){\s?\$this->\w+\(\'([\w&]+)\'\^"([\\\\\w]+)",array\(\(\'([#\w]+)\'\^"([\\\\\w]+)"\)\."\(base64_decode\(\'([\w\+\/=]+)\'\)\);"\)\);\s?}\s?function\s?\w+\(\$\w+,\$\w+\){\s?@array_map\(\$\w+,\$\w+\);\s?}\s?}\s?\$\w+\s?=\s?new\s?\w+\(\);~msi', 'fast' => '~class\s?\w+{\s?function\s?__destruct\(\){\s?\$this->\w+\(\'([\w&]+)\'\^"([\\\\\w]+)",array\(\(\'([#\w]+)\'\^"([\\\\\w]+)"\)\."\(base64_decode\(\'([\w\+\/=]+)\'\)\);"\)\);\s?}\s?function\s?\w+\(\$\w+,\$\w+\){\s?@array_map\(\$\w+,\$\w+\);\s?}\s?}\s?\$\w+\s?=\s?new\s?\w+\(\);~msi', 'id' => 'classDestructFunc', ], [ 'full' => '~\$\w+="([\\\\\w]+)";\s?\$\w+=\$\w+\(\'([\w\+\/=]+)\'\);\s?\$\w+\s?=\s?"([\\\\\w]+)";\s?\$\w+\s?=\s?\$\w+\([\'"]{2}.\s?eval\(\$\w+\)\);\s?\$\w+\([\'"]{2}\);~msi', 'fast' => '~\$\w+="([\\\\\w]+)";\s?\$\w+=\$\w+\(\'([\w\+\/=]+)\'\);\s?\$\w+\s?=\s?"([\\\\\w]+)";\s?\$\w+\s?=\s?\$\w+\([\'"]{2}.\s?eval\(\$\w+\)\);\s?\$\w+\([\'"]{2}\);~msi', 'id' => 'createFuncEval', ], [ 'full' => '~((\$\w+)="([\w-]+)";((?:\$\w+=(?:\2{\d+}\.?)+;)+)+)(header\(\'.+?\'\);)\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\'(\$\w+)=[\\\\\']+.\'(\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\);\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+,\w+,\d+\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\);return\s?\$\w+;)\'\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\'\$\w+\',\'\$\w+=substr\(\$\w+,\d+,\d+\);\$\w+=substr\(\$\w+,-\d+\);\$\w+=substr\(\$\w+,7,\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\)-\d+\);return\s\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\${"[\\\\\w]+"}\["[\\\\\w]+"\]\((?:\$\w+\.?)+\)\);\'\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\'\$\w+=[\\\\\']+,\'\$\w+=(isset\(\${"[\\\\\w]+"}\["[\\\\\w]+"\]\)\?\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\${"[\\\\\w]+"}\["[\\\\\w]+"\]\):[\\\\\']+);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\\\\\'([\w=]+)\\\\\'\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\.\$\w+\);eval\(\$\w+\);\'\);\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\);~msi', 'fast' => '~((\$\w+)="([\w-]+)";((?:\$\w+=(?:\2{\d+}\.?)+;)+)+)(header\(\'.+?\'\);)\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\'(\$\w+)=[\\\\\']+.\'(\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\);\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+,\w+,\d+\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\);return\s?\$\w+;)\'\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\'\$\w+\',\'\$\w+=substr\(\$\w+,\d+,\d+\);\$\w+=substr\(\$\w+,-\d+\);\$\w+=substr\(\$\w+,7,\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\)-\d+\);return\s\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\${"[\\\\\w]+"}\["[\\\\\w]+"\]\((?:\$\w+\.?)+\)\);\'\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\'\$\w+=[\\\\\']+,\'\$\w+=(isset\(\${"[\\\\\w]+"}\["[\\\\\w]+"\]\)\?\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\${"[\\\\\w]+"}\["[\\\\\w]+"\]\):[\\\\\']+);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\\\\\'([\w=]+)\\\\\'\);\$\w+=\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\$\w+\.\$\w+\);eval\(\$\w+\);\'\);\${"[\\\\\w]+"}\["[\\\\\w]+"\]\(\);~msi', 'id' => 'dictionaryCreateFuncs', ], [ 'full' => '~(\$\w+)\s?=\s?"([\w\s=]+)";\s?(\$\w+)\s?=\s?array\(((?:\d+,?\s?)+)\);\s?(\$\w+)\s?=\s?array\(((?:"[\w\d\s\/\.]+",?\s?)+)\);\s?(\$\w+)\s?=\s?\'\';\s?(?:\$\w+\s=(?:\s?\5\[\d+\]\s?\.?)+;\s?)+(\$\w+)\s?=\s?\$\w+\("\\\\r\\\\n",\s?\1\);\s?for\((\$\w+)=0;\9\s?<\s?sizeof\(\8\);\9\+\+\){\s?\7\s\.=\s?\$\w+\(\8\[\9\]\);\s?}\s?\1\s?=\s?\7;\s?(\$\w+)\s?=\s?\3;\s?(\$\w+)\s?=\s?"";\s?for\((\$\w+)=0;\s?\12<sizeof\(\10\);\s?\12\+=2\){\s?if\(\12\s?%\s?4\){\s?\11\.=\s?substr\(\1,\10\[\12\],\10\[\12\+1\]\);\s?}else{\s?\11\.=strrev\(substr\(\1,\10\[\12\],\10\[\12\+1\]\)\);\s?}\s?};\s?\1\s?=\s?\$\w+\(\11\);\s(\$\w+)\s?=\s?array\(\);\s?(\$\w+)\s?=\s?(?:\5\[\d+\]\s?\.?\s?;?)+;\s?(\$\w+)\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;\s?(\$\w+)\s?=\s?\'\';\s?for\((\$\w+)=0;\s?\17<strlen\(\1\);\s?\17\+=32\){\s?\13\[\]\s?=\s?substr\(\1,\s?\17,\s?32\);\s?}\s?(?:\$\w+\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;\s)+\$\w+\s?=\s?\'\';\s?\$\w+\s?=\s?\(\$\w+\(\$\w+\(\$\w+\)\)\)\s?%\s?sizeof\(\$\w+\);\s?\$\w+\s?=\s?\$\w+\[\$\w+\];\s?(\$\w+)\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;(\s?\18\s?=\s?\$_POST\[\18\];\s?(\14\s?=\s?\15\(\$_COOKIE\[\14\]\);)\s?\$\w+\s?=\s?\5\[\d+\]\s?\.\s?\5\[\d+\];\s?(eval\(\$\w+\(\18\)\);)\s?if\(!\16\){\s?((?:\$\w+\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;\s)+)(\$\w+\(\$\w+\);\s?echo\(\$\w+\);)\s?})~msi', 'fast' => '~(\$\w+)\s?=\s?"([\w\s=]+)";\s?(\$\w+)\s?=\s?array\(((?:\d+,?\s?)+)\);\s?(\$\w+)\s?=\s?array\(((?:"[\w\d\s\/\.]+",?\s?)+)\);\s?(\$\w+)\s?=\s?\'\';\s?(?:\$\w+\s=(?:\s?\5\[\d+\]\s?\.?)+;\s?)+(\$\w+)\s?=\s?\$\w+\("\\\\r\\\\n",\s?\1\);\s?for\((\$\w+)=0;\9\s?<\s?sizeof\(\8\);\9\+\+\){\s?\7\s\.=\s?\$\w+\(\8\[\9\]\);\s?}\s?\1\s?=\s?\7;\s?(\$\w+)\s?=\s?\3;\s?(\$\w+)\s?=\s?"";\s?for\((\$\w+)=0;\s?\12<sizeof\(\10\);\s?\12\+=2\){\s?if\(\12\s?%\s?4\){\s?\11\.=\s?substr\(\1,\10\[\12\],\10\[\12\+1\]\);\s?}else{\s?\11\.=strrev\(substr\(\1,\10\[\12\],\10\[\12\+1\]\)\);\s?}\s?};\s?\1\s?=\s?\$\w+\(\11\);\s(\$\w+)\s?=\s?array\(\);\s?(\$\w+)\s?=\s?(?:\5\[\d+\]\s?\.?\s?;?)+;\s?(\$\w+)\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;\s?(\$\w+)\s?=\s?\'\';\s?for\((\$\w+)=0;\s?\17<strlen\(\1\);\s?\17\+=32\){\s?\13\[\]\s?=\s?substr\(\1,\s?\17,\s?32\);\s?}\s?(?:\$\w+\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;\s)+\$\w+\s?=\s?\'\';\s?\$\w+\s?=\s?\(\$\w+\(\$\w+\(\$\w+\)\)\)\s?%\s?sizeof\(\$\w+\);\s?\$\w+\s?=\s?\$\w+\[\$\w+\];\s?(\$\w+)\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;(\s?\18\s?=\s?\$_POST\[\18\];\s?(\14\s?=\s?\15\(\$_COOKIE\[\14\]\);)\s?\$\w+\s?=\s?\5\[\d+\]\s?\.\s?\5\[\d+\];\s?(eval\(\$\w+\(\18\)\);)\s?if\(!\16\){\s?((?:\$\w+\s?=\s?(?:\5\[\d+\]\s?\.?\s?)+;\s)+)(\$\w+\(\$\w+\);\s?echo\(\$\w+\);)\s?})~msi', 'id' => 'evalPostDictionary', ], [ 'full' => '~(\$\w)\s?=\s?str_rot13\("([^"]+)"\);preg_replace\("//e","\1",""\);~msi', 'fast' => '~(\$\w)\s?=\s?str_rot13\("([^"]+)"\);preg_replace\("//e","\1",""\);~msi', 'id' => 'strrotPregReplaceEval', ], [ 'full' => '~(\$\w+)\s*=\s*[^\']+\'([^\']+)\';\s*(\$\w+)\s*=\s*\'([^\']+)\';\s*if\(!file_exists\(\$file\)+\{\s*@file_put_contents\(\1,base64_decode\(base64_decode\(\3\)+;\s*\}\s*\@include\s*\$file;~msi', 'fast' => '~(\$\w+)\s*=\s*[^\']+\'([^\']+)\';\s*(\$\w+)\s*=\s*\'([^\']+)\';\s*if\(!file_exists\(\$file\)+\{\s*@file_put_contents\(\1,base64_decode\(base64_decode\(\3\)+;\s*\}\s*\@include\s*\$file;~msi', 'id' => 'dropInclude', ], [ 'full' => '~(?(DEFINE)(?\'c\'(?:/\*[^/]*/?\*/)*))(?&c)@?(eval|echo|(\$\w+)\s*=\s*create_function)(?:\/\*+\/)?\s*(?&c)\((?&c)(\'\',)?\s*([\'"?>.\s]+)?\s*\(?\s*@?\s*((?&c)base64_decode(?&c)\s*\((?&c)|(?&c)pack(?&c)\s*\(\'H\*\',|(?&c)convert_uudecode(?&c)\s*\(|(?&c)htmlspecialchars_decode(?&c)\s*\(|(?&c)stripslashes(?&c)\s*\(|(?&c)gzinflate(?&c)\s*\(|(?&c)strrev(?&c)\s*\(|(?&c)str_rot13(?&c)\s*\(|(?&c)gzuncompress(?&c)\s*\(|(?&c)urldecode(?&c)\s*\(|(?&c)rawurldecode(?&c)\s*\(|(?&c)eval(?&c)\s*\()+.*?[^\'")]+(?&c)(((?&c)\s*(?&c)\.?(?&c)[\'"]((?&c)[^\'";]+(?&c)[\'"](?&c)*\s*)+(?&c))?(?&c)\s*[\'"\);]+(?&c))+(?&c)(\s*\2\(\);(?&c))?~msi', 'fast' => '~(?(DEFINE)(?\'c\'(?:/\*[^/]*/?\*/)*))(?&c)@?(eval|echo|(\$\w+)\s*=\s*create_function)(?:\/\*+\/)?\s*(?&c)\((?&c)(\'\',)?\s*([\'"?>.\s]+)?\s*\(?\s*@?\s*((?&c)base64_decode(?&c)\s*\((?&c)|(?&c)pack(?&c)\s*\(\'H\*\',|(?&c)convert_uudecode(?&c)\s*\(|(?&c)htmlspecialchars_decode(?&c)\s*\(|(?&c)stripslashes(?&c)\s*\(|(?&c)gzinflate(?&c)\s*\(|(?&c)strrev(?&c)\s*\(|(?&c)str_rot13(?&c)\s*\(|(?&c)gzuncompress(?&c)\s*\(|(?&c)urldecode(?&c)\s*\(|(?&c)rawurldecode(?&c)\s*\(|(?&c)eval(?&c)\s*\()+.*?[^\'")]+(?&c)(((?&c)\s*(?&c)\.?(?&c)[\'"]((?&c)[^\'";]+(?&c)[\'"](?&c)*\s*)+(?&c))?(?&c)\s*[\'"\);]+(?&c))+(?&c)(\s*\2\(\);(?&c))?~msi', 'id' => 'evalComments', ], [ 'full' => '~\@?error_reporting\(0\);\@?set_time_limit\(0\);\s*(\$\w+)="([^"]+)";\s*\1=\@?urldecode\(\1\);\1=\@?strrev\(\1\);\@?eval\(\1\);~msi', 'fast' => '~\@?error_reporting\(0\);\@?set_time_limit\(0\);\s*(\$\w+)="([^"]+)";\s*\1=\@?urldecode\(\1\);\1=\@?strrev\(\1\);\@?eval\(\1\);~msi', 'id' => 'strrevUrldecodeEval', ], [ 'full' => '~(\$\w+\s*=\s*"\w+";\s*\@?error_reporting\(E_ERROR\);\s*\@?ini_set\(\'display_errors\',\'Off\'\);\s*\@?ini_set\(\'max_execution_time\',\d+\);\s*header\("[^"]+"\);\s*)?(\$\w+)\s*=\s*"([^"]+)";\s*(\$\w+)\s*=\s*pack\("H\*",str_rot13\(\2\)+;\s*eval\(\4\);~msi', 'fast' => '~(\$\w+\s*=\s*"\w+";\s*\@?error_reporting\(E_ERROR\);\s*\@?ini_set\(\'display_errors\',\'Off\'\);\s*\@?ini_set\(\'max_execution_time\',\d+\);\s*header\("[^"]+"\);\s*)?(\$\w+)\s*=\s*"([^"]+)";\s*(\$\w+)\s*=\s*pack\("H\*",str_rot13\(\2\)+;\s*eval\(\4\);~msi', 'id' => 'evalPackStrrot', ], [ 'full' => '~\$\w+\s*=\s*\d+;\s*function\s*(\w+)\(\$\w+,\s*\$\w+\)\{\$\w+\s*=\s*\'\';\s*for[^{]+\{([^}]+\}){2}\s*\$\w{1,40}\s*=\s*((\'[^\']+\'\s*\.?\s*)+);\s*\$\w+\s*=\s*Array\(((\'\w\'=>\'\w\',?\s*)+)\);\s*eval(?:/\*[^/]\*/)*\(\1\(\$\w+,\s*\$\w+\)+;~msi', 'fast' => '~\$\w+\s*=\s*\d+;\s*function\s*(\w+)\(\$\w+,\s*\$\w+\)\{\$\w+\s*=\s*\'\';\s*for[^{]+\{([^}]+\}){2}\s*\$\w{1,40}\s*=\s*((\'[^\']+\'\s*\.?\s*)+);\s*\$\w+\s*=\s*Array\(((\'\w\'=>\'\w\',?\s*)+)\);\s*eval(?:/\*[^/]\*/)*\(\1\(\$\w+,\s*\$\w+\)+;~msi', 'id' => 'urlDecodeTable', ], [ 'full' => '~((?:\$\w+=\'\w\';)+)((?:\$\w+=(\$\w+\.?)+;)+)eval\((\$\w+\()+\'([^\']+)\'\)+;~msi', 'fast' => '~((?:\$\w+=\'\w\';)+)((?:\$\w+=(\$\w+\.?)+;)+)eval\((\$\w+\()+\'([^\']+)\'\)+;~msi', 'id' => 'evalVarChar', ], [ 'full' => '~(\$\w+\s*=\s*(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|htmlspecialchars_decode\s*\()+"([^"]+)"\);)\s*eval\("?(\$\w+)"?\);~msi', 'fast' => '~(\$\w+\s*=\s*(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|htmlspecialchars_decode\s*\()+"([^"]+)"\);)\s*eval\("?(\$\w+)"?\);~msi', 'id' => 'evalVarFunc', ], [ 'full' => '~((?:\$\w+\s*=\s*("[\w=+/\\\\]+");\s*)+)(eval\((\$\w+\(+)+(\$\w+)\)+);~msi', 'fast' => '~((?:\$\w+\s*=\s*("[\w=+/\\\\]+");\s*)+)(eval\((\$\w+\(+)+(\$\w+)\)+);~msi', 'id' => 'evalVarsFuncs', ], [ 'full' => '~<\?php\s*(?:/\*[^=\$\{\}/]{99,499}\bencipher\s*can\s*be\s*obtained\s*from:\s*https?://docs\.google\.com/[^\*\$\(;\}\{=]{1,99}\*/\s*)?(\$[^\w=(,${)}]{0,50})=\'(\w{0,50})\';((?:\$[^\w=(,${)}]{0,50}=(?:\1{\d+}\.?){0,50};){1,20})(\$[^=]{0,50}=\$[^\w=(,${)}]{1,50}\(\$[^\w=(,${)}]{1,50}\(\'\\\\{2}\',\'/\',__FILE__\)\);(?:\$[^\w=(,${)}]{0,50}=\$[^\w=(,${)}]{0,50}\(\$[^\w=(,${)}]{0,50}\);){2}\$[^\w=(,${)}]{0,50}=\$[^\w=(,${)}]{0,50}\(\'\',\$[^\w=(,${)}]{0,50}\)\.\$[^\(]{0,50}\(\$[^\w=(,${)}]{0,50},\d+,\$[^\w=(,${)}]{0,50}\(\$[^\w=(,${)}]{0,50},\'@ev\'\)\);\$[^\w=(,${)}]{0,50}=\$[^\(]{0,50}\(\$[^\w=(,${)}]{0,50}\);\$[^\w=(,${)}]{0,50}=\$[^\w=(,${)}=]{0,50}=\$[^\w=(,${)}]{0,50}=NULL;@eval\(\$[^\w=(,${)}]{0,50}\(\$[^\w=(,${)}(]{0,50}\(\$[^\w=(,${)}]{0,50},\'\',\$[^\w=(,${)}]{0,50}\(\'([^\']{0,500})\',\'([^\']{0,500})\',\'([^\']{0,500})\'\){4};)unset\((?:\$[^,]{0,50},?){0,20};return;\?>.+~msi', 'fast' => '~<\?php\s*(?:/\*[^=\$\{\}/]{99,499}\bencipher\s*can\s*be\s*obtained\s*from:\s*https?://docs\.google\.com/[^\*\$\(;\}\{=]{1,99}\*/\s*)?(\$[^\w=(,${)}]{0,50})=\'(\w{0,50})\';((?:\$[^\w=(,${)}]{0,50}=(?:\1{\d+}\.?){0,50};){1,20})(\$[^=]{0,50}=\$[^\w=(,${)}]{1,50}\(\$[^\w=(,${)}]{1,50}\(\'\\\\{2}\',\'/\',__FILE__\)\);(?:\$[^\w=(,${)}]{0,50}=\$[^\w=(,${)}]{0,50}\(\$[^\w=(,${)}]{0,50}\);){2}\$[^\w=(,${)}]{0,50}=\$[^\w=(,${)}]{0,50}\(\'\',\$[^\w=(,${)}]{0,50}\)\.\$[^\(]{0,50}\(\$[^\w=(,${)}]{0,50},\d+,\$[^\w=(,${)}]{0,50}\(\$[^\w=(,${)}]{0,50},\'@ev\'\)\);\$[^\w=(,${)}]{0,50}=\$[^\(]{0,50}\(\$[^\w=(,${)}]{0,50}\);\$[^\w=(,${)}]{0,50}=\$[^\w=(,${)}=]{0,50}=\$[^\w=(,${)}]{0,50}=NULL;@eval\(\$[^\w=(,${)}]{0,50}\(\$[^\w=(,${)}(]{0,50}\(\$[^\w=(,${)}]{0,50},\'\',\$[^\w=(,${)}]{0,50}\(\'([^\']{0,500})\',\'([^\']{0,500})\',\'([^\']{0,500})\'\){4};)unset\((?:\$[^,]{0,50},?){0,20};return;\?>.+~msi', 'id' => 'evalFileContent', ], [ 'full' => '~echo\s{0,50}"(\\\\\${\\\\x\d{2}(?:.*?[^\\\\]+)+)";~msi', 'fast' => '~echo\s{0,50}"(\\\\\${\\\\x\d{2}(?:.*?[^\\\\]+)+)";~msi', 'id' => 'echoEscapedStr', ], [ 'full' => '~file_put_contents\(\$\w+\[[\'"]\w+[\'"]\]\.[\'"][/\w]+\.php[\'"],(base64_decode\([\'"]([\w=]+)[\'"]\))\)~msi', 'fast' => '~file_put_contents\(\$\w+\[[\'"]\w+[\'"]\]\.[\'"][/\w]+\.php[\'"],(base64_decode\([\'"]([\w=]+)[\'"]\))\)~msi', 'id' => 'filePutDecodedContents', ], [ 'full' => '~eval\(implode\(array_map\([\'"](\w+)[\'"],str_split\([\'"]([^\'"]+)[\'"]\)\)\)\);~msi', 'fast' => '~eval\(implode\(array_map\([\'"](\w+)[\'"],str_split\([\'"]([^\'"]+)[\'"]\)\)\)\);~msi', 'id' => 'evalImplodedArrStr', ], [ 'full' => '~(\$\w+)\s?=\s?\'(.*?NULL\);)\';\s*(\$\w+)\s?=\s?[\'"]([\w\\\\]+)[\'"];\s?\3\([\'"]/\(\.\*\)/e[\'"],\s?[\'"]([\w\\\\]+)[\'"],\s?NULL\);~msi', 'fast' => '~(\$\w+)\s?=\s?\'(.*?NULL\);)\';\s*(\$\w+)\s?=\s?[\'"]([\w\\\\]+)[\'"];\s?\3\([\'"]/\(\.\*\)/e[\'"],\s?[\'"]([\w\\\\]+)[\'"],\s?NULL\);~msi', 'id' => 'pregReplaceCodeContent', ], [ 'full' => '~(\$\w+)\s*=\s*"([^"]+)";(?:\$\w+)\s*=\s*base64_decode\("[^"]+"\);(\$\w+)\s*=\s*gzinflate\(base64_decode\(\1\)\);((\s*\$\w+\s*=\s*\[(\'[^\']+\',?)+\];)+)\s*\3\s*=\s*str_replace\(\$\w+,\$\w+,\3\);\s*eval\(\3\);\$\w+="[^"]+";~msi', 'fast' => '~(\$\w+)\s*=\s*"([^"]+)";(?:\$\w+)\s*=\s*base64_decode\("[^"]+"\);(\$\w+)\s*=\s*gzinflate\(base64_decode\(\1\)\);((\s*\$\w+\s*=\s*\[(\'[^\']+\',?)+\];)+)\s*\3\s*=\s*str_replace\(\$\w+,\$\w+,\3\);\s*eval\(\3\);\$\w+="[^"]+";~msi', 'id' => 'sistemitComEnc', ], [ 'full' => '~((?:\$\w+\s*\.?=\s*"[^"]*";\s*)+)(\$\w+)\s*=\s*str_replace\(\s*"([^"]+)",\s*"",\s*\$\w+\s*\);\s*(\$\w+)\s*=\s*str_replace\(\s*"([^"]+)",\s*"",\s*"([^"]+)"\s*\);\s*(\$\w+)\s*=\s*\4\(\s*\2\s*\);\s*\7\s*=\s*"[^"]+\7";\s*eval\(\s*\7\s*\);~msi', 'fast' => '~((?:\$\w+\s*\.?=\s*"[^"]*";\s*)+)(\$\w+)\s*=\s*str_replace\(\s*"([^"]+)",\s*"",\s*\$\w+\s*\);\s*(\$\w+)\s*=\s*str_replace\(\s*"([^"]+)",\s*"",\s*"([^"]+)"\s*\);\s*(\$\w+)\s*=\s*\4\(\s*\2\s*\);\s*\7\s*=\s*"[^"]+\7";\s*eval\(\s*\7\s*\);~msi', 'id' => 'concatVarsReplaceEval', ], [ 'full' => '~(?:(?:\$\w+=(?:chr\(\d+\)[;.])+)+\$\w+="[^"]+";(\$\w+)=(?:\$\w+[.;])+\s*)?(\$\w+)=\'([^\']+)\';((?:\s*\2=str_replace\(\'[^\']+\',\s*\'\w\',\s*\2\);\s*)+)(?(1)\s*\1\s*=\s*str_replace\(\'[^+]\',\s*\'[^\']+\',\s*\1\);\s*(\$\w+)\s*=\s*[^;]+;";\s*@?\1\(\s*str_replace\((?:\s*array\(\'[^\']+\',\s*\'[^\']+\'\),){2}\s*\5\)\s*\);|\s*\2=base64_decode\(\2\);\s*eval\(\2\);)~msi', 'fast' => '~(?:(?:\$\w+=(?:chr\(\d+\)[;.])+)+\$\w+="[^"]+";(\$\w+)=(?:\$\w+[.;])+\s*)?(\$\w+)=\'([^\']+)\';((?:\s*\2=str_replace\(\'[^\']+\',\s*\'\w\',\s*\2\);\s*)+)(?(1)\s*\1\s*=\s*str_replace\(\'[^+]\',\s*\'[^\']+\',\s*\1\);\s*(\$\w+)\s*=\s*[^;]+;";\s*@?\1\(\s*str_replace\((?:\s*array\(\'[^\']+\',\s*\'[^\']+\'\),){2}\s*\5\)\s*\);|\s*\2=base64_decode\(\2\);\s*eval\(\2\);)~msi', 'id' => 'evalVarReplace', ], [ 'full' => '~((\$\w+\s*=\s*\(?(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|htmlspecialchars_decode\s*\()*((?:"([^"]+)";\s*)|(?:\$\w+)\)*;\s*))+)(eval\("?(\$\w+)"?\);)~msi', 'fast' => '~((\$\w+\s*=\s*\(?(base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|htmlspecialchars_decode\s*\()*((?:"([^"]+)";\s*)|(?:\$\w+)\)*;\s*))+)(eval\("?(\$\w+)"?\);)~msi', 'id' => 'evalVarFunc2', ], [ 'full' => '~((\$\w+)\s*=\s*"([^"]+)";)\s*((\$\w+)\s*=\s*array\(((\s*\d+,?)+)\);)\s*((\$\w+)\s*=\s*array\(((\s*"[^"]+",?)+)\);)\s*(\$\w+)\s*=\s*\'\';(\s*\$\w+\s*=\s*(?:\9\[\d+\]\s*\.?\s*)+;)+(.+?(\s*\$\w+\s*=\s*\w+\((?:\9\[\d+\]\s*\.?\s*)+)\);\s*eval\(\$\w+\);\s*\})~msi', 'fast' => '~((\$\w+)\s*=\s*"([^"]+)";)\s*((\$\w+)\s*=\s*array\(((\s*\d+,?)+)\);)\s*((\$\w+)\s*=\s*array\(((\s*"[^"]+",?)+)\);)\s*(\$\w+)\s*=\s*\'\';(\s*\$\w+\s*=\s*(?:\9\[\d+\]\s*\.?\s*)+;)+(.+?(\s*\$\w+\s*=\s*\w+\((?:\9\[\d+\]\s*\.?\s*)+)\);\s*eval\(\$\w+\);\s*\})~msi', 'id' => 'evalArrays', ], [ 'full' => '~\$\w+\s?=\s?preg_replace\([\'"]/([^\'"/]+)/\w{0,2}[\'"],[\'"]([^\'"]+)[\'"],[\'"]{2}\);~msi', 'fast' => '~\$\w+\s?=\s?preg_replace\([\'"]/([^\'"/]+)/\w{0,2}[\'"],[\'"]([^\'"]+)[\'"],[\'"]{2}\);~msi', 'id' => 'pregReplaceVar', ], [ 'full' => '~function\s(\w+)\((\$\w+),\s?(\$\w+)\){\s?(\$\w+)=[\'"]{2};\s?for\(\$\w+=0;\$\w+<strlen\(\2\);\)\s?for\(\$\w+=0;\$\w+<strlen\(\3\);\$\w+\+\+,\s?\$\w+\+\+\)\s?\4\s?\.=\s?\2{\$\w+}\s?\^\s?\3{\$\w+};\s?return\s?\4;\s?};eval\(\1\(base64_decode\([\'"]([^\'"]+)[\'"]\),[\'"]([^\'"]+)[\'"]\)\);~msi', 'fast' => '~function\s(\w+)\((\$\w+),\s?(\$\w+)\){\s?(\$\w+)=[\'"]{2};\s?for\(\$\w+=0;\$\w+<strlen\(\2\);\)\s?for\(\$\w+=0;\$\w+<strlen\(\3\);\$\w+\+\+,\s?\$\w+\+\+\)\s?\4\s?\.=\s?\2{\$\w+}\s?\^\s?\3{\$\w+};\s?return\s?\4;\s?};eval\(\1\(base64_decode\([\'"]([^\'"]+)[\'"]\),[\'"]([^\'"]+)[\'"]\)\);~msi', 'id' => 'evalFuncTwoArgs', ], [ 'full' => '~function\s(\w+)\(\$\w+\)\s?{\s?\$\w+\s?=\s?[\'"]{2};\s?unset\(\$\w+\);\s?\$\w+\s?=\s?[\'"]([^\'"]+)[\'"];\s?\$\w+\s?=\s?preg_replace\("/([^"]+)/",\s?[\'"]{2},\s?\$\w+\);\s?\$\w+\s?=\s?(?:(?:[\'"]\w+[\'"]|\$\w+)\.?)+;\s?\$\w+\s?=\s?\$\w+\([\'"]\$\w+[\'"],\s?\$\w+\);\s?@?\$\w+\(\$\w+\);\s?}\s?function\s?(\w+)\(\$\w+\)\s?{\s?\$\w+\s?=\s?[\'"](.*?)[\'"];\s?\$\w+\s?=\s?preg_replace\("/([^\'"]+)/",\s?[\'"]{2},\s?\$\w+\);\s?return\s?\$\w+\(\$\w+\);\s?}\s?\1\(\4\(\s?join\([\'"]([^\'"]+)[\'"],\s?array\(((?:[\'"][^\'"]+[\'"],?)+)\)+;~msi', 'fast' => '~function\s(\w+)\(\$\w+\)\s?{\s?\$\w+\s?=\s?[\'"]{2};\s?unset\(\$\w+\);\s?\$\w+\s?=\s?[\'"]([^\'"]+)[\'"];\s?\$\w+\s?=\s?preg_replace\("/([^"]+)/",\s?[\'"]{2},\s?\$\w+\);\s?\$\w+\s?=\s?(?:(?:[\'"]\w+[\'"]|\$\w+)\.?)+;\s?\$\w+\s?=\s?\$\w+\([\'"]\$\w+[\'"],\s?\$\w+\);\s?@?\$\w+\(\$\w+\);\s?}\s?function\s?(\w+)\(\$\w+\)\s?{\s?\$\w+\s?=\s?[\'"](.*?)[\'"];\s?\$\w+\s?=\s?preg_replace\("/([^\'"]+)/",\s?[\'"]{2},\s?\$\w+\);\s?return\s?\$\w+\(\$\w+\);\s?}\s?\1\(\4\(\s?join\([\'"]([^\'"]+)[\'"],\s?array\(((?:[\'"][^\'"]+[\'"],?)+)\)+;~msi', 'id' => 'evalPregReplaceFuncs', ], [ 'full' => '~error_reporting\(0\);((?:\$\w+=\'[^;]+;)+)error_reporting\(0\);((?:\$\w+=\$\w+\(\$\w+\(\'([^\']+)\'\)\);)+\$\w+=(?:\$\w+\()+\'([^\']+)\'\)+\.(?:\$\w+\()+\'([^\']+)\'\)+;\$\w+=(?:\$\w+\()+\'([^\']+)\'\)+;\$\w+=(?:\$\w+\()+"\\\\n",\s*\'\',\s*\'([^\']+)\'\)+;(?:[^}]+\})+}\s*echo\s*(?:\$\w+\()+\'([^\']+)\'\)+);exit;~msi', 'fast' => '~error_reporting\(0\);((?:\$\w+=\'[^;]+;)+)error_reporting\(0\);((?:\$\w+=\$\w+\(\$\w+\(\'([^\']+)\'\)\);)+\$\w+=(?:\$\w+\()+\'([^\']+)\'\)+\.(?:\$\w+\()+\'([^\']+)\'\)+;\$\w+=(?:\$\w+\()+\'([^\']+)\'\)+;\$\w+=(?:\$\w+\()+"\\\\n",\s*\'\',\s*\'([^\']+)\'\)+;(?:[^}]+\})+}\s*echo\s*(?:\$\w+\()+\'([^\']+)\'\)+);exit;~msi', 'id' => 'urlMd5Passwd', ], [ 'full' => '~(\$\w+\s?=\s?[\'"](?:(?:[^\'"]|[\'"])+)[\'"];\s?)+((?:\$\w+\s?=\s?(?:\$\w+(?:\[[\'"]?\d+[\'"]?\])?\s?\.?\s?)+;)+\$\w+\s?=\s?\$\w+\s?\(\$\w+,(?:\$\w+(?:\[[\'"]?\d+[\'"]?\])?\s?\.?\s?)+\);\s*\$\w+\(\$\w+,(?:\$\w+(?:\[[\'"]?\d+[\'"]?\])?\s?[.,]?\s?)+\);)~msi', 'fast' => '~(\$\w+\s?=\s?[\'"](?:(?:[^\'"]|[\'"])+)[\'"];\s?)+((?:\$\w+\s?=\s?(?:\$\w+(?:\[[\'"]?\d+[\'"]?\])?\s?\.?\s?)+;)+\$\w+\s?=\s?\$\w+\s?\(\$\w+,(?:\$\w+(?:\[[\'"]?\d+[\'"]?\])?\s?\.?\s?)+\);\s*\$\w+\(\$\w+,(?:\$\w+(?:\[[\'"]?\d+[\'"]?\])?\s?[.,]?\s?)+\);)~msi', 'id' => 'ManyDictionaryVars', ], [ 'full' => '~function\s(\w+)\(\$\w+\)\s?{\s?\$\w+\s?=\s?(?:[\'"][\\\\\w]+[\'"]\(\d+\s?[-+]\s?\d+\)\s?\.?\s?)+;\s?(?:\$\w+\s?=\s?\$\w+\([\'"](?:edoced_46esab|etalfnizg|ecalper_rts)[\'"]\);\s?)+\$\w+\s?=\s?\$\w+\(array\(((?:\s?"[^"]+",?)+)\),\s?[\'"]{2},\s?\$\w+\);\s?return\s?(?:\$\w+\(){2}\$\w+\)\);\s?}\s?(\$\w+\s?=\s?[\'"]\w+[\'"];)?\s?ob_start\(\);\s?\?>(.*?)<\?php\s?\$\w+\s?=\s?ob_get_clean\(\);\s?eval\(\1\(\$\w+\)\);\s?\?>~msi', 'fast' => '~function\s(\w+)\(\$\w+\)\s?{\s?\$\w+\s?=\s?(?:[\'"][\\\\\w]+[\'"]\(\d+\s?[-+]\s?\d+\)\s?\.?\s?)+;\s?(?:\$\w+\s?=\s?\$\w+\([\'"](?:edoced_46esab|etalfnizg|ecalper_rts)[\'"]\);\s?)+\$\w+\s?=\s?\$\w+\(array\(((?:\s?"[^"]+",?)+)\),\s?[\'"]{2},\s?\$\w+\);\s?return\s?(?:\$\w+\(){2}\$\w+\)\);\s?}\s?(\$\w+\s?=\s?[\'"]\w+[\'"];)?\s?ob_start\(\);\s?\?>(.*?)<\?php\s?\$\w+\s?=\s?ob_get_clean\(\);\s?eval\(\1\(\$\w+\)\);\s?\?>~msi', 'id' => 'evalBuffer', ], [ 'full' => '~((?:\$\w+\s?=\s?[\'"]\w*[\'"];\s?){0,50}(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];(?:\$\w+\s?\.?=\s?(?:\$\w+{\d+}\.?)+;)+)\s?(eval\((\$\w+)\([\'"]([^\'"]+)[\'"]\)\);)~msi', 'fast' => '~((?:\$\w+\s?=\s?[\'"]\w*[\'"];\s?){0,50}(\$\w+)\s?=\s?[\'"]([^\'"]+)[\'"];(?:\$\w+\s?\.?=\s?(?:\$\w+{\d+}\.?)+;)+)\s?(eval\((\$\w+)\([\'"]([^\'"]+)[\'"]\)\);)~msi', 'id' => 'evalDictionaryVars', ], [ 'full' => '~\$\w+\s?=\s?[\'"]([^\'"]+)[\'"];(?:\$\w+\s?=\s?base64_decode\([\'"][^\'"]+[\'"]\);)+\$\w+\s?=\s?\$\w+\(\$\w+\(\$\w+\)\);\$\w+\s?=\s?\$\w+\(\$\w+\);(\$\w+)\s?=\s?[\'"]{2};for\(\$\w+\s?=\s?0\s?;\s?\$\w+\s?<\s?\$\w+\s?;\s?\$\w+\+\+\){\2\s?\.=\s?\$\w+\(\(\$\w+\(\$\w+\[\$\w+\]\)\^(\d+)\)\);}eval\(\2\);return;~msi', 'fast' => '~\$\w+\s?=\s?[\'"]([^\'"]+)[\'"];(?:\$\w+\s?=\s?base64_decode\([\'"][^\'"]+[\'"]\);)+\$\w+\s?=\s?\$\w+\(\$\w+\(\$\w+\)\);\$\w+\s?=\s?\$\w+\(\$\w+\);(\$\w+)\s?=\s?[\'"]{2};for\(\$\w+\s?=\s?0\s?;\s?\$\w+\s?<\s?\$\w+\s?;\s?\$\w+\+\+\){\2\s?\.=\s?\$\w+\(\(\$\w+\(\$\w+\[\$\w+\]\)\^(\d+)\)\);}eval\(\2\);return;~msi', 'id' => 'evalFuncXored', ], [ 'full' => '~[\'"]-;-[\'"];(.*?\(\'\\\\\\\\\',\'/\',__FILE__\)\);.*?,[\'"];[\'"]\),[\'"]"[\'"]\);.*?)[\'"]-;-[\'"];((\$\w+)=[\'"]([^\'"]+)[\'"];.*?\$\w+\s?\.\s?\3,\s?[\'"]([^\'"]+)[\'"],\s?[\'"]([^\'"]+)[\'"]\)\)\).*?)[\'"]-;-[\'"];(.*?)[\'"]-;-[\'"];~msi', 'fast' => '~[\'"]-;-[\'"];(.*?\(\'\\\\\\\\\',\'/\',__FILE__\)\);.*?,[\'"];[\'"]\),[\'"]"[\'"]\);.*?)[\'"]-;-[\'"];((\$\w+)=[\'"]([^\'"]+)[\'"];.*?\$\w+\s?\.\s?\3,\s?[\'"]([^\'"]+)[\'"],\s?[\'"]([^\'"]+)[\'"]\)\)\).*?)[\'"]-;-[\'"];(.*?)[\'"]-;-[\'"];~msi', 'id' => 'evalFuncExplodedContent', ], [ 'full' => '~(\$\w{0,100}\s?=\s?(?:chr\(\w{1,10}\)\s?\.?){1,100};\s?(?:\$\w{0,100}\s?=\s?(?:\s?(?:[\'"][\\\\\\\\\w]{1,10}[\'"]|[\d\.]{1,5}\s[*\+\-\.]\s\d{1,5})\s?\.?)+?;\s?){1,10}\$\w{0,100}\s?=\s?(?:chr\(\w{1,10}\)\s?\.?){1,100};\s?\$\w{1,50}\s?=\s?\$\w{1,50}\(\$\w{1,50}\((?:[\'"][^\'"]{1,500}[\'"]\s?\.?\s?)+\),\s?(?:[\'"][^\'"]{1,500}[\'"]\s?\.?\s?)+,\s?substr\(hash\([\'"]SHA256[\'"],(?:\s?[\'"]\d{1,15}[\'"]\s?\.?){2},\s?true\),\s?(\d{1,10}),\s?(\d{1,10})\),\s?OPENSSL_RAW_DATA,\s?\$\w{1,50}\);.*?)(\$\w{1,50})\s?=\s?\$\w{1,50}\([\'"]([^\'"]+)[\'"],[\'"]{2},[\'"]([^\'"]+)[\'"]\);\s?return\s?@eval\(((?:\$\w{1,50}\s?\()+\$\w{1,50}(?:\)\s?)+);\s?exit;~msi', 'fast' => '~\$\w{0,100}\s?=\s?(?:chr\(\w{1,10}\)\s?\.?){1,100};\s?(?:\$\w{0,100}\s?=\s?(?:\s?(?:[\'"][\\\\\\\\\w]{1,10}[\'"]|[\d\.]{1,5}\s[*\+\-\.]\s\d{1,5})\s?\.?)+?;\s?){1,10}\$\w{0,100}\s?=\s?(?:chr\(\w{1,10}\)\s?\.?){1,100};\s?\$\w{1,50}\s?=\s?\$\w{1,50}\(\$\w{1,50}\((?:[\'"][^\'"]{1,500}[\'"]\s?\.?\s?)+\),\s?(?:[\'"][^\'"]{1,500}[\'"]\s?\.?\s?)+,\s?substr\(hash\([\'"]SHA256[\'"],(?:\s?[\'"]\d{1,15}[\'"]\s?\.?){2},\s?true\),\s?(\d{1,10}),\s?(\d{1,10})\),\s?OPENSSL_RAW_DATA,\s?\$\w{1,50}\);.*?\$\w{1,50}\s?=\s?\$\w{1,50}\([\'"]([^\'"]+)[\'"],[\'"]{2},[\'"]([^\'"]+)[\'"]\);\s?return\s?@eval\(((?:\$\w{1,50}\s?\()+\$\w{1,50}(?:\)\s?)+);\s?exit;~msi', 'id' => 'evalEncryptedVars', ], [ 'full' => '~function\s(\w+)\((\$\w+),\s*(\$\w+)[^)]+\)\s*\{\s*\$\w+\s*=\s*\2;\s*\$\w+\s*=\s*\'\';\s*for\s*\(\$\w+\s*=\s*0;\$\w+\s*<\s*strlen\(\$\w+\);\)\s*{\s*for\s*\(\$\w+\s*=\s*0;\$\w+\s*<\s*strlen\(\3\)\s*&&\s*\$\w+\s*<\s*strlen\(\$\w+\);\$\w+\+\+,\s*\$\w+\+\+\)\s*{\s*\$\w+\.=\s*\$\w+\[\$\w+\]\s*\^\s*\3\[\$\w+\];\s*}\s*}\s*return \$\w+;\s*}\s*\$\w+\s*=\s*"[^"]+";\s*\$\w+\s*=\s*"([^"]+)";\s*(?:\$\w+\s*=\s*"";\s*)+(?:foreach[^{]+{[^}]+}\s*)+(\$\w+)\s*=\s*\$\w+\([create_funion\'. ]+\);\s*(\$\w+)\s*=\s*\5\("[^"]*",\s*\$\w+\(\1\(\$\w+\(\$\w+\),\s*"([^"]+)"\)+;\s*\6\(\);~msi', 'fast' => '~function\s(\w+)\((\$\w+),\s*(\$\w+)[^)]+\)\s*\{\s*\$\w+\s*=\s*\2;\s*\$\w+\s*=\s*\'\';\s*for\s*\(\$\w+\s*=\s*0;\$\w+\s*<\s*strlen\(\$\w+\);\)\s*{\s*for\s*\(\$\w+\s*=\s*0;\$\w+\s*<\s*strlen\(\3\)\s*&&\s*\$\w+\s*<\s*strlen\(\$\w+\);\$\w+\+\+,\s*\$\w+\+\+\)\s*{\s*\$\w+\.=\s*\$\w+\[\$\w+\]\s*\^\s*\3\[\$\w+\];\s*}\s*}\s*return \$\w+;\s*}\s*\$\w+\s*=\s*"[^"]+";\s*\$\w+\s*=\s*"([^"]+)";\s*(?:\$\w+\s*=\s*"";\s*)+(?:foreach[^{]+{[^}]+}\s*)+(\$\w+)\s*=\s*\$\w+\([create_funion\'. ]+\);\s*(\$\w+)\s*=\s*\5\("[^"]*",\s*\$\w+\(\1\(\$\w+\(\$\w+\),\s*"([^"]+)"\)+;\s*\6\(\);~msi', 'id' => 'xoredKey', ], [ 'full' => '~(\$\w+)=str_rot13\(\'[^\']+\'\);(\$\w+)=str_rot13\(strrev\(\'[^\']+\'\)\);(\s*eval\(\1\(\2\(\'([^\']+)\'\)+;)+~msi', 'fast' => '~(\$\w+)=str_rot13\(\'[^\']+\'\);(\$\w+)=str_rot13\(strrev\(\'[^\']+\'\)\);(\s*eval\(\1\(\2\(\'([^\']+)\'\)+;)+~msi', 'id' => 'evalGzB64', ], [ 'full' => '~(function\s*(_\d+)\((\$\w+)\)\s*{(\$\w+)=Array\(\'[^)]+\'\);return\s*base64_decode\(\4\[\3\]\);\})(.+?\2\(\d+\))+[^;]+;exit;~msi', 'fast' => '~(function\s*(_\d+)\((\$\w+)\)\s*{(\$\w+)=Array\(\'[^)]+\'\);return\s*base64_decode\(\4\[\3\]\);\})(.+?\2\(\d+\))+[^;]+;exit;~msi', 'id' => 'evalArrayB64', ], [ 'full' => '~http_response_code\(\d{1,3}\);function\s?(\w{1,100})\(\$\w{1,50}\){if\s?\(empty\(\$\w{1,50}\)\)\s?return;\$\w{1,50}\s?=\s?"[^"]{1,500}";(?:(?:\$\w{1,50}\s?=\s?[\'"]{0,2}){1,4};){1,2}\$\w{1,50}\s?=\s?0;\$\w{1,50}\s?=\s?"";\$\w{1,50}\s?=\s?preg_replace\("[^"]{1,50}",\s?"",\s?\$\w{1,50}\);do{.*?while\s?\(\$\w{1,50}\s?<\s?strlen\(\$\w{1,50}\)\);return\s?\$\w{1,50};}eval\(\1\(hex2bin\("(\w{1,30000})"\)\)\);~msi', 'fast' => '~http_response_code\(\d{1,3}\);function\s?(\w{1,100})\(\$\w{1,50}\){if\s?\(empty\(\$\w{1,50}\)\)\s?return;\$\w{1,50}\s?=\s?"[^"]{1,500}";(?:(?:\$\w{1,50}\s?=\s?[\'"]{0,2}){1,4};){1,2}\$\w{1,50}\s?=\s?0;\$\w{1,50}\s?=\s?"";\$\w{1,50}\s?=\s?preg_replace\("[^"]{1,50}",\s?"",\s?\$\w{1,50}\);do{.*?while\s?\(\$\w{1,50}\s?<\s?strlen\(\$\w{1,50}\)\);return\s?\$\w{1,50};}eval\(\1\(hex2bin\("(\w{1,30000})"\)\)\);~msi', 'id' => 'evalFuncBinary', ], [ 'full' => '~(\$\w{1,50}\s?=\s?\'\w{1,500}\';){1,5}\$\w{1,50}\s?=\s?(?:\$\w{1,50}\.?){1,10};\$\w{1,50}=\$\w{1,50}\([\'"]H\*[\'"],[\'"](\w{1,200})[\'"]\);\s?\$\w{1,50}\("[^"]{1,100}","(\\\\x[^\']{1,500})(\'[^\']{1,50000}\')\\\\x[^"]{1,50}",[\'"]{2}\);~msi', 'fast' => '~(\$\w{1,50}\s?=\s?\'\w{1,500}\';){1,5}\$\w{1,50}\s?=\s?(?:\$\w{1,50}\.?){1,10};\$\w{1,50}=\$\w{1,50}\([\'"]H\*[\'"],[\'"](\w{1,200})[\'"]\);\s?\$\w{1,50}\("[^"]{1,100}","(\\\\x[^\']{1,500})(\'[^\']{1,50000}\')\\\\x[^"]{1,50}",[\'"]{2}\);~msi', 'id' => 'evalPackFuncs', ], [ 'full' => '~parse_str\(((?:\s?\'[^\']\'\s?\.?\s?){1,500}),\s?(\$\w{1,50})\s?\);@?\2\[\d{1,5}\]\(\2\s?\[\d{1,5}\],array\(\),array\s?\(\s?\'([^\']{1,10})\'\s?\.(\$\w{1,50}\[\d\]\s?\(\$\w{1,50}\[\d\]\s?\(\$\w{1,50}\[\s?\d{1,2}\]\()(\'[^\']{1,50000}\')\)\)\)\.\'([^\']{1,10})\'\)\);~msi', 'fast' => '~parse_str\(((?:\s?\'[^\']\'\s?\.?\s?){1,500}),\s?(\$\w{1,50})\s?\);@?\2\[\d{1,5}\]\(\2\s?\[\d{1,5}\],array\(\),array\s?\(\s?\'([^\']{1,10})\'\s?\.(\$\w{1,50}\[\d\]\s?\(\$\w{1,50}\[\d\]\s?\(\$\w{1,50}\[\s?\d{1,2}\]\()(\'[^\']{1,50000}\')\)\)\)\.\'([^\']{1,10})\'\)\);~msi', 'id' => 'parseStrFunc', ], [ 'full' => '~eval\("\\\\(\$\w+)=(gz[^\)]+\)\);)"\);eval\("\?>"\.\1\);~msi', 'fast' => '~eval\("\\\\(\$\w+)=(gz[^\)]+\)\);)"\);eval\("\?>"\.\1\);~msi', 'id' => 'evalGzinflate', ], [ 'full' => '~function\s?(\w{1,50})\(\$\w{1,50}\)\s?{\s?(\$\w{1,50})\s?=\s?\("([^"]{1,500})"\);\s?(?:\$\w{1,50}\s?=\s?(?:"[^"]+"|\$\w{1,50}|[\'"]{2});\s?)+for\(\$\w{1,50}\s?=\s?0;\s?\$\w{1,50}<strlen\(\$\w{1,50}\);\s?\)\s?{\s?for\(\$\w{1,50}\s?=\s?0;\s?\(\$\w{1,50}<strlen\(\2\)\s?&&\s?\$\w{1,50}<strlen\(\$\w{1,50}\)\);\s?\$\w{1,50}\+\+,\$\w{1,50}\+\+\){\s?(?:\$\w{1,50}\s?=\s?"[^"]+";\s?){1,2}\$\w{1,50}\s?\.=\s?\$\w{1,50}{\$\w{1,50}}\s?\^\s?\$\w{1,50}{\$\w{1,50}};\s?\$\w{1,50}\s?=\s?"[^"]+";\s?}\s?}\s?return\s?\$\w{1,50};\s?}\s?(\$\w{1,50})\s?=\s?preg_replace\("([^"]+)",\s?"",\s?"([^"]+)"\);\s?(?:\s?\$\w{1,50}\s?=\s?(?:"[^"]+"|\w{1,50}\(\$\w{1,50}\("[^"]+"\)\)|\$\w{1,50}\(\)\.\s?\w{1,50}\(\$\w{1,50}\("[^"]+"\)\)|"[^"]+"\s*\.\s*\w+\(\$\w+\("[^"]+"\)\));\s?){1,50}(\$\w{1,50}\(\$\w{1,50},(?:\$\w{1,50}\.?)+\);)\s?(?:\$\w{1,50}\s?=\s?"[^"]+";\s?|include\s?\$\w{1,50};\s){1,50}~msi', 'fast' => '~function\s?(\w{1,50})\(\$\w{1,50}\)\s?{\s?(\$\w{1,50})\s?=\s?\("([^"]{1,500})"\);\s?(?:\$\w{1,50}\s?=\s?(?:"[^"]+"|\$\w{1,50}|[\'"]{2});\s?)+for\(\$\w{1,50}\s?=\s?0;\s?\$\w{1,50}<strlen\(\$\w{1,50}\);\s?\)\s?{\s?for\(\$\w{1,50}\s?=\s?0;\s?\(\$\w{1,50}<strlen\(\2\)\s?&&\s?\$\w{1,50}<strlen\(\$\w{1,50}\)\);\s?\$\w{1,50}\+\+,\$\w{1,50}\+\+\){\s?(?:\$\w{1,50}\s?=\s?"[^"]+";\s?){1,2}\$\w{1,50}\s?\.=\s?\$\w{1,50}{\$\w{1,50}}\s?\^\s?\$\w{1,50}{\$\w{1,50}};\s?\$\w{1,50}\s?=\s?"[^"]+";\s?}\s?}\s?return\s?\$\w{1,50};\s?}\s?(\$\w{1,50})\s?=\s?preg_replace\("([^"]+)",\s?"",\s?"([^"]+)"\);\s?(?:\s?\$\w{1,50}\s?=\s?(?:"[^"]+"|\w{1,50}\(\$\w{1,50}\("[^"]+"\)\)|\$\w{1,50}\(\)\.\s?\w{1,50}\(\$\w{1,50}\("[^"]+"\)\)|"[^"]+"\s*\.\s*\w+\(\$\w+\("[^"]+"\)\));\s?){1,50}(\$\w{1,50}\(\$\w{1,50},(?:\$\w{1,50}\.?)+\);)\s?(?:\$\w{1,50}\s?=\s?"[^"]+";\s?|include\s?\$\w{1,50};\s){1,50}~msi', 'id' => 'funcVars', ], [ 'full' => '~(\$\w+)\s*=\s*"([^"]+)";(?:\$\w+\s*=\s*(?:\1\[\d+\][\.;])+)+@?(?:\$\w+[\(,])+((?:\1\[\d+\][\.;\)])+)\)\),\$\w+\[\d+\],\$\w+\[\d+\]\);~msi', 'fast' => '~(\$\w+)\s*=\s*"([^"]+)";(?:\$\w+\s*=\s*(?:\1\[\d+\][\.;])+)+@?(?:\$\w+[\(,])+((?:\1\[\d+\][\.;\)])+)\)\),\$\w+\[\d+\],\$\w+\[\d+\]\);~msi', 'id' => 'dictVars', ], /*[ 'full' => '~goto \w+;\s*(\w+:\s*(\w+:\s*)?.*?goto\s*\w+;\s*(}\s*goto\s*\w+;)?(goto\s*\w+;)?\s*)+\w+:\s*[^;]+;(\s*goto\s*\w+;\s*\w+:\s*\w+:)?~msi', 'fast' => '~goto \w+;\s*(\w+:\s*(\w+:\s*)?.*?goto\s*\w+;\s*(}\s*goto\s*\w+;)?(goto\s*\w+;)?\s*)+\w+:\s*[^;]+;(\s*goto\s*\w+;\s*\w+:\s*\w+:)?~msi', 'id' => 'goto', ],*/ /*[ 'full' => '~if\(isset\(\$_POST\[\'\w+\'\]\)\){echo[\s\'\w]+;\s*exit\(\);}\s*if\(isset\(\$_COOKIE\)\){(\$\w+)=\$_COOKIE;\(count\(\1\)==\d+&&in_array\(gettype\(\1\)\.count\(\1\),\1\)\)\?\(\(\1\[\d+\]=\1\[\d+\]\.\1\[\d+\]\)&&\(\1\[\d+\]=\1\[\d+\]\(\1\[\d+\]\)\)&&\(\1=\1\[\d+\]\(\1\[\d+\],\1\[\d+\]\(\1\[\d+\]\)\)\)&&\1\(\)\):\1;}\s*if\(!isset\(\$_POST\[\'\w+\'\]\)&&!isset\(\$_GET\[\'\w+\'\]\)\){exit\(\);}\s*(?:(\$\w+)\[\d+\]=\'\w+\';)+\s*if\(isset\(\$_POST\[\'\w+\'\]\)\){\$\w+=\$_POST\[\'\w+\'\];}else{\$\w+=\$_GET\[\'\w+\'\];}\s*\$\w+\s*=\s*array_flip\(str_split\(\'(\w+)\'\)\);\$\w+\s*=\s*str_split\(md5\(\$\w+\)\.md5\(\$\w+\)\);\$\w+\s*=\s*array\(\);\$\w+\s*=\s*\'\';\s*foreach\s*\(\$\w+\s*as\s*\$\w+\s*=>\s*\$\w+\)\s*{while\s*\(1\)\s*{if\(isset\(\$\w+\[\$\w+\[\$\w+\]\]\)\){\$\w+\[\$\w+\]\+\+;}else\{\$\w+\[\$\w+\[\$\w+\]\]=\'\';break;}}}\s*foreach\s*\(\$\w+\s*as\s*\$\w+\s*=>\s*\$\w+\)\s*{\$\w+\s*\.=\s*\$\w+\[\$\w+\];}\s*eval\(trim\(base64_decode\(base64_decode\(\$\w+\)\)\)\);~mis', 'fast' => '~if\(isset\(\$_POST\[\'\w+\'\]\)\){echo[\s\'\w]+;\s*exit\(\);}\s*if\(isset\(\$_COOKIE\)\){(\$\w+)=\$_COOKIE;\(count\(\1\)==\d+&&in_array\(gettype\(\1\)\.count\(\1\),\1\)\)\?\(\(\1\[\d+\]=\1\[\d+\]\.\1\[\d+\]\)&&\(\1\[\d+\]=\1\[\d+\]\(\1\[\d+\]\)\)&&\(\1=\1\[\d+\]\(\1\[\d+\],\1\[\d+\]\(\1\[\d+\]\)\)\)&&\1\(\)\):\1;}\s*if\(!isset\(\$_POST\[\'\w+\'\]\)&&!isset\(\$_GET\[\'\w+\'\]\)\){exit\(\);}\s*(?:(\$\w+)\[\d+\]=\'\w+\';)+\s*if\(isset\(\$_POST\[\'\w+\'\]\)\){\$\w+=\$_POST\[\'\w+\'\];}else{\$\w+=\$_GET\[\'\w+\'\];}\s*\$\w+\s*=\s*array_flip\(str_split\(\'(\w+)\'\)\);\$\w+\s*=\s*str_split\(md5\(\$\w+\)\.md5\(\$\w+\)\);\$\w+\s*=\s*array\(\);\$\w+\s*=\s*\'\';\s*foreach\s*\(\$\w+\s*as\s*\$\w+\s*=>\s*\$\w+\)\s*{while\s*\(1\)\s*{if\(isset\(\$\w+\[\$\w+\[\$\w+\]\]\)\){\$\w+\[\$\w+\]\+\+;}else\{\$\w+\[\$\w+\[\$\w+\]\]=\'\';break;}}}\s*foreach\s*\(\$\w+\s*as\s*\$\w+\s*=>\s*\$\w+\)\s*{\$\w+\s*\.=\s*\$\w+\[\$\w+\];}\s*eval\(trim\(base64_decode\(base64_decode\(\$\w+\)\)\)\);~mis', 'id' => 'scriptWithPass', ],*/ /*************************************************************************************************************/ /* JS patterns */ /*************************************************************************************************************/ [ 'full' => '~(?:eval\()?String\.fromCharCode\(([\d,\s]+)\)+;~msi', 'fast' => '~String\.fromCharCode\([\d,\s]+\)+;~msi', 'id' => 'JS_fromCharCode', ], [ 'full' => '~(?:eval\()?unescape\(\'([^\']+)\'\)\);\s{0,50}eval\(unescape\(\'([^\']+)\'\)\s{0,50}\+\s{0,50}\'([^\']+)\'\s{0,50}\+\s{0,50}unescape\(\'[^\']+\'\)\);~msi', 'fast' => '~unescape\(\'([^\']+)\'\)\);\s{0,50}eval\(unescape\(\'([^\']+)\'\)\s{0,50}\+\s{0,50}\'([^\']+)\'\s{0,50}\+\s{0,50}unescape\(\'[^\']+\'\)\);~msi', 'id' => 'JS_unescapeContentFuncWrapped', ], /*************************************************************************************************************/ /* PYTHON patterns */ /*************************************************************************************************************/ [ 'full' => '~eval\(compile\(zlib\.decompress\(base64\.b64decode\([\'"]([^\'"]+)[\'"]\)\),[\'"]<string>[\'"],[\'"]exec[\'"]\)\)~msi', 'fast' => '~eval\(compile\(zlib\.decompress\(base64\.b64decode\([\'"]([^\'"]+)[\'"]\)\),[\'"]<string>[\'"],[\'"]exec[\'"]\)\)~msi', 'id' => 'PY_evalCompileStr', ], ]; private $full_source; private $prev_step; private $cur; private $obfuscated; private $max_level; private $max_time; private $run_time; private $fragments; private $grabed_signature_ids; public function __construct($text, $text2 = '', $max_level = 30, $max_time = 5) { $temp = str_replace(' ', '', $text); if ( (strpos($temp, '=file(__FILE__);eval(base64_decode(') //zeura hack && strpos($temp, '1)));__halt_compiler();')) || (strpos($temp, 'define(\'__LOCALFILE__\',__FILE__);') //obf_20200527_1 && strpos($temp, '__halt_compiler();')) || (strpos($text2, '0=__FILE__;') && strpos($text2, ';return;?>')) //lockit1 || (strpos($temp, '");$cvsu=$gg')) //TinkleShell || (strpos($text2, 'The latest version of Encipher can be obtained from') && strpos($text2, '\'@ev\'));')) //EvalFileContent || (strpos($text2, 'substr(file_get_contents(__FILE__),') && strpos($text2, '__halt_compiler();')) //EvalFileContentOffset ) { $this->text = $text2; $this->full_source = $text2; } else { $this->text = $text; $this->full_source = $text; } $this->max_level = $max_level; $this->max_time = $max_time; $this->fragments = []; $this->grabed_signature_ids = []; } public function getObfuscateType($str) { $str = preg_replace('~\s+~', ' ', $str); $l_UnicodeContent = Helpers::detect_utf_encoding($str); if ($l_UnicodeContent !== false) { if (function_exists('iconv')) { $str = iconv($l_UnicodeContent, "CP1251//IGNORE", $str); } } if(strpos($str, '# Malware list detected by AI-Bolit (http') !== false) { return ''; } if(strpos($str, '#Malware list detected by AI-Bolit(http') !== false) { return ''; } if(strpos($str, '<div class="header">Отчет сканера AI-Bolit</div>') !== false) { return ''; } if (strpos($str, '$default_action="FilesMan"') !== false) { return ''; } foreach ($this->signatures as $signature) { if (preg_match($signature['fast'], $str, $matches)) { if ($signature['id'] === 'echo') { if (preg_match('~\$_(POST|GET|REQUEST|COOKIE)~ms', $matches[0])) { return ''; } if (!isset($matches[5]) || $matches[5] === '') { return ''; } } if ($signature['id'] === 'eval') { if (strpos($matches[0], 'file_get_contents') !== false) { return ''; } if (preg_match('~\$_(POST|GET|REQUEST|COOKIE)~ms', $matches[0])) { return ''; } if (strpos($matches[0], '=> array(\'eval(base64_decode(\')') !== false) { return ''; } if (@$matches[6] == '\'";') { return ''; } } return $signature['id']; } } return ''; } private function getObfuscateFragment($str) { foreach ($this->signatures as $signature) { if (preg_match($signature['full'], $str, $matches)) { return $matches; } } return ''; } public function getFragments() { if (count($this->fragments) > 0) { return $this->fragments; } return false; } public function getGrabedSignatureIDs() { return array_keys($this->grabed_signature_ids); } private function grabFragments() { if ($this->cur == null) { $this->cur = $this->text; } $str = $this->cur; reset($this->signatures); while ($sign = current($this->signatures)) { $regex = $sign['full']; if (preg_match($regex, $str, $matches)) { $this->grabed_signature_ids[$sign['id']] = 1; $this->fragments[$matches[0]] = $matches[0]; $str = str_replace($matches[0], '', $str); } else { next($this->signatures); } } } private function deobfuscateFragments() { $prev_step = ''; if (count($this->fragments) > 0) { $i = 0; foreach ($this->fragments as $frag => $value) { if ($frag !== $value) { continue; } $type = $this->getObfuscateType($value); while ($type !== '' && $i < 50) { $match = $this->getObfuscateFragment($value); $find = $match[0] ?? ''; $func = 'deobfuscate' . ucfirst($type); $temp = @$this->$func($find, $match); $value = str_replace($find, $temp, $value); $this->fragments[$frag] = $value; $type = $this->getObfuscateType($value); if ($prev_step == hash('sha256', $value)) { break; } else { $prev_step = hash('sha256', $value); } $i++; } } } } public function deobfuscate($hangs = 0, $prev_step = '') { $deobfuscated = ''; $this->run_time = microtime(true); $this->cur = $this->text; $this->grabFragments(); $this->deobfuscateFragments(); $deobfuscated = $this->cur; if (count($this->fragments) > 0 ) { foreach ($this->fragments as $fragment => $text) { $deobfuscated = str_replace($fragment, $text, $deobfuscated); } } $deobfuscated = preg_replace_callback('~"[\w\\\\\s=;_<>&/\.-]+"~msi', function ($matches) { return preg_match('~\\\\x[2-7][0-9a-f]|\\\\1[0-2][0-9]|\\\\[3-9][0-9]|\\\\0[0-4][0-9]|\\\\1[0-7][0-9]~msi', $matches[0]) ? stripcslashes($matches[0]) : $matches[0]; }, $deobfuscated); $deobfuscated = preg_replace_callback('~echo\s*"((.*?[^\\\\])??((\\\\\\\\)+)?+)"~msi', function ($matches) { return preg_match('~\\\\x[2-7][0-9a-f]|\\\\1[0-2][0-9]|\\\\[3-9][0-9]|\\\\0[0-4][0-9]|\\\\1[0-7][0-9]~msi', $matches[0]) ? stripcslashes($matches[0]) : $matches[0]; }, $deobfuscated); preg_match_all('~(global\s*(\$[\w_]+);)\2\s*=\s*"[^"]+";~msi', $deobfuscated, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $deobfuscated = str_replace($match[0], '', $deobfuscated); $deobfuscated = str_replace($match[1], '', $deobfuscated); } preg_match_all('~\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\'](\w+)[\'"];~msi', $deobfuscated, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $deobfuscated = preg_replace_callback('~\$\{\$\{"GLOBALS"\}\[[\'"]' . $match[1] . '[\'"]\]\}~msi', function ($matches) use ($match) { return '$' . $match[2]; }, $deobfuscated); $deobfuscated = str_replace($match[0], '', $deobfuscated); } $deobfuscated = preg_replace_callback('~\$\{(\$\w+)\}~msi', function ($matches) use ($deobfuscated) { if (isset($matches[1])) { preg_match('~\\' . $matches[1] . '\s*=\s*["\'](\w+)[\'"];~msi', $deobfuscated, $matches2); if (isset($matches2[1])) { return '$' . $matches2[1]; } return $matches[0]; } }, $deobfuscated); if (strpos($deobfuscated, 'chr(')) { $deobfuscated = preg_replace_callback('~chr\((\d+)\)~msi', function ($matches) { return "'" . chr($matches[1]) . "'"; }, $deobfuscated); } if (substr_count(substr($deobfuscated, 0, 200), 'base64_decode(\'') > 3) { $deobfuscated = preg_replace_callback('~base64_decode\(\'([^\']+)\'\)~msi', function ($matches) { return "'" . base64_decode($matches[1]) . "'"; }, $deobfuscated); } if ($this->getObfuscateType($deobfuscated) !== '' && $hangs < 6) { $this->text = $deobfuscated; if ($prev_step == hash('sha256', $deobfuscated)) { return $deobfuscated; } $deobfuscated = $this->deobfuscate(++$hangs, hash('sha256', $deobfuscated)); } return $deobfuscated; } private function deobfuscateStrrotPregReplaceEval($str, $matches) { $find = $matches[0]; $res = str_rot13($matches[2]); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateObf_20200618_1($str) { preg_match('~(\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\]="[\w\\\\]+";(\$\w+="\w+";)?)+.+\$\{"[\\\\x47c2153fGLOBALS]+"\}\["[\w\\\\]+"\].+}+~msi', $str, $matches); $find = $matches[0]; $res = stripcslashes($str); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateBypass($str, $matches) { $find = $matches[0]; $bypass = stripcslashes($matches[2]); $eval = $matches[3] . $bypass . $matches[4]; $res = str_replace($find, $eval, $str); return $res; } private function deobfuscateObf_20200720_1($str, $matches) { $find = $matches[0]; $res = base64_decode($matches[2]); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateGoto($str) { preg_match('~goto \w+;\s*(\w+:\s*(\w+:\s*)?.*?goto\s*\w+;\s*(}\s*goto\s*\w+;)?(goto\s*\w+;)?\s*)+\w+:\s*[^;]+;(\s*goto\s*\w+;\s*\w+:\s*\w+:)?~msi', $str, $matches); $find = $matches[0]; $res = $str; $labels = []; preg_match_all('~((\w+):\s*((\w+):\s*)?(.*?goto\s*\w+;))(\s*goto\s*\w+;)?~msi', $str, $matches, PREG_SET_ORDER); foreach($matches as $item) { if (isset($item[4]) && $item[4] != '') { $labels[$item[4]] = $item[5]; } $labels[$item[2]] = $item[5]; $res = str_replace($item[1], '', $res); } while(preg_match('~goto\s*(\w+);~msi', $res, $matches) && isset($labels[$matches[1]])) { $res = str_replace($matches[0], PHP_EOL . $labels[$matches[1]] . PHP_EOL, $res); } $res = str_replace($find, $res, $str); return $res; } private function deobfuscateObf_20200527_1($str) { preg_match('~error_reporting\(0\);define\(\'\w+\',\s*__FILE__\);define\(\'\w+\',\s*fopen\(__FILE__,\s*\'r\'\)\);fseek\(\w+,\s*__COMPILER_HALT_OFFSET__\);((\$\w+="\\\\x[0-9a-f]+";)+(\$\w+="[^"]+";)+eval\("\?>"\.(\$\w+\()+"([^"]+)"\)+;)+(?:/\*\w+\*/)?__halt_compiler\(\);([\w#|>^%\[\.\]\\\\/=]+)~msi', $str, $matches); $find = $matches[0]; $res = $str; $encoded = $matches[6]; $res = preg_replace_callback('~(\$\w+="\\\\x[0-9a-f]+";)+(\$\w+="[^"]+";)+eval\("\?>"\.(\$\w+\()+"([^"]+)"\)+;~msi', function ($m) use ($str) { $layer1 = hex2bin(str_rot13(gzinflate(str_rot13(base64_decode($m[4]))))); if (preg_match('~(\$\w+="[^"]+";)+eval\(\$\w\.(\$\w+\()+"([^"]+)"\)+;~msi', $layer1, $matches)) { $temp = "?>" . hex2bin(str_rot13(gzinflate(str_rot13(base64_decode($matches[3]))))); while (preg_match('~(\$\w+)=strrev\(\1\);(\1=\s*str_replace\([\'"]([^"\']+)[\'"],"[^"]+",\1\);)+@?eval\("\?\>"\.\$\w+\(\1\)+;~msi', $temp, $matches)) { if (preg_match('~\\' . $matches[1] . '="([^"]+)";~msi', $layer1, $matches1)) { $code = $matches1[1]; $code = strrev($code); if (preg_match_all('~str_replace\([\'"]([^"\']+)[\'"],"([^"]+)"~msi', $temp, $m, PREG_SET_ORDER)) { foreach($m as $item) { $code = str_replace($item[1], $item[2], $code); } $temp = base64_decode($code); } } } return $temp; } }, $res); if (preg_match_all('~str_replace\([\'"]([^"\']+)[\'"],[\'"]([^"\']+)[\'"]~msi', $res, $m, PREG_SET_ORDER)) { foreach($m as $item) { $encoded = str_replace($item[1], $item[2], $encoded); } $res = base64_decode($encoded); } $res = str_replace($find, $res, $str); return $res; } private function deobfuscateObf_20200602_1($str) { preg_match('~(\$\w+)=strrev\("[base64_decode]+"\)\.str_replace\(\'(\w+)\',\'\',\'\w+\'\);\s*eval\(\1\((\$\w+)\)\);~msi', $str, $matches); $find = $matches[0]; $res = 'eval(base64_decode(' . $matches[3] . '));'; $res = str_replace($find, $res, $str); return $res; } private function deobfuscateObf_20200526_1($str, $matches) { $find = $matches[0]; $res = base64_decode($matches[2]); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateObf_20200522_1($str, $matches) { $find = $matches[0]; $res = strrev(gzinflate(base64_decode(substr($matches[9], (int)hex2bin($matches[3]), (int)hex2bin($matches[5]))))); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateObf_20200507_5($str, $matches) { $find = $matches[0]; $res = base64_decode($matches[1]); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateObf_20200507_4($str, $matches) { $find = $matches[0]; $ar = $matches[2]; $ar = explode(",\n", $ar); $array = []; foreach ($ar as $v) { $array[substr(trim($v),1,1)] = substr(trim($v), -2, 1); } unset($ar); $res = ''; $split = str_split($matches[5]); foreach ($split as $x) { foreach ($array as $main => $val) { if ($x == (string)$val) { $res .= $main; break; } } } $res = gzinflate(base64_decode($res)); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateObf_20200513_1($str, $matches) { $find = $matches[0]; $res = gzuncompress(base64_decode(strrev($matches[5]))); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateObf_20200507_3($str, $matches) { $find = $matches[0]; $decode = htmlspecialchars_decode(gzinflate(base64_decode($matches[2]))); $res = str_replace('$An0n_3xPloiTeR', "'" . $matches[3] . "'", $decode); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateObf_20200507_2($str, $matches) { $find = $matches[0]; $res = base64_decode($matches[4]); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateObf_20200507_1($str) { preg_match('~(\$\w+)=base64_decode\(\'([^\']+)\'\);\s*eval\(\1\);~mis', $str, $matches); $find = $matches[0]; $res = base64_decode($matches[2]); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateObf_20200504_1($str) { preg_match('~(\$\w+)\s*=\s*\("\?>"\.gzuncompress\(base64_decode\("([^"]+)"\)\)\);\s*@?eval\(\1\);~msi', $str, $matches); $find = $matches[0]; $res = ' ?>' . gzuncompress(base64_decode($matches[2])); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateSmartToolsShop($str, $matches) { $find = $matches[0]; $res = str_rot13(gzinflate(str_rot13(base64_decode($matches[2])))); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateObf_20200421_1($str) { preg_match('~(?:\$\w+\s*=\s*\'\w+\';)?\s*(\$\w+)\s*=\s*urldecode\(\'[%0-9a-f]+\'\);(\s*(\$\w+)\s*=(\s*\1\{\d+\}\.?)+;)+\s*(\$\w+)\s*=\s*"[^"]+"\.\3\("([^"]+)"\);\s*eval\(\5\);~msi', $str, $matches); $find = $matches[0]; $res = ' ?>' . base64_decode($matches[6]); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateObf_20200414_1($str, $matches) { $data = $matches[1]; $key = $matches[2]; $res = Helpers::obf20200414_1_decrypt($data, $key); return $res; } private function deobfuscateObf_20200402_2($str, $matches) { $find = $matches[0]; $code = $matches[15]; $code = preg_replace_callback('~\s*"\s*\.((?:min|max|round)?\(\s*\d+[\.\,\|\s\|+\|\-\|\*\|\/]([\d\s\.\,\+\-\*\/]+)?\))\s*\.\s*"~msi', function($m) { return substr(Helpers::calc($m[1]), 1, -1); }, $code); $res = gzinflate(base64_decode($code)) ?:base64_decode($code); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateObf_20200402_1($str, $matches) { $find = $matches[0]; $res = gzinflate(hex2bin(pack('H*',$matches[6]))); $res = preg_replace('~//.+$~m', '', $res); preg_match('~\$\w+\(\$\w+,\$\w+\("",\s*\$\w+\(\$\w+\(\$\w+\(\$\w+\(\$\w+,\s*"(\d+)"\)+,\$\w+\);.+function \w+\((\$\w+),\s*\$\w+,\s(\$\w+)\)\s{\3\s=\s\3\s\.\s\3;.+return \2;}~msi', $res, $matches); $res = gzinflate(hex2bin(pack('H*',$matches[1]))); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateOELove($str) { preg_match('~<\?php\s*defined\(\'[^\']+\'\)\s*\|\|\s*define\(\'[^\']+\',__FILE__\);(global\s*\$[^;]+;)+\s*(if\(!function_exists\(\'([^\']+)\'\)\){\s*function\s*[^\)]+\(\$[^,]+,\$[^=]+=\'\'\){\s*if\(empty\(\$[^\)]+\)\)\s*return\s*\'\';\s*\$[^=]+=base64_decode\(\$[^\)]+\);\s*if\(\$[^=]+==\'\'\)\s*return\s*\~\$[^;]+;\s*if\(\$[^=]+==\'-1\'\)\s*@[^\(]+\(\);\s*\$[^=]+=\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\(\$[^\)]+\);\s*\$[^=]+=\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\(\$[^,]+,\$[^,]+,\$[^\)]+\);\s*return\s*\$[^^]+\^\$[^;]+;\s*}}\s*)+(\$[^\[]+\["[^"]+"]=[^\(]+\(\'[^\']+\',\'[^\']*\'\);\s*)+(\$[^\[]+\[\'[^\']+\'\]=\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\([^\)]*\)+;\s*)+return\(eval\(\$[^\[]+\[\'[^\']+\'\]\)+;\s*\?>\s*#!/usr/bin/php\s*-q\s*((\s*[^\s]+)+)~msi', $str, $matches); $find = $matches[0]; $res = $str; $code = $matches[6]; $res = iconv('UTF-8', 'ASCII//IGNORE', $res); preg_match('~\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\(\'([\da-f]{32})\'\);~msi', $res, $hash); $hash = strrev($hash[1]); preg_match_all('~\$GLOBALS\[\'[^\']+\'\]\[\'[^\']+\'\]\(\'([\d]{10})\'\)~msi', $res, $substr_offsets); $substr_offsets = $substr_offsets[1]; $substr_offsets = array_map('strrev', $substr_offsets); $substr_offsets = array_map('intval', $substr_offsets); preg_match_all('~if\s*\(\!function_exists\(\'([^\']+)\'\)~msi', $res, $decoders); $decoders = $decoders[1]; $var_array = []; preg_match_all('~\$([^\[]{3,20})\["([^"]+)"\]=(?:' . $decoders[0] . '|' . $decoders[1] . ')\(\'([^\']*)\',\'([^\']*)\'\);~msi', $res, $vars, PREG_SET_ORDER); $var_name = $vars[0][1]; foreach ($vars as $var) { $var_array[$var[2]] = Helpers::OELoveDecoder($var[3], $var[4]); $res = str_replace($var[0], '', $res); } $layer1 = substr($code, 0, $substr_offsets[3] + 96); $layer1_dec = iconv('UTF-8', 'ASCII//IGNORE', gzuncompress(base64_decode($layer1))); $code = str_replace($layer1, $layer1_dec, $code); preg_match_all('~\$([^\[]{3,20})\["([^"]+)"\]=(?:' . $decoders[0] . '|' . $decoders[1] . ')\(\'([^\']*)\',\'([^\']*)\'\);~msi', $code, $vars, PREG_SET_ORDER); foreach ($vars as $var) { $var_array[$var[2]] = Helpers::OELoveDecoder($var[3], $var[4]); $code = str_replace($var[0], '', $code); } $layer2_start = strpos($code, '?>') + 2; $layer2 = substr($code, $layer2_start + $substr_offsets[2]); $layer2_dec = iconv('UTF-8', 'ASCII//IGNORE', gzuncompress(base64_decode(str_rot13($layer2)))); $res = $layer2_dec; foreach($var_array as $k => $v) { $res = str_replace('$GLOBALS[\'' . $var_name . '\'][\'' . $k . '\'](', $v . '(', $res); $res = str_replace('$GLOBALS[\'' . $var_name . '\'][\'' . $k . '\']', '\'' . $v . '\'', $res); } $res = preg_replace_callback('~(?:' . $decoders[0] . '|' . $decoders[1] . ')\(\'([^\']*)\',\'([^\']*)\'\)~msi', function ($m) { return '\'' . Helpers::OELoveDecoder($m[1], $m[2]) . '\''; }, $res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateEvalConcatVars($str) { preg_match('~((\$\w+="";\$\w+\s*\.=\s*"[^;]+;\s*)+)(?:="";)?(eval\((\s*(\$\w+)\s*\.)+\s*"([^"]+)(?:"\);)+)~msi', $str, $matches); $find = $matches[0]; $res = $str; $parts = []; preg_match_all('~(\$\w+)="";\1\s*\.=\s*"([^"]+)"~msi', $matches[1], $matches1, PREG_SET_ORDER); foreach($matches1 as $match) { $parts[$match[1]] = stripcslashes(stripcslashes($match[2])); } $res = stripcslashes(stripcslashes($matches[3])); foreach($parts as $k => $v) { $res = str_replace($k, "'" . $v . "'", $res); } $res = preg_replace_callback('/[\'"]\s*?\.+\s*?[\'"]/smi', function($m) { return ''; }, $res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateEvalAssignedVars($str, $matches) { $res = $str; $vars = [$matches[1] => $matches[2]]; $res = preg_replace_callback('~(\$\w{1,3000})=(base64_decode|gzinflate|convert_uudecode|str_rot13)\((\$\w{1,3000})\);~msi', function ($match) use (&$vars) { $func = $match[2]; if (Helpers::isSafeFunc($func) && isset($vars[$match[3]])) { $vars[$match[1]] = @$func($vars[$match[3]]); return ''; } return $match[1] . '=' . $match[2] . '(\'' . $match[3] . '\';'; }, $res); $res = $vars[$matches[4]] ?? Helpers::replaceVarsFromArray($vars, $res); return $res; } private function deobfuscateVarFuncsEval($str) { preg_match('~((\$\w+)\s*=\s*)(base64_decode\s*\(+|gzinflate\s*\(+|strrev\s*\(+|str_rot13\s*\(+|gzuncompress\s*\(+|convert_uudecode\s*\(+|urldecode\s*\(+|rawurldecode\s*\(+|htmlspecialchars_decode\s*\(+)+"([^"]+)"\)+(;\s*@?eval\(([\'"?>.\s]+)?\2\);)~', $str, $matches); $find = $matches[0]; $res = $str; $res = str_replace($matches[5], ');', $res); $res = str_replace($matches[1], 'eval(', $res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateComments($str, $matches) { $find = $matches[0]; $res = preg_replace('~/\*\w+\*/~msi', '', $str); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateStrrevVarEval($str) { preg_match('~(\$\w+=strrev\("[^"]+"\);)+eval\((\$\w+\()+"([^"]+)"\)+;~mis', $str, $matches); $find = $matches[0]; $res = gzinflate(base64_decode($matches[3])); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateAanKFM($str, $matches) { $find = $matches[0]; $res = $str; $key = Helpers::aanKFMDigitsDecode($matches[3]); $res = Helpers::Xtea_decrypt($matches[4], $key); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateEvalChars($str, $matches) { $find = $matches[0]; $res = $str; while(preg_match_all('~(?:@eval((?:\(\$[0O]+\[[\'"]\w+[\'"]\])+)\("([^"]+)"\)+;)|("\)\?\$[O0]+)~msi', $res, $matches, PREG_SET_ORDER)) { $match = $matches[0]; if (isset($matches[1])) $match = $matches[1]; $count = ($match[1] !== '') ? substr_count($match[1], '(') : 0; if ($count == 2) { $res = gzinflate(base64_decode($match[2])); } else if ($count == 3) { $res = gzinflate(base64_decode(str_rot13($match[2]))); } if (isset($match[3]) && ($match[3] !== '')) { $res = preg_replace_callback('~(\$[0O]+\["\w+"\]\()+"([^"]+)"\)+;?~msi', function($m) { return gzinflate(base64_decode(str_rot13($m[2]))); }, $res); } } $res = str_replace($find, $res, $str); return $res; } private function deobfuscateGlobalsBase64($str) { preg_match('~<\?php\s+((\$GLOBALS\[\s*[\'"]\w+[\'"]\s*\])\s*=\s*base64_decode\("([^"]*)"\);)+\s*\?>(<\?php\s.+\2.+exit;\s}\sfunction\s\w+\(\)\s{\sreturn\sarray\(\s\'favicon\'\s=>\s\'[^\']+\',\s+\'sprites\'\s=>\s\'[^\']+\',\s\);\s})~msi', $str, $matches); $find = $matches[0]; $vars = []; preg_match_all('~(\$GLOBALS\[\s*[\'"]\w+[\'"]\s*\])\s*=\s*base64_decode\("([^"]*)"\);~msi', $matches[0], $matches1, PREG_SET_ORDER); foreach($matches1 as $match) { $vars[$match[1]] = base64_decode($match[2]); } $code = $matches[4]; foreach ($vars as $var => $value) { $code = str_replace($var . '(', $value . '(', $code); $code = str_replace($var, "'" . $value . "'", $code); } $res = $code; $res = str_replace($find, $res, $str); return $res; } private function deobfuscateEvalReturn($str, $matches) { $find = $matches[0]; $res = stripcslashes(base64_decode($matches[2])); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateQibosoft($str) { preg_match('~\$\w+=__FILE__;\$\w+=fopen\(\$\w+,\'rb\'\);fread\(\$\w+,(\d+)\);\$\w+=explode\("\\\\t",base64_decode\(fread\(\$\w+,(\d+)\)+;\$\w+=\$\w+\[[\d+]\];[\$l1=\d{}\.;\(\)\[\]]+eval\(\$\w+\(\'([^\']+)\'\)+;\s*return\s*;\?>[\w=\+]+~msi', $str, $matches); $find = $matches[0]; $res = $str; $hangs = 15; $obfPHP = explode('?>', $str); $obfPHP = $obfPHP[1]; preg_match('~eval\(\$\w+\(\'([^\']+)\'\)+;~msi', $res, $temp); $res = str_replace($temp[0], base64_decode($temp[1]), $res); $offset = $matches[2]; while (preg_match('~\$\w+\(\$\w+,(\d+)\);\s*eval\(\$\w+\(\$\w+\(\$\w+,(\d+)\)+;~msi', $res, $temp2) && $hangs--) { $offset += $temp2[1]; $decode_loop = base64_decode(substr($obfPHP, $offset, $temp2[2])); $offset += $temp2[2]; if (preg_match('~eval\(\$\w+\(\'([^\']+)\'\)+;~msi', $decode_loop, $temp)) { $res = str_replace($temp2[0], base64_decode($temp[1]), $res); } else { $res = $decode_loop; } } $res = str_replace($find, $res, $str); return $res; } private function deobfuscateUd64($str) { preg_match('~(\$ud64_c[o0]m="[\\\\0-9a-z\."]+;)+\$\w+=(\$ud64_c[o0]m\()+"([^"]+)"\)+;@eval\(\$ud64_c[o0]m\(\'[^\']+\'\)+;~msi', $str, $matches); $find = $matches[0]; $res = gzinflate(convert_uudecode(base64_decode(gzinflate(base64_decode(str_rot13($matches[3])))))); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateCustom1($str) { preg_match('~\$\w+="([^"]+)";\$l+=0;\$l+=\'base64_decode\';\$l+=0;eval\(.+?;eval\(\$l+\);return;~msi', $str, $matches); $find = $matches[0]; $res = Helpers::someDecoder3($matches[1]); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateCustom2($str, $matches) { $find = $matches[0]; $key = $matches[2]; $var = $matches[3]; preg_match_all('~\\' . $var . '\[\d+\]\s*=\s*"([^"]+)";~msi', $str, $matches); $res = base64_decode(Helpers::someDecoder4($matches[1], $key)); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateLockIt2($str, $matches) { $find = $matches[0]; $res = $matches[1]; if(strpos($str, '$_X="') !== false && strpos($res, '\\x') !== false) { $res = stripcslashes($res); } if (preg_match_all('~\$[_\w]+\.=[\'"]([\w\+\/=]+)[\'"];~', $matches[0], $concatVars)) { foreach ($concatVars[1] as $concatVar) { $res .= $concatVar; } } $res = base64_decode($res); $res = strtr($res, $matches[2], $matches[3]); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateAnaski($str, $matches) { $find = $matches[0]; $res = gzinflate(str_rot13(base64_decode($matches[2]))); $res = strtr($res, $matches[5], $matches[6]); return $res; } private function deobfuscateFuncs($str, $matches) { $find = $matches[0]; $funcs = []; $payload = $matches[7]; $var = $matches[6]; $res = $str; $res = preg_replace_callback('~function\s*(\w+)\((\$\w+)\){\s*return\s*(\w+)\(\2(,\d+)?\);}\s*~msi', function($matches2) use (&$funcs){ $funcs[$matches2[1]] = $matches2[3]; return ''; }, $res); foreach ($funcs as $k => $v) { $res = str_replace($k . '(', $v . '(', $res); } $res = str_replace($var . '="' . $payload . '";', '', $res); $res = str_replace($var, '"' . $payload . '"', $res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateSubstr($str) { preg_match('~\$\w+=0;(\$GLOBALS\[\'\w+\'\])\s*=\s*\'([^\']+)\';\s*(\$\w+)=pack\(\'H\*\',substr\(\1,\s*([-\d]+)\)\);if\s*\(!function_exists\(\'(\w+)\'\)\){function\s*\5\(\$\w+,\s*\$\w+\){\$\w+=\1;\s*\$d=pack\(\'H\*\',substr\(\1,\s*\4\)\);\s*return\s*\$\w+\(substr\(\$\w+,\s*\$\w+,\s*\$\w+\)\);}};eval\(\3\(\'([^\']+)\'\)\);~msi', $str, $matches); $find = $matches[0]; $substr_array = $matches[2]; $offset = intval($matches[4]); $func = $matches[5]; $eval = pack('H*',substr($substr_array, $offset)); $res = Helpers::isSafeFunc($eval) ? @$eval($matches[6]) : $matches[6]; $res = preg_replace_callback('~' . $func . '\(([-\d]+),\s*([-\d]+)\)~mis', function ($matches) use ($eval, $substr_array) { $res = Helpers::isSafeFunc($eval) ? @$eval(substr($substr_array, $matches[1], $matches[2])) : $matches[0]; return '\'' . $res . '\''; }, $res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscatePHPJiaMi($str, $matches) { $find = $matches[0]; $bin = bin2hex($str); preg_match('~6257513127293b24[a-z0-9]{2,30}3d24[a-z0-9]{2,30}2827([a-z0-9]{2,30})27293b~', $bin, $hash); preg_match('~2827([a-z0-9]{2})27293a24~', $bin, $rand); $hash = hex2bin($hash[1]); $rand = hex2bin($rand[1]); $res = Helpers::PHPJiaMi_decoder(substr($matches[3], 0, -45), $hash, $rand); $res = str_rot13(@gzuncompress($res) ? @gzuncompress($res) : $res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateEvalIReplace($str, $matches) { $find = $matches[0]; $res = $str; $res = base64_decode($matches[3]); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateErrorHandler($str) { preg_match('~(\$\w+)="[^"]+";\s*(\$\w+)=str_ireplace\("[^"]+","",\1\);(\$\w+)\s*=\s*"([^"]+)";\s*function\s*(\w+)\((\$\w+,?)+\){\s*(\$\w+)=\s*create_function\(\'\',\$\w+\);\s*array_map\(\7,array\(\'\'\)+;\s*}\s*set_error_handler\(\'\5\'\);(\$\w+)=\2\(\3\);user_error\(\8,E_USER_ERROR\);\s*if\s*.+?}~msi', $str, $matches); $find = $matches[0]; $res = $str; $res = base64_decode($matches[4]); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateStrtoupper($str, $matches) { $find = $matches[0]; $res = $str; $alph = $matches[2]; $var = $matches[1]; $res = str_replace("{$var}=\"{$alph}\";", '', $res); for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) { $res = str_replace($var . '[' . $i . '].', "'" . $alph[$i] . "'", $res); $res = str_replace($var . '[' . $i . ']', "'" . $alph[$i] . "'", $res); } $res = str_replace("''", '', $res); $res = str_replace("' . '", '', $res); $res = str_replace("' '", '', $res); preg_match('~(\$\w+)\s*=\s*strtoupper\s*\(\s*\'(\w+)\'\s*\)\s*;~msi', $res, $matches); $matches[2] = strtoupper($matches[2]); $res = str_replace($matches[0], '', $res); $res = preg_replace_callback('~\${\s*\\'. $matches[1] .'\s*}~msi', function ($params) use ($matches) { return '$' . $matches[2]; }, $res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateEval2($str) { preg_match('~(\$\w+)\s*=\s*"((?:[^"]|(?<=\\\\)")*)";(\$\w+)\s*=\s*(\1\[\d+\]\.?)+;(\$\w+)\s*=\s*[^;]+;(\$\w+)\s*=\s*"[^"]+";\$\w+\s*=\s*\5\."([^"]+)"\.\6;\3\((\1\[\d+\]\.?)+,\s*\$\w+\s*,"\d+"\);~smi', $str, $matches); $res = $str; $find = $matches[0]; $alph = $matches[2]; $var = $matches[1]; for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) { $res = str_replace($var . '[' . $i . '].', "'" . $alph[$i] . "'", $res); $res = str_replace($var . '[' . $i . ']', "'" . $alph[$i] . "'", $res); } $res = str_replace("''", '', $res); $res = gzinflate(base64_decode(substr($matches[7], 1, -1))); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateEvalEregReplace($str, $matches) { $find = $matches[0]; $res = base64_decode($matches[2]); preg_match_all('~(\$\w+)\s*=\s*ereg_replace\("([^"]+)","([^"]+)",\1\);~smi', $str, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $res = preg_replace('/' . $match[2] . '/', $match[3], $res); } $res = base64_decode($res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateStrreplace($str, $matches) { $find = $matches[0]; $res = $str; $str_replace = ''; $base64_decode = ''; $layer = ''; preg_match_all('~(\$\w+)\s*=\s*[\'"](?|([^\']+)\'|([^"]+)");~msi', $str, $matches, PREG_SET_ORDER); foreach ($matches as $i => $match) { $vars[$match[1]] = $match[2]; } $res = preg_replace_callback('~(\$\w+)\s*=\s*str_replace\([\'"](\w+)[\'"],\s*[\'"]{2},\s*[\'"](\w+)[\'"]\)~msi', function ($matches) use (&$vars, &$str_replace) { $vars[$matches[1]] = str_replace($matches[2], "", $matches[3]); if ($vars[$matches[1]] == 'str_replace') { $str_replace = $matches[1]; } $tmp = $matches[1] . ' = "' . $vars[$matches[1]] . '"'; return $tmp; }, $res); if ($str_replace !== '') { $res = preg_replace_callback('~(\$\w+)\s*=\s*\\' . $str_replace . '\("(\w+)",\s*"",\s*"(\w+)"\)~msi', function ($matches) use (&$vars, &$base64_decode) { $vars[$matches[1]] = str_replace($matches[2], "", $matches[3]); if ($vars[$matches[1]] == 'base64_decode') { $base64_decode = $matches[1]; } $tmp = $matches[1] . ' = "' . $vars[$matches[1]] . '"'; return $tmp; }, $res); $res = preg_replace_callback('~\\' . $base64_decode . '\(\\' . $str_replace . '\("(\w+)",\s*"",\s*([\$\w\.]+)\)~msi', function ($matches) use (&$vars, &$layer) { $tmp = explode('.', $matches[2]); foreach ($tmp as &$item) { $item = $vars[$item]; } $tmp = implode('', $tmp); $layer = base64_decode(str_replace($matches[1], "", $tmp)); return $matches[0]; }, $res); } if ($base64_decode !== '') { $regex = '~\\' . $base64_decode . '\(\\' . $str_replace . '\("(\w+)",\s*"",\s*([\$\w\.]+)\)~msi'; } else { $regex = '~str_replace\([\'"]([^\'"]+)[\'"],\s*[\'"]{2},\s*([\$\w\.]+)\);\s?(\$\w+)=\$\w+\([\'"]{2},\$\w+\);\3\(\);~msi'; } $res = preg_replace_callback($regex, function ($matches) use (&$vars, &$layer, $base64_decode) { $tmp = explode('.', $matches[2]); foreach ($tmp as &$item) { $item = $vars[$item]; } $tmp = implode('', $tmp); $layer = str_replace($matches[1], "", $tmp); if ($base64_decode !== '') { $layer = base64_decode($layer); } return $matches[0]; }, $res); $res = $layer; $res = str_replace($find, $res, $str); return $res; } private function deobfuscateSeolyzer($str, $matches) { $find = $matches[0]; $res = $str; $vars = []; $base64_decode = ''; $layer = ''; $gzuncompress = ''; preg_match_all('~(\$\w+)\s*=\s*\'([^\']+)\'\s*;~msi', $str, $matches, PREG_SET_ORDER); foreach ($matches as $i => $match) { $vars[$match[1]] = $match[2]; if ($match[2] == 'base64_decode') { $base64_decode = $match[1]; } } $res = preg_replace_callback('~\s*=\s*\\' . $base64_decode . '\((\$\w+)\)~msi', function ($matches) use (&$vars, &$gzuncompress, &$layer) { if (isset($vars[$matches[1]])) { $tmp = base64_decode($vars[$matches[1]]); if ($tmp == 'gzuncompress') { $gzuncompress = $matches[1]; } $vars[$matches[1]] = $tmp; $tmp = " = '{$tmp}'"; } else { $tmp = $matches[1]; } return $tmp; }, $res); if ($gzuncompress !== '') { $res = preg_replace_callback('~\\' . $gzuncompress . '\(\s*\\' . $base64_decode . '\((\$\w+)\)~msi', function ($matches) use (&$vars, $gzuncompress, &$layer) { if (isset($vars[$matches[1]])) { $tmp = gzuncompress(base64_decode($vars[$matches[1]])); $layer = $matches[1]; $vars[$matches[1]] = $tmp; $tmp = "'{$tmp}'"; } else { $tmp = $matches[1]; } return $tmp; }, $res); $res = $vars[$layer]; } else if (preg_match('~\$\w+\(\s*\\' . $base64_decode . '\((\$\w+)\)~msi', $res)) { $res = preg_replace_callback('~\$\w+\(\s*\\' . $base64_decode . '\((\$\w+)\)~msi', function ($matches) use (&$vars, &$layer) { if (isset($vars[$matches[1]])) { $tmp = base64_decode($vars[$matches[1]]); $layer = $matches[1]; $vars[$matches[1]] = $tmp; $tmp = "'{$tmp}'"; } else { $tmp = $matches[1]; } return $tmp; }, $res); $res = $vars[$layer]; } $res = str_replace($find, $res, $str); return $res; } private function deobfuscateCreateFunc($str, $matches) { $result = $str; $funcs = str_replace($matches[4], '', $matches[3]); if (Helpers::concatStr($matches[1]) === 'create_function' && Helpers::concatStr($matches[2]) === 'eval') { $funcs = explode('(', $funcs); $iMax = count($funcs) - 2; $final_code = $matches[5]; for ($i = $iMax; $i >= 0; $i--) { if ($funcs[$i][0] !== '\'' && $funcs[$i][0] !== '"') { $funcs[$i] = '\'' . $funcs[$i]; } $func = Helpers::concatStr($funcs[$i] . '"'); if (Helpers::isSafeFunc($func)) { $final_code = @$func($final_code); } } $result = $final_code; } $result = ' ?>' . $result; return $result; } private function deobfuscateCreateFuncConcat($str, $matches) { $find = $matches[0]; $res = $str; $vars = []; $res = preg_replace_callback('~(?|(\$\w+)\s*=\s*(([base64_decode\'\.\s]+)|([eval\'\.\s]+)|([create_function\'\.\s]+)|([stripslashes\'\.\s]+)|([gzinflate\'\.\s]+)|([strrev\'\.\s]+)|([str_rot13\'\.\s]+)|([gzuncompress\'\.\s]+)|([urldecode\'\.\s]+)([rawurldecode\'\.\s]+));)~', function($matches) use (&$vars) { $tmp = str_replace("' . '", '', $matches[0]); $tmp = str_replace("'.'", '', $tmp); $value = str_replace("' . '", '', $matches[2]); $value = str_replace("'.'", '', $value); $vars[$matches[1]] = substr($value, 1, -1); return $tmp; }, $res); foreach($vars as $key => $var) { $res = str_replace($key, $var, $res); $res = str_replace($var . " = '" . $var . "';", '', $res); $res = str_replace($var . ' = "";', '', $res); } $res = str_replace($find, $res, $str); return $res; } private function deobfuscateEvalWrapVar($str, $matches) { $find = $matches[0]; $res = $str; $vars = []; $res = preg_replace_callback('~(?|(\$\w+)\s*=\s*(([base64_decode"\'\.\s]+)|([eval"\'\.\s]+)|([create_function"\'\.\s]+)|([stripslashes"\'\.\s]+)|([gzinflate"\'\.\s]+)|([strrev"\'\.\s]+)|([str_rot13"\'\.\s]+)|([gzuncompress"\'\.\s]+)|([urldecode"\'\.\s]+)([rawurldecode"\'\.\s]+));)~msi', function($matches) use (&$vars) { $tmp = str_replace(["' . '", "\" . \""], '', $matches[0]); $tmp = str_replace(["'.'", "\".\""], '', $tmp); $value = str_replace(["' . '", "\" . \""], '', $matches[2]); $value = str_replace(["'.'", "\".\""], '', $value); $vars[$matches[1]] = substr($value, 1, -1); return $tmp; }, $res); $temp = substr($res, strpos($res, '@eval')); $temp1 = $temp; foreach($vars as $key => $var) { $temp = str_replace($key, $var, $temp); } $res = str_replace($temp1, $temp, $res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateForEach($str, $matches) { $find = $matches[0]; $alph = $matches[3]; $vars = []; $res = $str; preg_replace('~\s*/\*\w+\*/\s*~msi', '', $res); $res = preg_replace_callback('~foreach\(\[([\d,]+)\]\s*as\s*\$\w+\)\s*\{\s*(\$\w+)\s*\.=\s*\$\w+\[\$\w+\];\s*\}~mis', function($matches) use ($alph, &$vars) { $chars = explode(',', $matches[1]); $value = ''; foreach ($chars as $char) { $value .= $alph[$char]; } $vars[$matches[2]] = $value; return "{$matches[2]} = '{$value}';"; }, $res); foreach($vars as $key => $var) { $res = str_replace($key, $var, $res); $res = str_replace($var . " = '" . $var . "';", '', $res); $res = str_replace($var . ' = "";', '', $res); } preg_match('~(\$\w+)\s*=\s*strrev\([create_function\.\']+\);~ms', $res, $matches); $res = str_replace($matches[0], '', $res); $res = str_replace($matches[1], 'create_function', $res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateSubst2($str) { preg_match('~(\$\w+)="([^"])+(.{0,70}\1.{0,400})+;\s*}~msi', $str, $matches); $find = $matches[0]; $res = $str; preg_match('~(\$\w+)="(.+?)";~msi', $str, $matches); $alph = stripcslashes($matches[2]); $var = $matches[1]; for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) { $res = str_replace($var . '[' . $i . '].', "'" . $alph[$i] . "'", $res); $res = str_replace($var . '[' . $i . ']', "'" . $alph[$i] . "'", $res); } $res = str_replace("''", '', $res); preg_match_all('~(\$GLOBALS\[\'\w{1,40}\'\])\s*=\s*\'(([^\'\\\\]++|\\\\.)*)\';~msi', $res, $matches, PREG_SET_ORDER); foreach ($matches as $index => $var) { $res = str_replace($var[1], $var[2], $res); $res = str_replace($var[2] . " = '" . $var[2] . "';", '', $res); } $res = str_replace($find, $res, $str); return $res; } private function deobfuscateAssert($str, $matches) { $find = $matches[0]; $res = base64_decode($matches[3]); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateUrlDecode2($str, $matches) { $find = $matches[0]; $res = $str; if (isset($matches[10])) { $res = base64_decode($matches[10]); } if (preg_match('~\$\w+=["\']([^\'"]+)[\'"];\s*eval\(\'\?>\'\.[\$\w\(\)\*,\s]+;~msi', $res, $match)) { $res = base64_decode(strtr(substr($match[1], 52*2), substr($match[1], 52, 52), substr($match[1], 0, 52))); } if (preg_match('~function\s*(\w+)\(\$\w+\)[\w{\$=\s*();<+\[\]\-]+\}\s+return[\$\s\w;]+}eval\(\1\("([\w\/+=]+)?"\)\);~', $res, $matchEval)) { $res = gzinflate(base64_decode($matchEval[2])); for ($i=0; $i < strlen($res); $i++) { $res[$i] = chr(ord($res[$i])-1); } $res = str_replace($find, $res, $str); return $res; } if (preg_match('~header\(\'[^\']+\'\);(?:\$\w+=\${[^}]+}\[[^\]]+\]\(\'.*?\'?;}?\'\);)+\${[^}]+}\[[^\]]+\]\(\);~msi', $matches[6], $match)) { $res = stripcslashes($match[0]); $dictionaryName = $matches[1]; $dictionaryValue = urldecode($matches[3]); $vars = Helpers::getVarsFromDictionary($dictionaryValue, $str); $res = Helpers::replaceVarsFromArray($vars, $res); $res = Helpers::replaceCreateFunction($res); preg_match('~\$([0_O]+)\s*=\s*function\s*\((\$\w+)\)\s*\{\s*\$[O_0]+\s*=\s*substr\s*\(\2,(\d+),(\d+)\);\s*\$[O_0]+\s*=\s*substr\s*\(\2,([\d-]+)\);\s*\$[O_0]+\s*=\s*substr\s*\(\2,(\d+),strlen\s*\(\2\)-(\d+)\);\s*return\s*gzinflate\s*\(base64_decode\s*\(\$[O_0]+\s*\.\s*\$[O_0]+\s*\.\s*\$[O_0]+\)+;~msi', $res, $m); $res = preg_replace_callback('~\$\{"GLOBALS"}\["' . $m[1] . '"\]\s*\(\'([^\']+)\'\)~msi', function ($calls) use ($m) { $temp1 = substr($calls[1], $m[3], $m[4]); $temp2 = substr($calls[1], $m[5]); $temp3 = substr($calls[1], $m[6],strlen($calls[1]) - $m[7]); return "'" . gzinflate(base64_decode($temp1 . $temp3 . $temp2)) . "'"; }, $res); return $res; } $res = str_replace($find, ' ?>' . $res, $str); return $res; } private function deobfuscatePHPMyLicense($str) { preg_match('~\$\w+\s*=\s*base64_decode\s*\([\'"][^\'"]+[\'"]\);\s*if\s*\(!function_exists\s*\("rotencode"\)\).{0,1000}eval\s*\(\$\w+\s*\(base64_decode\s*\([\'"]([^"\']+)[\'"]\)+;~msi', $str, $matches); $find = $matches[0]; $res = $str; $hang = 10; while(preg_match('~eval\s*\(\$\w+\s*\(base64_decode\s*\([\'"]([^"\']+)[\'"]\)+;~msi', $res, $matches) && $hang--) { $res = gzinflate(base64_decode($matches[1])); } $res = str_replace($find, $res, $str); return $res; } private function deobfuscateEdoced_46esab($str) { preg_match('~(\$\w+)=[\'"]([^"\']+)[\'"];(\$\w+)=strrev\(\'edoced_46esab\'\);eval\(\3\([\'"]([^\'"]+)[\'"]\)+;~msi', $str, $matches); $find = $matches[0]; $res = ''; $decoder = base64_decode($matches[4]); preg_match('~(\$\w+)=base64_decode\(\$\w+\);\1=strtr\(\1,[\'"]([^\'"]+)[\'"],[\'"]([^\'"]+)[\'"]\);~msi', $decoder, $matches2); $res = base64_decode($matches[2]); $res = strtr($res, $matches2[2], $matches2[3]); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateEdoced_46esab_etalfnizg($str, $matches) { return gzinflate(base64_decode($matches[3])); } private function deobfuscateEvalVarVar($str) { preg_match('~\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\'](\w+)[\'"];\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\']\2[\'"];(\${\$\{"GLOBALS"\}\[[\'"]\3[\'"]\]})=[\'"]([^\'"]+)[\'"];eval.{10,50}?(\$\{\$\{"GLOBALS"\}\[[\'"]\1[\'"]\]\})\)+;~msi', $str, $matches); $find = $matches[0]; $res = str_replace($matches[4], '$' . $matches[2], $str); $res = str_replace($matches[6], '$' . $matches[2], $res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateEscapes($str, $matches) { $find = $matches[0]; $res = stripcslashes($str); $res = str_replace($find, $res, $str); preg_match_all('~\$\{"GLOBALS"\}\[[\'"](\w+)[\'"]\]=["\'](\w+)[\'"];~msi', $res, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $res = preg_replace_callback('~\$\{\$\{"GLOBALS"\}\[[\'"]' . $match[1] . '[\'"]\]\}~msi', function ($matches) use ($match) { return '$' . $match[2]; }, $res); $res = str_replace($match[0], '', $res); } return $res; } private function deobfuscateparenthesesString($str) { $hangs = 5; $res = $str; $find = ''; while (preg_match('~for\((\$\w+)=\d+,(\$\w+)=\'([^\$]+)\',(\$\w+)=\'\';@?ord\(\2\[\1\]\);\1\+\+\)\{if\(\1<\d+\)\{(\$\w+)\[\2\[\1\]\]=\1;\}else\{\$\w+\.\=@?chr\(\(\5\[\2\[\1\]\]<<\d+\)\+\(\5\[\2\[\+\+\1\]\]\)\);\}\}\s*.{0,500}eval\(\4\);(if\(isset\(\$_(GET|REQUEST|POST|COOKIE)\[[\'"][^\'"]+[\'"]\]\)\)\{[^}]+;\})?~msi', $res, $matches) && $hangs--) { if($hangs == 4) { $find = $matches[0]; } $res = ''; $temp = []; $matches[3] = stripcslashes($matches[3]); for($i=0, $iMax = strlen($matches[3]); $i < $iMax; $i++) { if($i < 16) $temp[$matches[3][$i]] = $i; else $res .= @chr(($temp[$matches[3][$i]]<<4) + ($temp[$matches[3][++$i]])); } } if(!isset($matches[6])) { //$xor_key = 'SjJVkE6rkRYj'; $xor_key = $res^"\n//adjust sy"; //\n//adjust system variables"; $res = $res ^ substr(str_repeat($xor_key, (strlen($res) / strlen($xor_key)) + 1), 0, strlen($res)); } if(substr($res,0,12)=="\n//adjust sy") { $res = str_replace($find, $res, $str); return $res; } else return $str; } private function deobfuscateEvalInject($str, $matches) { $res = $str; $find = $matches[0]; $alph = $matches[2]; for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) { $res = str_replace($matches[1] . '[' . $i . '].', "'" . $alph[$i] . "'", $res); $res = str_replace($matches[1] . '[' . $i . ']', "'" . $alph[$i] . "'", $res); } $res = str_replace("''", '', $res); $res = str_replace("' '", '', $res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateWebshellObf($str) { $res = $str; preg_match('~function\s*(\w{1,40})\s*\(\s*(\$\w{1,40})\s*,\s*(\$\w{1,40})\s*\)\s*\{\s*(\$\w{1,40})\s*=\s*str_rot13\s*\(\s*gzinflate\s*\(\s*str_rot13\s*\(\s*base64_decode\s*\(\s*[\'"]([^\'"]*)[\'"]\s*\)\s*\)\s*\)\s*\)\s*;\s*(if\s*\(\s*\$\w+\s*==[\'"][^\'"]*[\'"]\s*\)\s*\{\s*(\$\w{1,40})\s*=(\$\w+[\{\[]\d+[\}\]]\.?)+;return\s*(\$\w+)\(\3\);\s*\}\s*else\s*)+\s*if\s*\(\s*\$\w+\s*==[\'"][^\'"]*[\'"]\s*\)\s*\{\s*return\s*eval\(\3\);\s*\}\s*\};\s*(\$\w{1,40})\s*=\s*[\'"][^\'"]*[\'"];(\s*\10\([\'"][^\'"]*[\'"],)+\s*[\'"]([^\'"]*)[\'"]\s*\)+;~msi',$str, $matches); $find = $matches[0]; $alph = str_rot13(gzinflate(str_rot13(base64_decode($matches[5])))); for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) { $res = str_replace($matches[4] . '{' . $i . '}.', "'" . $alph[$i] . "'", $res); $res = str_replace($matches[4] . '{' . $i . '}', "'" . $alph[$i] . "'", $res); } $res = str_replace("''", '', $res); $res = base64_decode(gzinflate(str_rot13(convert_uudecode(gzinflate(base64_decode(strrev($matches[12]))))))); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateXorFName($str, $matches, $xor_key = null) { if (!isset($matches)) { preg_match('~(?(DEFINE)(?\'c\'(?:/\*\w+\*/)*))(\$\w+)\s*=\s*basename(?&c)\((?&c)trim(?&c)\((?&c)preg_replace(?&c)\((?&c)rawurldecode(?&c)\((?&c)"[%0-9A-F\.]+"(?&c)\)(?&c),\s*\'\',\s*__FILE__(?&c)\)(?&c)\)(?&c)\)(?&c);(\$\w+)\s*=\s*"([%\w\.\-\~]+)";(?:(\$\w+)=[^;]+;\5(?&c)\((?&c)\'\',\s*\'};\'\s*\.\s*(?&c)\()?(?:eval(?&c)\()?(?&c)rawurldecode(?&c)\((?&c)\3(?&c)\)(?&c)\s*\^\s*substr(?&c)\((?&c)str_repeat(?&c)\((?&c)\2,\s*(?&c)\((?&c)strlen(?&c)\((?&c)\3(?&c)\)(?&c)/strlen(?&c)\((?&c)\2(?&c)\)(?&c)\)(?&c)\s*\+\s*1(?&c)\)(?&c),\s*0,(?&c)\s*strlen(?&c)\((?&c)\3(?&c)\)(?&c)\)(?&c)\)(?:(?&c)\s*\.\s*\'{\'(?&c)\))?(?&c);~msi', $str, $matches); } $encrypted = rawurldecode($matches[4]); if (!isset($xor_key)) { $plain_text = '@ini_set(\'error_log\', NULL);'; $plain_text2 = 'if (!defined('; $xor_key = substr($encrypted, 0, strlen($plain_text)) ^ $plain_text; if (preg_match('~\.?[a-z0-9-_]{8,}\.\w{3}~', $xor_key, $m)) { $xor_key = $m[0]; } else { $xor_key = substr($encrypted, 0, strlen($plain_text2)) ^ $plain_text2; if (preg_match('~\.?[a-z0-9-_]{8,}\.\w{3}~', $xor_key, $m)) { $xor_key = $m[0]; } } } $result = $encrypted ^ substr(str_repeat($xor_key, (strlen($encrypted) / strlen($xor_key)) + 1), 0, strlen($encrypted)); return $result; } private function deobfuscateSubstCreateFunc($str) { preg_match('~(\$\w{1,40})=\'(([^\'\\\\]|\\\\.)*)\';\s*((\$\w{1,40})=(\1\[\d+].?)+;\s*)+(\$\w{1,40})=\'\';\s*(\$\w{1,40})\(\7,\$\w{1,40}\.\"([^\"]+)\"\.\$\w{1,40}\.\5\);~msi', $str, $matches); $find = $matches[0]; $php = base64_decode($matches[9]); preg_match('~(\$\w{1,40})=(\$\w{1,40})\("([^\']+)"\)~msi', $php, $matches); $matches[3] = base64_decode($matches[3]); $php = ''; for ($i = 1, $iMax = strlen($matches[3]); $i < $iMax; $i++) { if ($i % 2) { $php .= substr($matches[3], $i, 1); } } $php = str_replace($find, $php, $str); return $php; } private function deobfuscateZeura($str, $matches) { $offset = intval($matches[8]) + intval($matches[9]); $obfPHP = explode('__halt_compiler();', $str); $obfPHP = end($obfPHP); $php = gzinflate(base64_decode(substr(trim($obfPHP), $offset))); $php = stripcslashes($php); $php = str_replace($matches[0], $php, $str); return $php; } private function deobfuscateSourceCop($str, $matches) { $key = $matches[2]; $obfPHP = $matches[1]; $res = ''; $index = 0; $len = strlen($key); $temp = hexdec('&H' . substr($obfPHP, 0, 2)); for ($i = 2, $iMax = strlen($obfPHP); $i < $iMax; $i += 2) { $bytes = hexdec(trim(substr($obfPHP, $i, 2))); $index = (($index < $len) ? $index + 1 : 1); $decoded = $bytes ^ ord(substr($key, $index - 1, 1)); if ($decoded <= $temp) { $decoded = 255 + $decoded - $temp; } else { $decoded = $decoded - $temp; } $res = $res . chr($decoded); $temp = $bytes; } $res = str_replace($matches[0], $res, $str); return $res; } private function deobfuscateGlobalsArray($str, $matches) { $res = $str; $alph = stripcslashes($matches[3]); $res = preg_replace('~\${"[\\\\x0-9a-f]+"}\[\'\w+\'\]\s*=\s*"[\\\\x0-9a-f]+";~msi', '', $res); for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) { $res = str_replace($matches[1] .'[' . $matches[2] . ']' . '[' . $i . '].', "'" . $alph[$i] . "'", $res); $res = str_replace($matches[1] .'[' . $matches[2] . ']' . '[' . $i . ']', "'" . $alph[$i] . "'", $res); } $res = str_replace("''", '', $res); preg_match_all('~\\' . $matches[1] . '\[(\'\w+\')]\s*=\s*\'(\w+)\';~msi', $res, $funcs); $vars = $funcs[1]; $func = $funcs[2]; foreach ($vars as $index => $var) { $res = str_replace($matches[1] . '[' . $var . ']', $func[$index], $res); } foreach ($func as $remove) { $res = str_replace($remove . " = '" . $remove . "';", '', $res); $res = str_replace($remove . "='" . $remove . "';", '', $res); } $res = str_replace($matches[0], $res, $str); return $res; } private function deobfuscateXbrangwolf($str, $match) { return $match[0]; } private function deobfuscateObfB64($str, $matches) { $res = base64_decode($matches[3]); $res = str_replace($matches[0], $res, $str); return $res; } private function deobfuscateArrayOffsets($str) { $vars = []; preg_match('~(\$\w{1,40})\s*=\s*\'([^\']*)\';\s*(\$\w{1,40})\s*=\s*explode\s*\((chr\s*\(\s*\(\d+\-\d+\)\)),substr\s*\(\1,\s*\((\d+\-\d+)\),\s*\(\s*(\d+\-\d+)\)\)\);.+\1\s*=\s*\$\w+[+\-\*]\d+;~msi', $str, $matches); $find = $matches[0]; $obfPHP = $matches[2]; $matches[4] = Helpers::calc($matches[4]); $matches[5] = intval(Helpers::calc($matches[5])); $matches[6] = intval(Helpers::calc($matches[6])); $func = explode($matches[4], strtolower(substr($obfPHP, $matches[5], $matches[6]))); $func[1] = strrev($func[1]); $func[2] = strrev($func[2]); preg_match('~\$\w{1,40}\s=\sexplode\((chr\(\(\d+\-\d+\)\)),\'([^\']+)\'\);~msi', $str, $matches); $matches[1] = Helpers::calc($matches[1]); $offsets = explode($matches[1], $matches[2]); $res = ''; for ($i = 0; $i < (sizeof($offsets) / 2); $i++) { $res .= substr($obfPHP, $offsets[$i * 2], $offsets[($i * 2) + 1]); } preg_match('~return\s*\$\w{1,40}\((chr\(\(\d+\-\d+\)\)),(chr\(\(\d+\-\d+\)\)),\$\w{1,40}\);~msi', $str, $matches); $matches[1] = Helpers::calc($matches[1]); $matches[2] = Helpers::calc($matches[2]); $res = Helpers::stripsquoteslashes(str_replace($matches[1], $matches[2], $res)); $res = "<?php\n" . $res . "?>"; preg_match('~(\$\w{1,40})\s=\simplode\(array_map\(\"[^\"]+\",str_split\(\"(([^\"\\\\]++|\\\\.)*)\"\)\)\);(\$\w{1,40})\s=\s\$\w{1,40}\(\"\",\s\1\);\s\4\(\);~msi', $res, $matches); $matches[2] = stripcslashes($matches[2]); for ($i=0, $iMax = strlen($matches[2]); $i < $iMax; $i++) { $matches[2][$i] = chr(ord($matches[2][$i])-1); } $res = str_replace($matches[0], $matches[2], $res); preg_match_all('~(\$\w{1,40})\s*=\s*\"(([^\"\\\\]++|\\\\.)*)\";~msi', $res, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $vars[$match[1]] = stripcslashes($match[2]); } preg_match_all('~(\$\w{1,40})\s*=\s*\'(([^\'\\\\]++|\\\\.)*)\';~msi', $res, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $vars[$match[1]] = Helpers::stripsquoteslashes($match[2]); } preg_match('~(\$\w{1,40})\s*=\s*\"\\\\x73\\\\164\\\\x72\\\\137\\\\x72\\\\145\\\\x70\\\\154\\\\x61\\\\143\\\\x65";\s(\$\w{1,40})\s=\s\'(([^\'\\\\]++|\\\\.)*)\';\seval\(\1\(\"(([^\"\\\\]++|\\\\.)*)\",\s\"(([^\"\\\\]++|\\\\.)*)\",\s\2\)\);~msi', $res, $matches); $matches[7] = stripcslashes($matches[7]); $matches[3] = Helpers::stripsquoteslashes(str_replace($matches[5], $matches[7], $matches[3])); $res = str_replace($matches[0], $matches[3], $res); preg_match_all('~(\$\w{1,40})\s*=\s*\"(([^\"\\\\]++|\\\\.)*)\";~msi', $res, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $vars[$match[1]] = stripcslashes($match[2]); } preg_match_all('~(\$\w{1,40})\s*=\s*\'(([^\'\\\\]++|\\\\.)*)\';~msi', $res, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $vars[$match[1]] = Helpers::stripsquoteslashes($match[2]); } preg_match('~\$\w{1,40}\s=\sarray\(((\'(([^\'\\\\]++|\\\\.)*)\',?(\.(\$\w{1,40})\.)?)+)\);~msi', $res, $matches); foreach ($vars as $var => $value) { $matches[1] = str_replace("'." . $var . ".'", $value, $matches[1]); } $array2 = explode("','", substr($matches[1], 1, -1)); preg_match('~eval\(\$\w{1,40}\(array\((((\"[^\"]\"+),?+)+)\),\s(\$\w{1,40}),\s(\$\w{1,40})\)\);~msi', $res, $matches); $array1 = explode('","', substr($matches[1], 1, -1)); $temp = array_keys($vars); $temp = $temp[9]; $arr = explode('|', $vars[$temp]); $off=0; $funcs=[]; for ($i = 0, $iMax = sizeof($arr); $i < $iMax; $i++) { if ($i == 0) { $off = 0; } else { $off = $arr[$i - 1] + $off; } $len = $arr[$i]; $temp = array_keys($vars); $temp = $temp[7]; $funcs[]= substr($vars[$temp], $off, $len); } for ($i = 0; $i < 5; $i++) { if ($i % 2 == 0) { $funcs[$i] = strrev($funcs[$i]); $g = substr($funcs[$i], strpos($funcs[$i], "9") + 1); $g = stripcslashes($g); $v = explode(":", substr($funcs[$i], 0, strpos($funcs[$i], "9"))); for ($j = 0, $jMax = sizeof($v); $j < $jMax; $j++) { $q = explode("|", $v[$j]); $g = str_replace($q[0], $q[1], $g); } $funcs[$i] = $g; } else { $h = explode("|", strrev($funcs[$i])); $d = explode("*", $h[0]); $b = $h[1]; for ($j = 0, $jMax = sizeof($d); $j < $jMax; $j++) { $b = str_replace($j, $d[$j], $b); } $funcs[$i] = $b; } } $temp = array_keys($vars); $temp = $temp[8]; $funcs[] = str_replace('9', ' ', strrev($vars[$temp])); $funcs = implode("\n", $funcs); preg_match('~\$\w{1,40}\s=\s\'.+?eval\([^;]+;~msi', $res, $matches); $res = str_replace($matches[0], $funcs, $res); $res = stripcslashes($res); $res = str_replace('}//}}', '}}', $res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateArrayOffsetsEval($str, $matches) { $arg1 = explode(chr(Helpers::calculateMathStr($matches[4])), $matches[5]); $arg2 = $matches[2]; $code = null; for ($enqvlelpmr = 0; $enqvlelpmr < (sizeof($arg1) / 2); $enqvlelpmr++) { $code .= substr($arg2, $arg1[($enqvlelpmr * 2)], $arg1[($enqvlelpmr * 2) + 1]); } $res = str_replace( chr(Helpers::calculateMathStr($matches[20])), chr(Helpers::calculateMathStr($matches[21])), $code ); $arg1 = substr( $matches[2], Helpers::calculateMathStr($matches[7]), Helpers::calculateMathStr($matches[8]) ); $func = substr( $matches[2], Helpers::calculateMathStr($matches[23]), Helpers::calculateMathStr($matches[24]) ); return $res; } private function deobfuscateXoredVar($str, $matches) { $res = $str; $find = $matches[0]; preg_match_all('~(\$\w{1,40})\s*=\s*\'((?:\\\\.|[^\'])*)\'(?:\^\s*\'((?:\\\\.|[^\'])*)\')?;~msi', $str, $matches, PREG_SET_ORDER); $vars = []; foreach ($matches as $match) { $vars[$match[1]] = $match[2]; if (isset($match[3])) { $vars[$match[1]] ^= $match[3]; } $res = str_replace($match[0], $match[1] . "='" . $vars[$match[1]] . "';", $res); } preg_match_all('~(\$\w{1,40})\s*=\s*(\w+);~msi', $str, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $vars[$match[1]] = $match[2]; } preg_match_all('~(\$\w{1,40})\s*=\s*\'((\\\\.|[^\'])*)\'\^(\$\w+);~msi', $str, $matches, PREG_SET_ORDER); foreach ($matches as $match) { if (isset($vars[$match[4]])) { $vars[$match[1]] = $match[2] ^ $vars[$match[4]]; $res = str_replace($match[0], $match[1] . "='" . $vars[$match[1]] . "';", $res); } } preg_match_all('~(\$\w{1,40})\s*=\s*(\$\w+)\^\'((\\\\.|[^\'])*)\';~msi', $res, $matches, PREG_SET_ORDER); foreach ($matches as $match) { if (isset($vars[$match[2]])) { $vars[$match[1]] = $match[4] ^ $vars[$match[2]]; $res = str_replace($match[0], $match[1] . "='" . $vars[$match[1]] . "';", $res); } } preg_match_all('~\'((\\\\.|[^\'])*)\'\^(\$\w+)~msi', $res, $matches, PREG_SET_ORDER); foreach ($matches as $match) { if (isset($vars[$match[3]])) { $res = str_replace($match[0], "'" . addcslashes($match[1] ^ $vars[$match[3]], '\\\'') . "'", $res); } } preg_match_all('~(\$\w+)\^\'((\\\\.|[^\'])*)\'~msi', $res, $matches, PREG_SET_ORDER); foreach ($matches as $match) { if (isset($vars[$match[1]])) { $res = str_replace($match[0], "'" . addcslashes($vars[$match[1]] ^ $match[2], '\\\'') . "'", $res); } } preg_match_all('~(\$\w+)(\.)?=(\$\w+)?(?:\'((?:\\\\.|[^\'])*)\')?\.?(\$\w+)?(?:\'((?:\\\\.|[^\'])*)\')?(?:\^(\$\w+))?(?:\.\'((?:\\\\.|[^\'])*)\')?;~msi', $res, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $val = ''; //var if (isset($match[2]) && $match[2] !== '') { if (isset($vars[$match[1]])) { $val .= $vars[$match[1]]; } else { continue; } } //var if (isset($match[3]) && $match[3] !== '') { if (isset($vars[$match[3]])) { $val .= $vars[$match[3]]; } else { continue; } } //str if (isset($match[4]) && $match[4] !== '') { $val .= $match[4]; } //var if (isset($match[5]) && $match[5] !== '') { if (isset($vars[$match[5]])) { $val .= $vars[$match[5]]; } else { continue; } } //str if (isset($match[6]) && $match[6] !== '') { $val .= $match[6]; } //var and str if (isset($match[7]) && $match[7] !== '') { if (isset($vars[$match[7]])) { $additionalStr = ''; if (isset($match[8]) && $match[8] !== '') { $additionalStr = $match[8]; } $val ^= $vars[$match[7]] . $additionalStr; } else { continue; } } else { if (isset($match[8]) && $match[8] !== '') { $val .= $match[8]; } } $vars[$match[1]] = $val; $res = str_replace($match[0], '', $res); } $res = preg_replace_callback('~(\$\w+)([()]|==)~msi', function ($match) use ($vars) { $res = $vars[$match[1]] ?? $match[1]; if (isset($vars[$match[1]]) && ($match[2] === ')' || $match[2] === '==')) { $res = "'$res'"; } return $res . $match[2]; }, $res); foreach ($vars as $var => $value) { $res = str_replace($var, $value, $res); $res = str_replace($value . "='" . $value . "';", '', $res); } $res = str_replace($find, $res, $str); if (preg_match('~((\$\w+)=\${\'(\w+)\'};)(?:.*?)((\$\w+)=\2(\[\'[^\']+\'\]);)~msi', $res, $matches)) { $res = str_replace($matches[1], '', $res); $res = str_replace($matches[4], '', $res); $cookieVar = sprintf('$%s%s', $matches[3], $matches[6]); $res = str_replace($matches[5], $cookieVar, $res); } return $res; } private function deobfuscatePhpMess($str, $matches) { $res = base64_decode(gzuncompress(base64_decode(base64_decode($matches[4])))); $res = str_replace($matches[0], $res, $str); return $res; } private function deobfuscatePregReplaceSample05($str) { $res = ''; preg_match('~(\$\w{1,40})\s*=\s*\"([^\"]+)\";\s*\$\w+\s*=\s*\$\w+\(\1,\"([^\"]+)\",\"([^\"]+)\"\);\s*\$\w+\(\"[^\"]+\",\"[^\"]+\",\"\.\"\);~msi', $str, $matches); $res = strtr($matches[2], $matches[3], $matches[4]); $res = base64_decode($res); $res = str_replace($matches[0], $res, $str); return $res; } private function deobfuscatePregReplaceB64($str, $matches) { $find = $matches[0]; $res = str_replace($find, base64_decode($matches[4]), $str); $res = stripcslashes($res); preg_match('~eval\(\${\$\{"GLOBALS"\}\[\"\w+\"\]}\(\${\$\{"GLOBALS"\}\[\"\w+\"]}\(\"([^\"]+)\"\)\)\);~msi', $res, $matches); $res = gzuncompress(base64_decode($matches[1])); preg_match('~eval\(\$\w+\(\$\w+\("([^"]+)"\)\)\);~msi', $res, $matches); $res = gzuncompress(base64_decode($matches[1])); preg_match('~eval\(\$\w+\(\$\w+\("([^"]+)"\)\)\);~msi', $res, $matches); $res = gzuncompress(base64_decode($matches[1])); preg_match_all('~\$(\w+)\s*(\.)?=\s*("[^"]*"|\$\w+);~msi', $res, $matches, PREG_SET_ORDER); $var = $matches[0][1]; $vars = []; foreach ($matches as $match) { if($match[2]!=='.') { $vars[$match[1]] = substr($match[3], 1, -1); } else { $vars[$match[1]] .= $vars[substr($match[3], 1)]; } } $res = str_replace("srrKePJUwrMZ", "=", $vars[$var]); $res = gzuncompress(base64_decode($res)); preg_match_all('~function\s*(\w+)\(\$\w+,\$\w+\)\{.+?}\s*};\s*eval\(((\1\(\'(\w+)\',)+)\s*"([\w/\+]+)"\)\)\)\)\)\)\)\);~msi', $res, $matches); $decode = array_reverse(explode("',", str_replace($matches[1][0] . "('", '', $matches[2][0]))); array_shift($decode); $arg = $matches[5][0]; foreach ($decode as $val) { $arg = Helpers::someDecoder2($val, $arg); } $res = $arg; $res = str_replace($find, $res, $str); return $res; } private function deobfuscateDecoder($str) { preg_match('~if\(!function_exists\(\"(\w+)\"\)\){function \1\(.+eval\(\1\(\"([^\"]+)\"\)\);~msi', $str, $matches); $res = Helpers::someDecoder($matches[2]); $res = str_replace($matches[0], $res, $str); return $res; } private function deobfuscateGBE($str) { preg_match('~(\$\w{1,40})=\'([^\']+)\';\1=gzinflate\(base64_decode\(\1\)\);\1=str_replace\(\"__FILE__\",\"\'\$\w+\'\",\1\);eval\(\1\);~msi', $str, $matches); $res = str_replace($matches[0], gzinflate(base64_decode($matches[2])), $str); return $res; } private function deobfuscateGBZ($str, $matches) { $res = str_replace($matches[0], base64_decode(str_rot13($matches[4])), $str); return $res; } private function deobfuscateBitrix($str, $matches) { $find = $matches[0]; $res = $str; $funclist = []; $strlist = []; $res = preg_replace("|[\"']\s*\.\s*['\"]|smi", '', $res); $hangs = 0; while (preg_match('~(?:min|max|round)?\(\s*\d+[\.\,\|\s\|+\|\-\|\*\|\/]([\d\s\.\,\+\-\*\/]+)?\)~msi', $res) && $hangs < 15) { $res = preg_replace_callback('~(?:min|max|round)?\(\s*\d+[\.\,\|\s\|+\|\-\|\*\|\/]([\d\s\.\,\+\-\*\/]+)?\)~msi', ['Helpers','calc'], $res); $hangs++; } while (preg_match('~(?:min|max|round)\(\s*\d+\s*\)~msi', $res) && $hangs < 15) { $res = preg_replace_callback('~(?:min|max|round)\(\s*\d+\s*\)~msi', ['Helpers','calc'], $res); $hangs++; } $res = preg_replace_callback( '|base64_decode\(["\'](.*?)["\']\)|smi', function ($matches) { return '"' . base64_decode($matches[1]) . '"'; }, $res ); if (preg_match_all('|\$GLOBALS\[[\'"](.+?)[\'"]\]\s*=\s*Array\((.+?)\);|smi', $res, $founds, PREG_SET_ORDER)) { foreach ($founds as $found) { $varname = $found[1]; $funclist[$varname] = explode(',', $found[2]); $funclist[$varname] = array_map(function ($value) { return trim($value, "'\""); }, $funclist[$varname]); $res = preg_replace_callback( '|\$GLOBALS\[[\'"]' . $varname . '[\'"]\]\[(\d+)\]|smi', function ($matches) use ($varname, $funclist) { return str_replace(['"', "'"], '', $funclist[$varname][$matches[1]]); }, $res ); $res = str_replace($found[0], '', $res); } } $array_temp = []; while (preg_match('~function\s*(\w{1,60})\(\$\w+\){\$\w{1,60}\s*=\s*Array\((.{1,30000}?)\);\s*return\s*base64_decode[^}]+}~msi', $res, $found)) { $strlist = explode(',', $found[2]); $array_temp[$found[1]] = array_map('base64_decode', $strlist); $res = preg_replace_callback( '|' . $found[1] . '\((\d+)\)|smi', function ($matches) use ($array_temp, $found) { return "'" . $array_temp[$found[1]][$matches[1]] . "'"; }, $res ); $res = str_replace($found[0], '', $res); } $res = preg_replace('~\'\s*\.\s*\'~', '', $res); if (preg_match_all('~\s*function\s*(_+(.{1,60}?))\(\$[_0-9]+\)\s*\{\s*static\s*\$([_0-9]+)\s*=\s*(true|false);.{1,30000}?\$\3\s*=\s*array\((.*?)\);\s*return\s*base64_decode\(\$\3~smi', $res, $founds, PREG_SET_ORDER)) { foreach ($founds as $found) { $strlist = explode('",', $found[5]); $strlist = implode("',", $strlist); $strlist = explode("',", $strlist); $res = preg_replace_callback( '|' . $found[1] . '\((\d+(\.\d+)?)\)|sm', function ($matches) use ($strlist) { $ret = base64_decode($strlist[$matches[1]]); if (!$ret) { $ret = $strlist[$matches[1]]; } return '\'' . $ret . '\''; }, $res ); } } $res = str_replace($find, $res, $str); return $res; } private function deobfuscateLockIt($str, $matches) { $phpcode = base64_decode(Helpers::getTextInsideQuotes(Helpers::getEvalCode($str))); $result = $str; $offset = 0; $dictName = $matches[1]; $dictVal = urldecode($matches[2]); $vars = [$dictName => $dictVal]; $vars = Helpers::getVarsFromDictionaryDynamically($vars, $str); if (preg_match('~eval\(~msi', $matches[15])) { $phpcode = base64_decode(Helpers::getTextInsideQuotes(Helpers::getEvalCode($matches[15]))); } if ($matches[7] !== '' && preg_match('~eval\(~msi', $matches[7])) { $phpcode2 = base64_decode(Helpers::getTextInsideQuotes(Helpers::getEvalCode($matches[7]))); $vars = Helpers::collectVars($phpcode2, "'", $vars); } if (preg_match('~\$_F=__FILE__;\$_X=\'([^\']+)\';\s*eval\s*\(\s*\$?\w{1,60}\s*\(\s*[\'"][^\'"]+[\'"]\s*\)\s*\)\s*;~msi', $str, $matches)) { $needles = Helpers::getNeedles($phpcode); $needle = $needles[0]; $before_needle = $needles[1]; $strToDecode = base64_decode($matches[1]); return '<?php ' . strtr($strToDecode, $needle, $before_needle); } $count = 0; preg_match_all('~,(\d+|0x\w+)\)~msi', $phpcode, $offsetMatches, PREG_SET_ORDER); if (count($offsetMatches) === 2) { foreach ($offsetMatches as $offsetMatch) { if (strpos($offsetMatch[1], '0x') !== false && isset($str[$offset + hexdec($offsetMatch[1])])) { $count++; $offset += hexdec($offsetMatch[1]); } else if (isset($str[$offset + (int)$offsetMatch[1]])) { $count++; $offset += (int)$offsetMatch[1]; } } } $finalOffset = 0; if (preg_match('~(\$[O0]*)=(\d+|0x\w+);~msi', $str, $match) && $count === 2) { if (strpos($match[2], '0x') !== false) { $finalOffset = hexdec($match[2]); } else { $finalOffset = (int)$match[2]; } } $result = substr($str, $offset); if ($finalOffset > 0) { $result = substr($result, 0, $finalOffset); } if (preg_match('~[\'"]([^\'"]+)[\'"],[\'"]([^\'"]+)[\'"]~msi', $phpcode, $needleMatches)) { $result = strtr($result, $needleMatches[1], $needleMatches[2]); } $result = base64_decode($result); $result = Helpers::replaceVarsFromArray($vars, $result, true); for ($i = 0; $i < 2; $i++) { $result = preg_replace_callback('~eval\s?\(((?:(?:str_rot13|gzinflate|str_rot13|base64_decode)\()+\'[^\']+\'\)+);~msi', function ($match) { return $this->unwrapFuncs($match[1]); }, $result); $result = preg_replace_callback('~eval\s?\((?:str_rot13\()+\'((?|\\\\\'|[^\'])+\')\)\);~msi', function ($match) { return str_rot13($match[1]); }, $result); } $result = preg_replace_callback( '~(echo\s*)?base64_decode\(\'([\w=\+\/]+)\'\)~', function ($match) { if ($match[1] != "") { return 'echo \'' . base64_decode($match[2]) . '\''; } return '\'' . str_replace('\'', '\\\'', base64_decode($match[2])) . '\''; }, $result ); $result = Helpers::replaceVarsFromArray($vars, $result, true); return '<?php ' . $result; } private function deobfuscateB64inHTML($str, $matches) { $obfPHP = $str; $phpcode = base64_decode(Helpers::getTextInsideQuotes(Helpers::getEvalCode($obfPHP))); $needles = Helpers::getNeedles($phpcode); $needle = $needles[count($needles) - 2]; $before_needle = end($needles); $pointer1 = $matches[2]; $temp = strtr($obfPHP, $needle, $before_needle); $end = 8; for ($i = strlen($temp) - 1; $i > strlen($temp) - 15; $i--) { if ($temp[$i] == '=') { $end = strlen($temp) - 1 - $i; } } $phpcode = base64_decode(substr($temp, strlen($temp) - $pointer1 - ($end-1), $pointer1)); $phpcode = str_replace($matches[0], $phpcode, $str); return $phpcode; } private function deobfuscateStrtrFread($str, $layer2) { $str = explode('?>', $str); $str = end($str); $res = substr($str, $layer2[1], strlen($str)); $res = base64_decode(strtr($res, $layer2[2], $layer2[3])); $res = str_replace($layer2[0], $res, $str); return $res; } private function deobfuscateStrtrBase64($str, $matches) { $str = strtr($matches[2], $matches[3], $matches[4]); $res = base64_decode($str); $res = str_replace($matches[0], $res, $str); return $res; } private function deobfuscateByteRun($str) { preg_match('~\$_F=__FILE__;\$_X=\'([^\']+)\';\s*eval\s*\(\s*\$?\w{1,60}\s*\(\s*[\'"][^\'"]+[\'"]\s*\)\s*\)\s*;~msi', $str, $matches); $res = base64_decode($matches[1]); $res = strtr($res, '123456aouie', 'aouie123456'); $res = str_replace($matches[0], $res, $str); return $res; } private function deobfuscateExplodeSubst($str, $matches) { $find = $matches[0]; $res = $str; preg_match_all('~function ([\w_]+)\(~msi', $res, $funcs); preg_match('~(\$_\w+\[\w+\])\s*=\s*explode\(\'([^\']+)\',\s*\'([^\']+)\'\);.+?(\1\[[a-fx\d]+\])\(\);~msi', $res, $matches); $subst_array = explode($matches[2], $matches[3]); $subst_var = $matches[1]; $res = preg_replace_callback('~((\$_GET\[[O0]+\])|(\$[O0]+))\[([a-fx\d]+)\]~msi', function ($matches) use ($subst_array, $funcs) { if (function_exists($subst_array[hexdec($matches[4])]) || in_array($subst_array[hexdec($matches[4])], $funcs[1])) { return $subst_array[hexdec($matches[4])]; } else { return "'" . $subst_array[hexdec($matches[4])] . "'"; } }, $res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateSubst($str, $matches) { $find = $matches[0]; $res = $str; $alph = stripcslashes($matches[2]); $funcs = $matches[4]; for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) { $res = str_replace($matches[1] . '[' . $i . '].', "'" . $alph[$i] . "'", $res); $res = str_replace($matches[1] . '[' . $i . ']', "'" . $alph[$i] . "'", $res); } $res = str_replace("''", '', $res); $var = $matches[3]; preg_match_all('~\\' . $var . '\[\]\s*=\s*\'([\w\*\-\#]+)\'~msi', $res, $matches); for ($i = 0, $iMax = count($matches[1]); $i <= $iMax; $i++) { if (@function_exists($matches[1][$i])) { $res = str_replace($var . '[' . $i . ']', $matches[1][$i], $res); } else { $res = @str_replace($var . '[' . $i . ']', "'" . $matches[1][$i] . "'", $res); } } $res = str_replace($find, $res, $str); return $res; } private function deobfuscateUrldecode($str) { preg_match('~(\$\w+=\'[^\']+\';\s*)+(\$[\w{1,40}]+)=(urldecode|base64_decode)?\(?[\'"]([\w+%=-]+)[\'"]\)?;(\$[\w+]+=(\$(\w+\[\')?[O_0]*(\'\])?([\{\[]\d+[\}\]])?\.?)+;)+[^\?]+(\?\>[\w\~\=\/\+]+|.+\\\\x[^;]+;)~msi', $str, $matches); $find = $matches[0]; $res = $str; $res = stripcslashes($res); if ($matches[3] == "urldecode") { $alph = urldecode($matches[4]); $res = str_replace('urldecode(\'' . $matches[4] . '\')', "'" . $alph . "'", $res); } elseif ($matches[3] == 'base64_decode') { $alph = base64_decode($matches[4]); $res = str_replace('base64_decode(\'' . $matches[4] . '\')', "'" . $alph . "'", $res); } else { $alph = $matches[4]; } for ($i = 0, $iMax = strlen($alph); $i < $iMax; $i++) { $res = str_replace($matches[2] . '[' . $i . '].', "'" . $alph[$i] . "'", $res); $res = str_replace($matches[2] . '[' . $i . ']', "'" . $alph[$i] . "'", $res); $res = str_replace($matches[2] . '{' . $i . '}.', "'" . $alph[$i] . "'", $res); $res = str_replace($matches[2] . '{' . $i . '}', "'" . $alph[$i] . "'", $res); } $res = str_replace("''", '', $res); preg_match_all('~\$(\w+)\s*=\s*\'([\w\*\-\#]+)\'~msi', $res, $matches, PREG_SET_ORDER); for ($i = 0, $iMax = count($matches); $i < $iMax; $i++) { if (@function_exists($matches[$i][2])) { $res = str_replace('$' . $matches[$i][1], $matches[$i][2], $res); $res = str_replace('${"GLOBALS"}["' . $matches[$i][1] . '"]', $matches[$i][2], $res); } else { $res = str_replace('$' . $matches[$i][1], "'" . $matches[$i][2] . "'", $res); $res = str_replace('${"GLOBALS"}["' . $matches[$i][1] . '"]', "'" . $matches[$i][2] . "'", $res); } $res = str_replace("'" . $matches[$i][2] . "'='" . $matches[$i][2] . "';", '', $res); $res = str_replace($matches[$i][2] . "='" . $matches[$i][2] . "';", '', $res); $res = str_replace($matches[$i][2] . "=" . $matches[$i][2] . ';', '', $res); } $res = Helpers::replaceCreateFunction($res); preg_match('~\$([0_O]+)\s*=\s*function\s*\((\$\w+)\)\s*\{\s*\$[O_0]+\s*=\s*substr\s*\(\2,(\d+),(\d+)\);\s*\$[O_0]+\s*=\s*substr\s*\(\2,([\d-]+)\);\s*\$[O_0]+\s*=\s*substr\s*\(\2,(\d+),strlen\s*\(\2\)-(\d+)\);\s*return\s*gzinflate\s*\(base64_decode\s*\(\$[O_0]+\s*\.\s*\$[O_0]+\s*\.\s*\$[O_0]+\)+;~msi', $res, $matches); $res = preg_replace_callback('~\$\{"GLOBALS"}\["' . $matches[1] . '"\]\s*\(\'([^\']+)\'\)~msi', function ($calls) use ($matches) { $temp1 = substr($calls[1], $matches[3], $matches[4]); $temp2 = substr($calls[1], $matches[5]); $temp3 = substr($calls[1], $matches[6],strlen($calls[1]) - $matches[7]); return "'" . gzinflate(base64_decode($temp1 . $temp3 . $temp2)) . "'"; }, $res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateUrlDecode3($str, $matches) { $dictionaryKey = $matches[4]; $dictionaryVal = urldecode($matches[3]); $result = Helpers::replaceVarsFromDictionary($dictionaryKey, $dictionaryVal, $str); return $result; } public function unwrapFuncs($string, $level = 0) { $close_tag = false; $res = ''; if (trim($string) == '') { return ''; } if ($level > 100) { return ''; } if ((($string[0] == '\'') || ($string[0] == '"')) && (substr($string, 1, 2) != '?>')) { if($string[0] == '"' && preg_match('~\\\\x\d+~', $string)) { return stripcslashes($string); } else { return substr($string, 1, -2); } } elseif ($string[0] == '$') { preg_match('~\$\w{1,40}~', $string, $string); $string = $string[0]; $matches = []; if (@preg_match_all('~\\' . $string . '\s*=\s*(\(*(base64_decode\s*\(|pack\s*\(\'H\*\',|convert_uudecode\s*\(|htmlspecialchars_decode\s*\(|stripslashes\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|eval\s*\()+((?:"((.*?[^\\\\])??((\\\\\\\\)+)?+)"[^;]+;)|(?:\$\w+)\)*;*))~msi', $this->full_source, $matches) || @preg_match_all('~\\' . $string . '\s*=\s*(\(*(base64_decode\s*\(|pack\s*\(\'H\*\',|convert_uudecode\s*\(|htmlspecialchars_decode\s*\(|stripslashes\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|eval\s*\()+((?:\'((.*?[^\\\\])??((\\\\\\\\)+)?+)\'[^;]+;)|(?:\$\w+)\)*;*))~msi', $this->full_source, $matches) ) { $str = $this->unwrapFuncs($matches[1][0], $level + 1); } if (@preg_match_all('~\\' . $string . '\s*=\s*("((.*?[^\\\\])??((\\\\\\\\)+)?+)");~msi', $this->full_source, $matches) || @preg_match_all('~\\' . $string . '\s*=\s*(\'((.*?[^\\\\])??((\\\\\\\\)+)?+)\');~msi', $this->full_source, $matches) ) { $str = substr(@$matches[1][0], 1, -1); } $this->cur = str_replace($matches[0][0], '', $this->cur); $this->text = str_replace($matches[0][0], '', $this->text); return $str; } else { $pos = strpos($string, '('); $function = substr($string, 0, $pos); $arg = $this->unwrapFuncs(substr($string, $pos + 1), $level + 1); if (strpos($function, '?>') !== false) { $function = str_replace("'?>'.", "", $function); $function = str_replace('"?>".', "", $function); $function = str_replace("'?>' .", "", $function); $function = str_replace('"?>" .', "", $function); $close_tag = true; } $function = str_replace(['@', ' '], '', $function); $safe = Helpers::isSafeFunc($function); if ($safe) { if ($function === 'pack') { $args = explode(',', $arg); $args[0] = substr(trim($args[0]), 0, -1 ); $args[1] = substr(trim($args[1]), 1); $res = @$function($args[0], $args[1]); } elseif ($function === 'str_replace') { $args = explode(',', $arg); $args[0] = substr(trim($args[0]), 0, -1 ); $args[1] = substr(trim($args[1]), 0); if (trim($args[1]) === 'null') { $args[1] = null; } $args[2] = $this->unwrapFuncs(trim($args[2]), $level + 1) ?? $args[2]; $res = @$function($args[0], $args[1], $args[2]); } else { $res = @$function($arg); } } else { $res = $arg; } if ($close_tag) { $res = "?> " . $res; $close_tag = false; } return $res; } } private function deobfuscateEvalFunc($str) { $res = $str; $res = stripcslashes($res); preg_match('~function\s*(\w{1,40})\((\$\w{1,40})\)\s*\{\s*(\$\w{1,40})\s*=\s*\"base64_decode\";\s*(\$\w{1,40})\s*=\s*\"gzinflate\";\s*return\s*\4\(\3\(\2\)\);\s*\}\s*\$\w{1,40}\s*=\s*\"[^\"]*\";\s*\$\w{1,40}\s*=\s*\"[^\"]*\";\s*eval\(\1\(\"([^\"]*)\"\)\);~msi', $res, $matches); $res = gzinflate(base64_decode($matches[5])); $res = str_replace($str, $res, $str); return $res; } private function deobfuscateEvalConcatFunc($str, $matches) { $res = $matches[2]; if (str_replace('"."', '', $matches[6]) === '"create_function"') { $brackets = ''; $res = preg_replace_callback('~[\w."]+\(~', function ($match) use (&$brackets) { $replace = strtolower(str_replace('"."', '', $match[0])); if (strpos($replace, 'eval') === false) { $brackets .= ')'; return $replace; } return ""; }, $res); $res .= "'$matches[4]'" . $brackets . ';'; $res = $this->unwrapFuncs($res); } return $res; } private function deobfuscateEvalHex($str) { preg_match('~eval\s*\("(\\\\x?\d+[^"]+)"\);~msi', $str, $matches); $res = stripcslashes($matches[1]); $res = str_replace($matches[1], $res, $res); $res = str_replace($matches[0], $res, $str); return $res; } private function deobfuscateEvalVarConcat($str, $matches) { $find = $matches[0]; $res = $str; preg_match_all('~(\$\w+)\s*\.=\s*"([^"]+)";~msi', $str, $matches, PREG_SET_ORDER); $vars = []; foreach ($matches as $match) { $res = str_replace($match[0], '', $res); $res = str_replace($match[1], '"' . $match[2] . '"', $res); } $res = preg_replace('/[\'"]\s*?\.+\s*?[\'"]/smi', '', $res); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateEvalVar($str, $matches) { $find = $matches[0]; $evalVar = $matches[7]; if (!$evalVar) { $evalVar = $matches[6]; $pregVal = '\$\w+'; $pregStr = '[\'"]?([\/\w\+=]+)[\'"]?'; $pregFunc = '(?:base64_decode\s*\(|gzinflate\s*\(|strrev\s*\(|str_rot13\s*\(|gzuncompress\s*\(|urldecode\s*\(|rawurldecode\s*\(|htmlspecialchars_decode\s*\()+(?:["\']([\/\w\+=]+)["\'])'; while (preg_match('~str_replace\(["\']([\/\w]+)["\'],\s?["\']([\/\w\+=]+)["\'],\s?(?|(' . $pregVal . ')|(?:' . $pregStr . ')|(' . $pregFunc . '))\)~msi', $evalVar, $match)) { $result = $match[0]; if (preg_match('~' . $pregVal . '~', $match[3], $arg)) { $result = str_replace($match[1], $match[2], $matches[3]); } elseif (preg_match('~' . $pregFunc . '~', $match[3], $arg)) { $unwrappedVar = $this->unwrapFuncs($arg[0]); $result = str_replace($match[1], $match[2], $unwrappedVar); } elseif (preg_match('~' . $pregStr . '~', $match[3], $arg)) { $result = str_replace($match[1], $match[2], $match[3]); } $evalVar = str_replace($match[0], "\"$result\"" . ')', $evalVar); } return $this->unwrapFuncs($matches[5] . $evalVar); } $str = str_replace('\\\'', '@@slaquote@@', $str); $str = str_replace('\\"', '@@sladquote@@', $str); $val = ''; if (!@preg_match_all('~\\' . $evalVar . '\s*=\s*("[^"]+");~msi', $str, $matches)) { @preg_match_all('~\\' . $evalVar . '\s*=\s*(\'[^\']+\');~msi', $str, $matches); $val = @$matches[1][count($matches[1]) - 1]; } else { $val = $matches[1][count($matches[1]) - 1]; } $res = str_replace($matches[0], '', $str); $val = substr($val, 1, -1); $text = "'" . addcslashes(stripcslashes($val), "\\'") . "'"; $string = preg_replace('~\\' . $evalVar . '(?=[^a-zA-Z0-9])~ms', $text, $res); $string = preg_replace('~\(\s*\\' . $evalVar . '~msi', '(' . $text, $string); $string = str_replace('@@slaquote@@', '\\\'', $string); $string = str_replace('@@sladquote@@', '\\"', $string); $res = str_replace($find, $string, $str); return $res; } private function deobfuscateEval($str, $matches) { if (preg_match('~\)+\..{0,30}base64_decode~msi', $str)) { $res = explode(').', $str); $res = implode(')); eval(', $res); return $res; } $res = $str; if (preg_match('~(preg_replace\(["\']/\.\*?/[^"\']+["\']\s*,\s*)[^\),]+(?:[\)\\\\0-5]+;[\'"])?(,\s*["\'][^"\']*["\'])\)+;~msi', $res, $matches)) { $res = str_replace($matches[1], 'eval(', $res); $res = str_replace($matches[2], '', $res); return $res; } if (strpos($res, 'e\x76al') !== false || strpos($res, '\x29') !== false || strpos($res, 'base64_decode("\\x') !== false ) { $res = stripcslashes($res); } if (strpos($res, '"."') !== false) { $res = str_replace('"."', '', $res); } if (preg_match('~((\$\w+)\s*=\s*create_function\(\'\',\s*)[^\)]+\)+;\s*(\2\(\);)~msi', $res, $matches)) { $res = str_replace($matches[1], 'eval(', $res); $res = str_replace($matches[3], '', $res); return $res; } if (preg_match('~eval\s*/\*[\w\s\.:,]+\*/\s*\(~msi', $res, $matches)) { $res = str_replace($matches[0], 'eval(', $res); return $res; } if (preg_match('~\$_(POST|GET|REQUEST|COOKIE)~ms', $res)) { return $res; } $string = substr($res, 5, strlen($res) - 7); $res = $this->unwrapFuncs($string); $res = str_replace($str, $res, $str); return $res; } private function deobfuscateEvalCodeFunc($str, $matches) { $res = substr($str, 5, strlen($str) - 7); $res = $this->unwrapFuncs($res); $res = stripcslashes($res); $res = str_replace($str, $res, $str); return $res; } private function deobfuscateEcho($str, $matches) { $res = $str; $string = $matches[0]; if (preg_match('~\$_(POST|GET|REQUEST|COOKIE)~ms', $res)) { return $res; } $string = substr($string, 5, strlen($string) - 7); $res = $this->unwrapFuncs($string); $res = str_replace($str, $res, $str); return $res; } private function deobfuscateFOPO($str, $matches) { $phpcode = Helpers::formatPHP($str); $phpcode = base64_decode(Helpers::getTextInsideQuotes(Helpers::getEvalCode($phpcode))); if (preg_match('~eval\s*\(\s*\$[\w|]+\s*\(\s*\$[\w|]+\s*\(~msi', $phpcode)) { preg_match_all('~\$\w+\(\$\w+\(\$\w+\("[^"]+"\)+~msi', $phpcode, $matches2); @$phpcode = gzinflate(base64_decode(str_rot13(Helpers::getTextInsideQuotes(end(end($matches2)))))); $old = ''; $hangs = 0; while (($old != $phpcode) && (strlen(strstr($phpcode, 'eval($')) > 0) && (strlen(strstr($phpcode, '__FILE__')) === 0) && $hangs < 30) { $old = $phpcode; $funcs = explode(';', $phpcode); if (count($funcs) == 5) { $phpcode = gzinflate(base64_decode(str_rot13(Helpers::getTextInsideQuotes(Helpers::getEvalCode($phpcode))))); } elseif (count($funcs) == 4) { $phpcode = gzinflate(base64_decode(Helpers::getTextInsideQuotes(Helpers::getEvalCode($phpcode)))); } $hangs++; } $res = str_replace($matches[0], substr($phpcode, 2), $str); } else { $res = str_replace($matches[0], $phpcode, $str); } return $res; } private function deobfuscateFakeIonCube($str, $matches) { $subst_value = 0; $matches[1] = Helpers::calc($matches[1]); $subst_value = intval($matches[1])-21; $code = @pack("H*", preg_replace("/[A-Z,\r,\n]/", "", substr($str, $subst_value))); $res = str_replace($matches[0], $code, $str); return $res; } private function deobfuscateCobra($str, $matches) { $find = $matches[0]; $res = $str; $res = preg_replace_callback( '~eval\(\"return strrev\(base64_decode\(\'([^\']+)\'\)\);\"\)~msi', function ($matches) { return strrev(base64_decode($matches[1])); }, $res ); $res = preg_replace_callback( '~eval\(gzinflate\(base64_decode\(\.\"\'([^\']+)\'\)\)\)\;~msi', function ($matches) { return gzinflate(base64_decode($matches[1])); }, $res ); preg_match('~(\$\w{1,40})\s*=\s*\"([^\"]+)\"\;\s*\1\s*=\s*explode\(\"([^\"]+)\",\s*\s*\1\);~msi', $res, $matches); $var = $matches[1]; $decrypt = base64_decode(current(explode($matches[3], $matches[2]))); $decrypt = preg_replace_callback( '~eval\(\"return strrev\(base64_decode\(\'([^\']+)\'\)\);\"\)~msi', function ($matches) { return strrev(base64_decode($matches[1])); }, $decrypt ); $decrypt = preg_replace_callback( '~eval\(gzinflate\(base64_decode\(\.\"\'([^\']+)\'\)\)\)\;~msi', function ($matches) { return gzinflate(base64_decode($matches[1])); }, $decrypt ); preg_match('~if\(\!function_exists\(\"(\w+)\"\)\)\s*\{\s*function\s*\1\(\$string\)\s*\{\s*\$string\s*=\s*base64_decode\(\$string\)\;\s*\$key\s*=\s*\"(\w+)\"\;~msi', $decrypt, $matches); $decrypt_func = $matches[1]; $xor_key = $matches[2]; $res = preg_replace_callback( '~\\' . $var . '\s*=\s*.*?eval\(' . $decrypt_func . '\(\"([^\"]+)\"\)\)\;\"\)\;~msi', function ($matches) use ($xor_key) { $string = base64_decode($matches[1]); $key = $xor_key; $xor = ""; for ($i = 0, $iMax = strlen($string); $i < $iMax;) { for ($j = 0, $jMax = strlen($key); $j < $jMax; $j++,$i++) { if (isset($string[$i])) { $xor .= $string[$i] ^ $key[$j]; } } } return $xor; }, $res ); $res = str_replace($find, $res, $str); return $res; } private function deobfuscateFlamux($str, $matches) { $str = $matches[0]; $vars = []; preg_match_all('~(\$\w+=[\'"]\w+[\'"];)~', $str, $match); foreach ($match[0] as $var) { $split = explode('=', str_replace(';', '', $var)); $vars[$split[0]] = $split[1]; } $res = ''; preg_match_all('~(\$\w+=\$\w+[\'.]+\$\w+;)~', $str, $match); for ($i = 0, $iMax = count($match[0]); $i < $iMax; $i++) { $split = explode('=', str_replace(';', '', $match[0][$i])); $concats = explode('.', $split[1]); $str_to_concat = ''; foreach ($concats as $concat) { $str_to_concat .= $vars[$concat] ?? ''; } $vars[$split[0]] = $str_to_concat; if ($i === ($iMax - 1)) { $res = gzinflate(base64_decode(base64_decode(str_rot13($str_to_concat)))); } } return $res; } private function deobfuscateDarkShell($str, $matches) { $str = stripcslashes($matches[0]); return $str; } private function deobfuscateWso($str, $matches) { $result = $matches[0]; $contentVar = $matches[8]; $variables = []; preg_match_all('~(\[([-+\(\d*\/\)]+)\])+~', $result, $mathMatches); foreach ($mathMatches[0] as $index => $match) { $search = $mathMatches[2][$index]; $mathResult = Helpers::calculateMathStr($search); $result = str_replace("[$search]", "[$mathResult]", $result); } $dictionary = $matches[2]; $variables = Helpers::getVarsFromDictionary($dictionary, $result); $variables[$matches[6]] = $matches[7]; preg_match_all('~(\$\w+)\.=(\$\w+)~', $result, $matches); foreach ($matches as $index => $match) { $var = $matches[1][$index]; $value = $matches[2][$index]; if (!isset($variables[$var])) { $variables[$var] = (string)$variables[$value] ?? ''; } else { $variables[$var] .= (string)$variables[$value] ?? ''; } } if (isset($variables[$contentVar])) { $result = $variables[$contentVar]; } if (preg_match('~(\$\w+)\s+=\s+(["\'\w\/+]+);(\$\w+)=base64_decode\(\1\);(\$\w+)=gzinflate\(\3\);eval\(\4\);~msi', $result, $match)) { $result = gzinflate(base64_decode($match[2])); } $result = str_replace('<?php', '', $result); return $result; } private function deobfuscateAnonymousFox($str, $matches) { $result = $matches[0]; $string = $matches[7]; $array = strlen(trim($string)); $debuger = ''; for ($one = 0; $one < $array; $one += 2) { $debuger .= pack("C", hexdec(substr($string, $one, 2))); } $string = $debuger; $result = $string . $matches[8] . "';"; return $result; } private function deobfuscateWsoEval($str, $matches) { $result = base64_decode($matches[2]); preg_match('~data:image/png;(.*)">~im', $result, $match); $result = str_replace( array ('%', '#'), array ('/', '+'), $match[1]); $result = gzinflate(base64_decode($result)); return $result; } private function deobfuscateAssertStr($str, $matches) { $result = $matches[1]; $result = str_rot13($result); return $result; } private function deobfuscateEvalFuncFunc($str, $matches) { $result = $matches[15]; $result = base64_decode($result); $result = Helpers::decrypt_T_func($result); return $result; } private function deobfuscateFuncVar($str, $matches) { $arg1 = str_replace($matches[5], '', $matches[3]); $funcName = str_replace($matches[8], '', $matches[7]); $insidefuncName = str_replace($matches[11], '', $matches[10]); if ($funcName === 'create_function') { $result = sprintf('%s(%s(\'%s\');', $insidefuncName, $arg1, $matches[15]); } else { $result = sprintf( '%s = %s(\'%s\',\'%s(%s(%s));\');%s(\'%s\');', $matches[14], $funcName, $matches[13], $insidefuncName, $arg1, $matches[13], $matches[14], $matches[15] ); } return $result; } private function deobfuscateEchoEval($str, $matches) { $content = $matches[4]; $content = str_replace($matches[1], $matches[2], $content); $result = str_replace($matches[3], $content, $matches[5]); return $result; } private function deobfuscateDictionaryVars($str, $matches) { $dictionary = $matches[2]; $dictionary = str_replace("\'", "'", $dictionary); $dictionary = str_replace('\"', '"', $dictionary); $content = $matches[4]; $vars = Helpers::getVarsFromDictionary($dictionary, $matches[0]); if (isset($vars[$matches[6]]) && $vars[$matches[6]] === 'create_function') { $content = str_replace($matches[5], 'eval(' . $matches[7] . ');', $content); } $content = Helpers::replaceVarsFromDictionary($matches[1], $dictionary, $content); foreach ($vars as $key => $value) { $content = str_replace($key, $value, $content); } $content = preg_replace_callback('~\${[\'"](\w+)[\'"]}~msi', function ($m) { return '$' . $m[1]; }, $content); $content = str_replace("''}", "\''}", $content); return $content; } private function deobfuscateConcatVarFunc($str, $matches) { $strVar = ""; if ($matches['concatVar'] !== "") { $strVar = Helpers::concatVariableValues($matches[2], false); } else { if ($matches['strVal'] !== "") { $strVar = $matches['strVal']; } } $result = ""; $iMax = strlen($strVar) / 2; for ($i = 0; $i < $iMax; $i++) { $result .= chr(base_convert(substr($strVar, $i * 2, 2), 16, 10)); } return $result; } private function deobfuscateConcatVarFuncFunc($str, $matches) { $result = $matches[12]; $func1 = Helpers::concatVariableValues($matches[2]); $func2 = Helpers::concatVariableValues($matches[22]); $func3 = Helpers::concatVariableValues($matches[19]); $func4 = Helpers::concatVariableValues($matches[7]); $result = sprintf('eval(%s(%s(%s(%s("%s")))));', $func1, $func2, $func3, $func4, $result); return $result; } private function deobfuscateEvalVarDoubled($str) { $result = $str; preg_match_all('~(\$\w+)\s?=\s?(\w+)\("(\w+)"\);~', $str, $varMatches); foreach ($varMatches[0] as $index => $varMatch) { $var_name = $varMatches[1][$index]; $func_name = $varMatches[2][$index]; $str = $varMatches[3][$index]; if (Helpers::isSafeFunc($func_name)) { $str = @$func_name($str); } $result = str_replace($varMatch, '', $result); $result = str_replace($var_name, $str, $result); } return $result; } private function deobfuscateVarFuncsEcho($str, $matches) { $result = $str; $func = $matches[2]; if (Helpers::isSafeFunc($matches[2])) { $result = @$func($matches[3]); $result = str_replace('<?php', '', $result); } return $result; } private function deobfuscateVarFuncsMany($str, $matches) { if (!isset($matches[4]) && preg_match('~(\$\w+)=((?:\'[\w%]+\'\.?)+);\s?(?:.*?)\s(\$\w+)=((?:\1\[?{?\d+\]?}?\.?)+);~msi', $matches[0], $m)) { $matches[4] = $m[1]; $matches[5] = $m[2]; $matches[6] = $m[3]; $matches[7] = $m[4]; } $result = $matches[0]; $strName = $matches[1]; $dictionaryName = $matches[4]; $dictionaryValue = Helpers::collectStr("$matches[5]", "'"); $vars = Helpers::getVarsFromDictionary($dictionaryValue, "$matches[6]=$matches[7]"); $funcs = []; $result = str_replace("$matches[6]=$matches[7];", "", $result); $vars = array_merge($vars, Helpers::getVarsFromDictionary($dictionaryValue, $result)); $result = preg_replace_callback( '~(\$\w+)\s?=\s?array\([\'"]([\w+\/]+)[\'"]\s?,\s?[\'"]([\w+\/]+)[\'"](?:\s?,[\'"]([\w+\/]+)[\'"]\s?)?\);\s?((?:(?:\$\w+=\s?\w+\(\$\w+,\s?)|(?:return\s?))(join\([\'"]{2},\s?\1\))\s?\)?\s?;)~msi', function ($match) { $joinedVars = join("", [$match[2], $match[3], $match[4]]); $replace = str_replace($match[6], "'$joinedVars'", $match[5]); return $replace; }, $result ); $result = preg_replace_callback( '~global\s(\$\w+);\s?((\$\w+)\s?=\s?[\'"]([\w\/+]+)[\'"];\s?(\$\w+)\s?=\s?[\'"]([\w\/+]+)[\'"];\s?(\$\w+)\s?=\s?[\'"]([\w\/+]+)[\'"];\s?\1\s?\.=\s?"({\3}{\5}{\7})");~', function ($match) { $concatedVars = $match[4] . $match[6] . $match[8]; $replace = str_replace($match[2], sprintf('%s.="%s"', $match[1], $concatedVars), $match[0]); return $replace; }, $result ); $result = preg_replace_callback( '~((\$\w+)\s?=\s?[\'"]([\w\/+=]+)[\'"];\s?(\$\w+)\s?=\s?[\'"]([\w\/+=]+)[\'"];\s?return\s?"({\2}{\4})");~msi', function ($match) { $concatedVars = $match[3] . $match[5]; $replace = str_replace($match[1], sprintf('return "%s"', $concatedVars), $match[0]); return $replace; }, $result ); $result = preg_replace_callback( '~(?:class\s(?<className>\w+)\s?{\s?)?(?:public\s)?function\s(?<methodName>\w+\(\)){\s?(?<codeBlock>.*?;)\s}\s?(?:}\s?)?~msi', function ($match) use (&$funcs, $strName, $dictionaryName, $dictionaryValue) { $str = ""; $isConcat = false; if (preg_match( '~return\s[\'"]([\w+\/+=]+)[\'"];~msi', $match[0], $returnCode )) { $str = $returnCode[1]; } else { if (preg_match( '~global\s(\$\w+);\s?\1\s?\.=\s?["\']([\w+\/+]+)["\'];?~msi', $match[0], $concatCode )) { $str = $concatCode[2]; $isConcat = true; } else { if (preg_match( '~global\s(\$' . substr( $dictionaryName, 1 ) . ');\s*return\s*((?:\s?\1\[?{?\d+\]?}?\s?\.?\s?)+);?~msi', $match[0], $returnCode )) { $str = Helpers::getVarsFromDictionary( $dictionaryValue, sprintf('%s=%s', $dictionaryName, $returnCode[2]) ); $str = $str[$dictionaryName]; $isConcat = false; } } } $funcs[$match['methodName']]['str'] = $str; $funcs[$match['methodName']]['concat'] = $isConcat; return ""; }, $result ); $result = preg_replace_callback( '~(\$[^' . substr($strName, 1) . ']\w+)\s?=\s?(\w+\(\));~ms', function ($match) use ($funcs, &$vars) { if (isset($funcs[$match[2]]) && !$funcs[$match[2]]['concat']) { $vars[$match[1]] = $funcs[$match[2]]['str']; } return ""; }, $result ); foreach ($vars as $name => $var) { $result = str_replace($name, $var, $result); } $result = preg_replace_callback( '~([\w_]+)\s?\(\s?([\w_]+)\s?\(\s?((?:\$' . substr($matches[4], 1) . '[{\[]\d+[\]}]\s?\.?)+)\s?,\s?(\d+)\s?\),\s?((?:\d+,?)+)\);~msi', function ($match) use ($dictionaryValue, $dictionaryName) { $str = Helpers::getVarsFromDictionary( $dictionaryValue, sprintf('%s=%s', $dictionaryName, $match[3]) ); $res = ""; if (Helpers::isSafeFunc($match[2])) { $res = @$match[2]($str[$dictionaryName], $match[4]); } if (Helpers::isSafeFunc($match[1])) { $args = [$res]; $digits = explode(',', $match[5]); foreach ($digits as $digit) { $args[] = (int)$digit; } $reflectionMethod = new ReflectionFunction($match[1]); $res = $reflectionMethod->invokeArgs($args); } return "\"$res\";"; }, $result ); $strToDecode = ""; $regexFinal = str_replace('mainVar', $strName, '~(?:\mainVar\s?=\s?\w+\(\s?\mainVar\s*,\s?["\'](?<concat>[\w+\/]+)[\'"]\s?\)\s?;)|(?:\mainVar\s?=\s?\w+\(\s?\mainVar\s?,\s?(?<concatFunc>\w+\(\))\)\s?;)|(?:\mainVar\s?\.?=\s?(?:\mainVar\.)?\s?["\'](?<concatStr>[\w+\/=]+)[\'"]\s?;)|(?:\mainVar\s?\.?=\s?(?<concatFuncSingle>\w+\(\))\s?;)|(\$\w+\s?=\s?new\s\w+\(\)\s?;\s?\mainVar\s?\.?=\s?\mainVar\s?\.\s?\$\w+->(?<concatFuncClass>\w+\(\)\s?))|(?:(?<func>[^,\s]\w+\(\)))~msi'); $result = preg_replace_callback( $regexFinal, function ($match) use (&$strToDecode, $funcs) { if (isset($match['concat']) && $match['concat'] !== "") { $strToDecode .= $match['concat']; return; } if (isset($match['concatStr']) && $match['concatStr'] !== "") { $strToDecode .= $match['concatStr']; return; } if (isset($match['concatFunc']) && $match['concatFunc'] !== "") { $strToDecode .= $funcs[$match['concatFunc']]['str']; return; } if (isset($match['concatFuncSingle']) && $match['concatFuncSingle'] !== "") { $strToDecode .= $funcs[$match['concatFuncSingle']]['str']; return; } if (isset($match['concatFuncClass']) && $match['concatFuncClass'] !== "") { $strToDecode .= $funcs[$match['concatFuncClass']]['str']; return; } if (isset($match['func']) && $match['func'] !== "") { $strToDecode .= $funcs[$match['func']]['str']; return; } }, $result ); $code = $result; $result = base64_decode($strToDecode); if (preg_match('~((\$\w+)="";).*?((\$\w+)=create_function\(\'(\$\w+,\$\w+)\',\s?(base64_decode\(((?:"[\w+=]+"\.?)+)\))\);).*?(\$\w+\s?=\s?create_function\("",\s?\4\(base64_decode\(\2\),\s?(\$_COOKIE\[\'\w+\'\])\)\s?\);)~msi', $code, $codeMatch)) { $initialCode = base64_decode(Helpers::collectStr($codeMatch[7])); $result = sprintf("function %s(%s){%s}%s='%s';%s(%s,%s);", substr($codeMatch[4], 1), $codeMatch[5], $initialCode, $codeMatch[2], $result, substr($codeMatch[4], 1), $codeMatch[2], $codeMatch[9]); } return $result; } private function deobfuscateGlobalArrayEval($str, $matches) { $result = str_replace($matches[1], "", $str); $dictionary = stripcslashes($matches[3]); $dictionaryVar = stripcslashes($matches[2]); $dictionaryVar = str_replace('{"GLOBALS"}', 'GLOBALS', $dictionaryVar); $result = Helpers::replaceVarsFromDictionary($dictionaryVar, $dictionary, $result); preg_match_all('~(\$GLOBALS\[[\'\w]+\])\s?=\s?[\'"]?([\w\-\_\$]+)["\']?;\s?~msi', $result, $varMatch); foreach ($varMatch[1] as $index => $var) { $result = str_replace($varMatch[0][$index], "", $result); $result = str_replace($varMatch[1][$index], $varMatch[2][$index], $result); } return $result; } private function deobfuscateTinkleShell($str, $matches) { $result = $str; $dictionaryStr = $matches[2]; $decodeKey = Helpers::getDecryptKeyForTinkleShell(strlen($str)); $vars = [ $matches[4] => $matches[5], ]; $result = str_replace(' ', '', $result); $matches[3] = str_replace(' ', '', $matches[3]); preg_match_all('~(\$\w+)=(?:\$\w+\[\'\w\'\+\d+\+\'\w\'\]\.?)+;~msi', $matches[3], $matchVars); foreach ($matchVars[0] as $index => $match) { preg_match_all('~\$\w+\[\'\w\'\+(\d+)\+\'\w\'\]\.?~msi', $match, $values); foreach ($values[1] as $value) { if (!isset($vars[$matchVars[1][$index]])) { $vars[$matchVars[1][$index]] = $dictionaryStr[$value] ?? $value; } else { $vars[$matchVars[1][$index]] .= $dictionaryStr[$value] ?? $value; } } } $result = str_replace($matches[3], "", $result); preg_match_all('~(\$\w+)=(\$\w+)\((\$\w+),(\$\w+)\(""\),"([\w\+]+)"\);~msi', $result, $matchVars); foreach ($matchVars[1] as $index => $varName) { $func = $vars[$matchVars[2][$index]] ?? $matchVars[2][$index]; $arg1 = $vars[$matchVars[3][$index]] ?? $matchVars[3][$index]; $arg2 = $vars[$matchVars[4][$index]] ?? $matchVars[4][$index]; $argStr = $matchVars[5][$index]; if (Helpers::isSafeFunc($func)) { $value = @$func($arg1, $arg2 === 'trim' ? "" : $arg2, $argStr); $vars[$varName] = $value; } $result = str_replace($matchVars[0][$index], '', $result); } $func = $vars[$matches[10]] ?? ''; if (Helpers::isSafeFunc($func)) { $result = @$func($matches[11], $vars[$matches[12]] ?? "", $decodeKey); } $func = $vars[$matches[7]] ?? ''; if (Helpers::isSafeFunc($func)) { $result = @$func($vars[$matches[8]] ?? '', "", $result); } $func = $vars[$matches[6]] ?? ''; if (Helpers::isSafeFunc($func)) { $result = @$func($result); } return $result; } private function deobfuscateWsoFunc($str, $matches) { if (isset($matches['str'])) { return gzinflate(base64_decode($matches['str'])); } return $matches[0]; } private function deobfuscateEvalWanFunc($str, $matches) { $result = gzinflate(base64_decode($matches[5])); for ($i = 0; $i < strlen($result); $i++) { $result[$i] = chr(ord($result[$i]) - (int)$matches[4]); } return $result; } private function deobfuscateFuncFile($str, $matches) { $result = base64_decode($matches[2]); return $result; } private function deobfuscateGulf($str, $matches) { $result = str_replace("'.'", '', str_replace($matches[2], '', $matches[1])); $vars = Helpers::collectVars($matches[2], "'"); $result = Helpers::replaceVarsFromArray($vars, $result); $tempCode = gzinflate(base64_decode($matches[4])); $result .= PHP_EOL . $tempCode; return $result; } private function deobfuscateEvalConcatAsciiChars($str, $matches) { $result = ''; $num = (int)$matches[2]; $str = (string)$matches[3]; $len = strlen($str); for ($i = 0; $i < $len; $i++) { $result .= chr(ord($str[$i]) ^ $num); } $result = str_replace(['<?php', '?>', '', ''], '', $result); return $result; } private function deobfuscateEvalPost($str, $matches) { $result = ''; $vars = Helpers::collectVars($str); $result = str_replace('.', "", $matches[8]); $result = str_replace($matches[7], "", Helpers::replaceVarsFromArray($vars, $result)); $result = base64_decode(base64_decode($result)); return $result; } private function deobfuscateEvalPregStr($str, $matches) { $result = sprintf("%s'%s'%s", stripcslashes($matches[1]), $matches[2], stripcslashes($matches[3])); $result = $this->unwrapFuncs($result); return $result; } private function deobfuscateClassDestructFunc($str, $matches) { $result = $str; $arg1 = $matches[1] ^ stripcslashes($matches[2]); $arg2 = $matches[3] ^ stripcslashes($matches[4]); if ($arg1 === 'assert' && $arg2 === 'eval') { $result = base64_decode($matches[5]); } return $result; } private function deobfuscateCreateFuncEval($str, $matches) { $result = $str; $func = stripcslashes($matches[1]); if (Helpers::isSafeFunc($func)) { $result = @$func($matches[2]); } return $result; } private function deobfuscateEvalCreateFunc($str, $matches) { $result = $str; $arr = [ 0 => $matches[4], 1 => $matches[5], 2 => $matches[6], 3 => $matches[13], ]; $func_1 = Helpers::decodeEvalCreateFunc_1($arr); if (strtoupper($func_1) === 'CREATE_FUNCTION') { $arr[3] = $matches[10]; $result = Helpers::decodeEvalCreateFunc_1($arr); $result = preg_replace_callback('~base64_decode\([\'"]([\w=]+)[\'"]\)~msi', function ($match) { $extraCode = $this->unwrapFuncs($match[0]); if (preg_match('~if\(!function_exists\([\'"](\w+)[\'"]\)\){function\s?\1\((\$\w+)\){(\$\w+)=array\(\'([{\w\]]+)\',\'([\w`]+)\',\2\);for\((\$\w+)=0;\6<3;\6\+\+\){for\((\$\w+)=0;\7<strlen\(\3\[\6\]\);\7\+\+\)\s?\3\[\6\]\[\7\]\s?=\s?chr\(ord\(\3\[\6\]\[\7\]\)-1\);if\(\6==1\)\s?\3\[2\]=\3\[0\]\(\3\[1\]\(\3\[2\]\)\);}\s?return\s?\3\[2\];}(\$\w+)=["\']([\w\+\/=]+)["\'];(\$\w+)=[\'"]\1[\'"];(\$\w+)=\10\([\'"]([\w=]+)[\'"]\);\$\w+=\11\(\'\',\10\(\8\)\);\$\w+\(\);}~msi', $extraCode, $matchCode)) { $arr = [ 0 => $matchCode[4], 1 => $matchCode[5], 2 => $matchCode[12], ]; $func_1 = Helpers::decodeEvalCreateFunc_2($arr); if (strtoupper($func_1) === 'CREATE_FUNCTION') { $arr[2] = $matchCode[9]; $extraCode = str_replace($matchCode[0], Helpers::decodeEvalCreateFunc_2($arr), $extraCode); } } return $extraCode; }, $result); } return $result; } private function deobfuscateEvalFuncVars($str, $matches) { $result = $str; $vars = Helpers::collectFuncVars($matches[1]); $result = Helpers::replaceVarsFromArray($vars, $matches[2]); if (strpos($result, 'eval') !== false) { $result = $this->unwrapFuncs($result); } return $result; } private function deobfuscateDictionaryCreateFuncs($str, $matches) { $delimiter = '||||'; $result = $str; $vars = Helpers::getVarsFromDictionary($matches[3], $matches[4]); $result = $matches[7].$delimiter.$matches[8]; $result = preg_replace_callback('~\${"[\\\\\w]+"}\["[\\\\\w]+"\]~msi', function ($match) { return stripcslashes($match[0]); }, $result); $result = preg_replace_callback('~\${"GLOBALS"}\["(\w+)"\]~msi', function ($match) use ($vars) { $varName = '$' . $match[1]; return $vars[$varName] ?? $varName; }, $result); $string = $matches[9]; $str1 = substr($string, 0, 5); $str2 = substr($string, 7, strlen($string) - 14); $str3 = substr($string, -5); $decodedStr = gzinflate(base64_decode($str1 . $str2 . $str3)); $delimCode = explode($delimiter, $result); $result = str_replace($matches[6], sprintf("'%s'.(%s)", $decodedStr, stripslashes($delimCode[1])), $delimCode[0]); $result = $matches[5] . $result; return $result; } private function deobfuscateEvalPostDictionary($str, $matches) { $finalCode = $matches[19]; $result = str_replace($finalCode, '', $str); $arrayNum = []; $arrayStr = []; $regex = '~"?([\w\.\/\s]+)"?,?\s?~msi'; preg_match_all($regex, $matches[6], $arrayStrMatches); foreach ($arrayStrMatches[1] as $arrayStrMatch) { $arrayStr[] = $arrayStrMatch; } $result = Helpers::replaceVarsFromDictionary($matches[5], $arrayStr, $result); $vars = Helpers::collectVars($result, "'"); $regexSpecialVars = '~(\$\w+)([()\]])~msi'; $code1 = preg_replace_callback($regexSpecialVars, function ($match) use ($vars) { $res = $vars[$match[1]] ?? $match[1]; if ($match[2] === ']' || $match[2] === ')') { $res = "'$res'"; } return $res . $match[2]; }, $matches[20]); $code2 = str_replace($matches[18], '$_POST[\'' . ($vars[$matches[18]] ?? $matches[18]) . '\']', $matches[21]); $code2 = Helpers::replaceVarsFromArray($vars, $code2); $tempStr = Helpers::replaceVarsFromDictionary($matches[5], $arrayStr, $matches[22]); $vars = Helpers::collectVars($tempStr, "'"); $code3 = Helpers::replaceVarsFromArray($vars, $matches[23]); $code3 = preg_replace_callback($regexSpecialVars, function ($match) use ($vars) { $res = $vars[$match[1]] ?? $match[1]; if ($match[2] === ']' || $match[2] === ')') { $res = "'$res'"; } return $res . $match[2]; }, $matches[23]); $result = $code1 . $code2 . $code3; return $result; } private function deobfuscateDropInclude($str, $matches) { $key = basename($matches[2]); $encrypted = base64_decode(base64_decode($matches[4])); return $this->deobfuscateXorFName($encrypted, null, $key); } private function deobfuscateEvalComments($str, $matches) { return preg_replace('~/\*[^/]*/?\*/~msi', '', $str); } private function deobfuscateStrrevUrldecodeEval($str, $matches) { return strrev(urldecode($matches[2])); } private function deobfuscateEvalPackStrrot($str, $matches) { return pack("H*", str_rot13($matches[3])); } private function deobfuscateUrlDecodeTable($str, $matches) { $matches[3] = str_replace([" ", "\r", "\n", "\t", "'.'"], '', $matches[3]); $matches[5] = str_replace([" ", "'", ">"], '', $matches[5]); $temp = explode(',', $matches[5]); $array = []; foreach ($temp as $value) { $temp = explode("=", $value); $array[$temp[0]] = $temp[1]; } $res = ''; for ($i=0, $iMax = strlen($matches[3]); $i < $iMax; $i++) { $res .= isset($array[$matches[3][$i]]) ? $array[$matches[3][$i]] : $matches[3][$i]; } $res = substr(rawurldecode($res), 1, -2); return $res; } private function deobfuscateEvalVarChar($str, $matches) { $chars = Helpers::collectVarsChars($matches[1]); $vars = Helpers::assembleStrings($chars, $matches[2]); $str = str_replace($matches[1], '', $str); $str = str_replace($matches[2], '', $str); foreach ($vars as $var => $func) { $str = str_replace($var, $func, $str); } return $str; } private function deobfuscateEvalVarFunc($str, $matches) { $var = Helpers::collectFuncVars($matches[1]); return $var[$matches[4]]; } private function deobfuscateEvalVarsFuncs($str, $matches) { $vars = Helpers::collectVars($matches[1]); $vars[$matches[5]] = $matches[2]; $res = Helpers::replaceVarsFromArray($vars, $matches[3]); return $res; } private function deobfuscateEvalFileContent($str, $matches) { $res = $matches[4]; $vars = Helpers::getVarsFromDictionary($matches[2], $matches[3]); $vars[$matches[1]] = $matches[2]; $res = Helpers::replaceVarsFromArray($vars, $res); if (preg_match('~\$[^=]{0,50}=file\(str_replace\(\'\\\\{2}\',\'/\',__FILE__\)\);(\$[^=]{0,50})=array_pop\(\$[^)]{0,50}\);(\$[^=]{0,50})=array_pop\(\$[^)]{0,50}\);\$[^=]{0,50}=implode\(\'\',\$[^)]{0,50}\)\.substr\(\$[^,]{0,50},0,strrpos\(\$[^,]{0,50},\'@ev\'\)\);\$[^=]{0,50}=md5\(\$[^)]{0,50}\);(?:\$[^=]{0,50}=){0,3}NULL;@eval\(base64_decode\(str_replace\(\$[^,]{0,50},\'\',strtr\(\'~msi', $res, $match)) { $arr = explode(PHP_EOL, $str); foreach ($arr as $index => $val) { if ($index !== count($arr) - 1) { $arr[$index] .= PHP_EOL; } } $arr1 = array_pop($arr); $arr2 = array_pop($arr); $vars[$match[1]] = $arr1; $vars[$match[2]] = $arr2; $res = implode('', $arr) . substr($arr2, 0, strrpos($arr2, '@ev')); $md5 = md5($res); $res = base64_decode(str_replace($md5, '', strtr($matches[5], $matches[6], $matches[7]))); if (preg_match('~eval\((?:\$[^(]{0,50}\(){2}\$[^,]{0,50},\s{0,10}\'([^\']{1,500})\',\s{0,10}\'([^\']{1,500})\'\){3};~msi', $res, $match)) { $res = Helpers::replaceVarsFromArray($vars, $res); if (preg_match('~eval\(base64_decode\(strtr\(~msi', $res)) { $res = base64_decode(strtr($arr1, $match[1], $match[2])); $res = '<?php ' . PHP_EOL . $res; } } } return $res; } private function deobfuscateEvalArrayVar($str, $matches) { $result = $str; $array1 = str_split($matches[2]); $array2 = []; $arrayStr = base64_decode($matches[1]); if (preg_match('~(\$\w+)=\[(["\'][\w\[\];\'"|,.{}+=/&][\'"]=>["\'][\w\[\];\'"|,.{}+=/&][\'"],?\s{0,50})+\];~msi', $arrayStr, $match)) { preg_match_all('~["\']([\w\[\];\'"|,.{}+=/&])[\'"]=>["\']([\w\[\];\'"|,.{}+=/&])[\'"]~msi', $match[0], $arrayMatches); foreach ($arrayMatches[1] as $index => $arrayMatch) { $array2[$arrayMatches[1][$index]] = $arrayMatches[2][$index]; } $newStr = ""; foreach ($array1 as $xx) { foreach ($array2 as $main => $val) { if ($xx == (string)$val) { $newStr .= $main; break; } } } $result = gzinflate(base64_decode($newStr)); } return $result; } private function deobfuscateEvalConcatedVars($str, $matches) { $iter = [2 => $matches[2], 4 => $matches[4], 6 => $matches[6], 12 => $matches[12]]; foreach ($iter as $index => $item) { $matches[$index] = preg_replace_callback('~chr\((\d+)\)~msi', function ($match) use (&$matches) { return '\'' . chr($match[1]) . '\''; }, $matches[$index]); $matches[$index] = Helpers::concatStr($matches[$index]); $matches[$index] = base64_decode($matches[$index]); } $result = str_replace($matches[1], $matches[2], $matches[7]); $result = str_replace($matches[8], 0, $result); $result = str_replace($matches[10], 0, $result); if (Helpers::isSafeFunc($matches[4])) { $code = @$matches[4]($matches[6]); $code = gzinflate(str_rot13($code)); } else { $code = 'gzinflate(str_rot13(\'' . $matches[4] . '\')));'; } $result .= $matches[12] . $code; return $result; } private function deobfuscateEchoEscapedStr($str, $matches) { $i = 1; $result = $matches[1]; $result = str_replace('\\\\\\', '\\\\', $result); while ($i < 3) { if (!preg_match('~(\\\\x[0-9a-f]{2,3})~msi', $result)) { break; } $result = preg_replace_callback('~(\\\\x[0-9a-f]{2,3})~msi', function ($m) { return stripcslashes($m[1]); }, $result); $i++; } $result = stripslashes($result); $vars = Helpers::collectVars($result); $result = preg_replace_callback('~(?<!{)\${[\'"]GLOBALS[\'"]}\[[\'"](\w+)[\'"]\]=[\'"](\w+)[\'"];~msi', function ($m) use (&$vars) { $vars['$' . $m[1]] = $m[2]; return ''; }, $result); $result = Helpers::replaceVarsFromArray($vars, $result); foreach ($vars as $name => $val) { $result = str_replace("$val=\"$val\";", '', $result); } return $result; } public function deobfuscateFilePutDecodedContents($str, $matches) { $res = $str; $content = base64_decode($matches[2]); $res = str_replace($matches[1], $content, $res); $res = preg_replace_callback('~chr\((\d+)\)~msi', function ($match) use (&$matches) { return '\'' . chr($match[1]) . '\''; }, $res); $res = Helpers::concatStringsInContent($res); $res = preg_replace_callback('~base64_decode\([\'"]([\w=]+)[\'"]\)~msi', function ($m) { return '\'' . base64_decode($m[1]) . '\''; }, $res); $vars = Helpers::collectVars($res); $res = Helpers::replaceVarsFromArray($vars, $res); $res = Helpers::removeDuplicatedStrVars($res); return $res; } public function deobfuscatePregReplaceStr($str, $matches) { $res = stripcslashes($matches[1]); return $res; } public function deobfuscateEvalImplodedArrStr($str, $matches) { function decode($str) { return chr(ord($str) - 1); } $split = str_split(stripcslashes($matches[2])); $map = array_map("decode", $split); $res = implode($map); return $res; } public function deobfuscatePregReplaceCodeContent($str, $matches) { $func = stripcslashes($matches[5]); $res = $matches[2]; if (preg_match('~eval\(preg_replace\([\'"]/([^/])/[\'"],\s?[\'"](.*?)[\'"],\s?(\$\w+)\)\);~msi', $func, $match)) { if ($match[3] === $matches[1]) { $res = str_replace($match[1], stripcslashes($match[2]), $res); } } $vars = []; $res = preg_replace_callback('~(\$\w+)\s?=\s?([\'"])(.*?)\2;~msi', function ($m) use (&$vars) { $value = $m[3]; if ($m[2] === '"') { $value = stripcslashes($value); } $vars[$m[1]] = $value; return sprintf('%s=\'%s\';', $m[1], $value); }, $res); $arrayVar = []; $arrayVarName = ''; if (preg_match('~(\$\w+)\s?=\s?array\((?:\'[^\']+\',?)+\);~msi', $res, $m)) { $arrayVarName = $m[1]; preg_match_all('~\'([^\']+)\',?~msi', $m[0], $arrMatch, PREG_PATTERN_ORDER); if (isset($arrMatch[1])) { foreach ($arrMatch[1] as $arr) { $arrayVar[] = $arr; } } } if (preg_match('~(\$\w+)\((\$\w+),\s?(\$\w+)\s?\.\s?\'\(((?:["\']\w+[\'"],?)+)\)[\'"]\s?\.\s?(\$\w+),\s?null\);~msi', $res, $match)) { $arrayVar2 = []; preg_match_all('~[\'"](\w+)[\'"],?~msi', $match[4], $arrMatch2, PREG_PATTERN_ORDER); if (isset($arrMatch2[1])) { foreach ($arrMatch2[1] as $arr) { $arrayVar2[] = $arr; } } if (isset($vars[$match[5]]) && (preg_match('~,\s?(\$\w+),\s?(\$\w+)\)\);~msi', $vars[$match[5]], $m) && $m[1] === $arrayVarName && isset($vars[$m[2]]) )) { $res = str_replace($arrayVar2, $arrayVar, $vars[$m[2]]); } } return $res; } public function deobfuscateSistemitComEnc($str, $matches) { $res = gzinflate(base64_decode($matches[2])); preg_match_all('~\$\w+\s*=\s*\[((\'[^\']+\',?)+)~msi', $matches[4], $replace, PREG_SET_ORDER); $find = explode("','", substr($replace[0][1], 1, -1)); $replace = explode("','", substr($replace[1][1], 1, -1)); $res = str_replace($find, $replace, $res); return $res; } public function deobfuscateConcatVarsReplaceEval($str, $matches) { $res = Helpers::concatVariableValues($matches[1]); $res = str_replace($matches[5], '', $res); $res = base64_decode($res); return $res; } public function deobfuscateEvalVarFunc2($str, $matches) { return $this->unwrapFuncs($matches[6]); } public function deobfuscateEvalArrays($str, $matches) { $res = str_replace('\'\'', '@@empty@@', $str); $vars = explode('", "', substr($matches[10], 1, -1)); $res = preg_replace_callback('~\\' . $matches[9] . '\[(\d+)\]\s*\.?\s*~msi', function($m) use ($vars) { return "'" . $vars[(int)$m[1]] . "'"; }, $res); $res = str_replace('\'\'', '', $res); $res = str_replace('@@empty@@', '\'\'', $res); $res = str_replace($matches[8], '', $res); preg_match_all('~(\$\w+)\s*=\s*\'([^\']+)\';~msi', $res, $m, PREG_SET_ORDER); $vars = []; foreach ($m as $var) { $vars[$var[1]] = '\'' . $var[2] . '\''; $res = str_replace($var[0], '', $res); } $res = Helpers::replaceVarsFromArray($vars, $res); return $res; } public function deobfuscatePregReplaceVar($str, $matches) { $result = stripcslashes($matches[2]); $regex = stripcslashes($matches[1]); if ($regex === '.*') { return $result; } $result = preg_replace_callback($regex, function ($m) { return ''; }, $result); return $result; } public function deobfuscateEvalBinHexVar($str, $matches) { $func1 = stripcslashes($matches[2]); $func2 = stripcslashes($matches[4]); $result = ''; if (Helpers::isSafeFunc($func2) && Helpers::isSafeFunc($func1)) { $result = '?>' . @$func1(@$func2($matches[6])); } else { $result = sprintf("'?>'.%s(%s('%s');", $func1, $func2, $matches[6]); } return $result; } public function deobfuscateEvalFuncTwoArgs($str, $matches) { $arg1 = base64_decode($matches[5]); $arg2 = $matches[6]; $result = ""; for ($o = 0; $o < strlen($arg1);) { for ($u = 0; $u < strlen($arg2); $u++, $o++) { $result .= $arg1[$o] ^ $arg2[$u]; } } return $result; } public function deobfuscateEvalVarReplace($str, $matches) { $res = $matches[3]; $replaces = explode(';', $matches[4]); foreach ($replaces as $replace) { if (preg_match('~(\$\w+)=str_replace\(\'([^\']+)\',\s*\'(\w)\',\s*\1\);~msi', $replace, $m)) { $res = str_replace($m[2], $m[3], $res); } } $res = base64_decode($res); return $res; } public function deobfuscateEvalPregReplaceFuncs($str, $matches) { $result = $str; $func1Str = preg_replace('/' . $matches[3] . '/', "", $matches[2]); $func2Str = preg_replace('/' . $matches[6] . '/', "", $matches[5]); $strToDecode = ''; preg_match_all('~[\'"]([^\'"]+)[\'"],?~msi', $matches[8], $strMatches, PREG_SET_ORDER); foreach ($strMatches as $index => $strMatch) { if ($index > 0) { $strToDecode .= PHP_EOL; } $strToDecode .= $strMatch[1]; } $result = @$func2Str($strToDecode); if (preg_match('~eval\(\$\w+\);~msi', $func1Str) && Helpers::isSafeFunc($func2Str)) { $result = @$func2Str($strToDecode); $result = stripcslashes($result); $vars = Helpers::collectVars($result); if (preg_match('~\$\w+=\$\w+\([\'"]\([\'"],__FILE.*?(?:\$\w+\(){3}[\'"][^\'"]+[\'"]\)\)\)\);~msi', $result, $m)) { $result = $m[0]; } $result = Helpers::replaceVarsFromArray($vars, $result); $result = preg_replace_callback('~gzinflate\(base64_decode\(str_rot13\(["\']([^\'"]+)[\'"]\)\)\)~msi', function ($m) { return gzinflate(base64_decode(str_rot13($m[1]))); }, $result); } return $result; } public function deobfuscateEvalVarSlashed($str, $matches) { $vars = Helpers::collectVars($matches[1]); $result = Helpers::replaceVarsFromArray($vars, $matches[2]); $result = $this->unwrapFuncs($result); return $result; } public function deobfuscateUrlMd5Passwd($str, $matches) { while(preg_match('~((?:(\$\w+)=\'[^;]+\';)+)~mis', $str, $matches2)) { $vars = Helpers::collectVars($matches2[1], "'"); $str = Helpers::replaceVarsFromArray($vars, $str, true); $str = preg_replace_callback('~str_rot13\(urldecode\(\'([%\da-f]+)\'\)\)~mis', function($m) { return "'" . str_rot13(urldecode($m[1])) . "'"; }, $str); $str = str_replace($matches2[0], '', $str); } return $str; } public function deobfuscateBlackScorpShell($str, $matches) { $vars = Helpers::collectVars($matches[2], "'"); $vars2 = Helpers::collectVars($matches[3], "'"); array_walk($vars2, function(&$var) { $var = "'$var'"; }); $str = gzinflate(base64_decode($vars2[$matches[5]])); $str = Helpers::replaceVarsFromArray($vars, $str, true); $str = Helpers::replaceVarsFromArray($vars2, $str); $str = str_ireplace('assert', 'eval', $str); return $str; } public function deobfuscateManyDictionaryVars($str, $matches) { $vars = Helpers::collectVars($matches[1], "'"); $result = $matches[2]; foreach ($vars as $dictName => $dictVal) { $result = preg_replace_callback( '~\\' . $dictName . '[\[{][\'"]?(\d+)[\'"]?[\]}]~msi', function ($m) use ($dictVal) { return "'" . $dictVal[(int)$m[1]] . "'"; }, $result ); } $result = Helpers::replaceVarsFromArray($vars, $result, true, true); $result = preg_replace_callback('~(\.?)\s?[\'"]([\w=\+/()\$,;:"\s?\[\]]+)[\'"]\s?~msi', function ($m) { return $m[2]; }, $result); return $result; } public function deobfuscateEvalBuffer($str, $matches) { $result = $matches[4]; preg_match_all('~"([^"]+)"~msi', $matches[2], $arrMatches, PREG_SET_ORDER); $array = []; foreach ($arrMatches as $arrMatch) { $array[] = stripcslashes($arrMatch[1]); } $result = str_replace($array, '', $result); $result = gzinflate(base64_decode($result)); return $result; } public function deobfuscateEvalArrayWalkFunc($str, $matches) { $result = stripcslashes($matches[1]) . '?>' . PHP_EOL; $encodedStr = ''; preg_match_all('~(?:"([^"]{1,500})"){1,500}~msi', $matches[2], $arrayMatches, PREG_SET_ORDER); foreach ($arrayMatches as $arrayMatch) { $encodedStr .= stripcslashes($arrayMatch[1]); } $result .= base64_decode(str_rot13($encodedStr)); return $result; } public function deobfuscateEvalDictionaryVars($str, $matches) { $result = $str; $vars = Helpers::collectVars($matches[1]); $vars[$matches[2]] = $matches[3]; $vars = Helpers::getVarsFromDictionaryDynamically($vars, $matches[1]); $func = $vars[$matches[5]] ?? null; if ($func && Helpers::isSafeFunc($func)) { $result = @$func($matches[6]); } $result = Helpers::replaceVarsFromArray($vars, $result); return $result; } public function deobfuscateEvalSubstrVal($str, $matches) { $result = strtr( substr($matches[2], (int)$matches[3] * (int)$matches[4]), substr($matches[2], (int)$matches[5], (int)$matches[6]), substr($matches[2], (int)$matches[7], (int)$matches[8]) ); return '?> ' . base64_decode($result); } public function deobfuscateEvalFuncXored($str, $matches) { $vars = Helpers::collectFuncVars($str); $result = Helpers::replaceVarsFromArray($vars, $str); if (preg_match('~\$\w+\s?=\s?gzinflate\(base64_decode\(.*?strlen.*?chr\(\(ord.*?\^~msi', $result)) { $encodedStr = gzinflate(base64_decode($matches[1])); $len = strlen($encodedStr); $result = ''; for ($i = 0; $i < $len; $i++) { $result .= chr((ord($encodedStr[$i]) ^ (int)$matches[3])); } } return $result; } public function deobfuscateEvalFileContentOffset($str, $matches) { $result = $matches[1]; $encodedStr = substr($str, (int)$matches[3]); $result = str_replace($matches[2], "'$encodedStr'", $result); return '<?php ' . $this->unwrapFuncs($result); } public function deobfuscateEvalFuncExplodedContent($str, $matches) { $result = $str; $decodedStr = trim(trim($matches[7], ";"), '"'); $strMD5 = md5($matches[1]); $result = base64_decode( str_replace($strMD5, '', strtr($decodedStr . $matches[4], $matches[5], $matches[6])) ); return $result; } public function deobfuscateEvalEncryptedVars($str, $matches) { $result = $str; $vars_str = preg_replace_callback('~(\d{1,10}\.\d{1,10})\s?\*\s?(\d{1,10})~msi', function ($m) { $res = (double)($m[1]) * (int)$m[2]; return "'$res'"; }, $matches[1]); $vars_str = str_replace('"', "'", Helpers::normalize($vars_str)); $vars = Helpers::collectVars($vars_str, "'"); $vars_str = Helpers::replaceVarsFromArray($vars, $vars_str); $vars = Helpers::collectFuncVars($vars_str, $vars); $vars_str = Helpers::removeDuplicatedStrVars($vars_str); if ($a = preg_match('~(\$\w{1,50})=openssl_decrypt\(base64_decode\([\'"]([^\'"]+)[\'"]\),\'AES-256-CBC\',substr\(hash\(\'SHA256\',[\'"]([^\'"]+)[\'"],true\),0,32\),OPENSSL_RAW_DATA,([^\)]{0,50})\);~msi', $vars_str, $varMatch)) { $vars[$varMatch[1]] = openssl_decrypt(base64_decode($varMatch[2]), 'AES-256-CBC', substr(hash('SHA256', $varMatch[3], true), 0, 32), OPENSSL_RAW_DATA, $varMatch[4]); } $result = Helpers::replaceVarsFromArray($vars, str_replace(' ', '', $matches[7])); $result = str_replace($matches[4], str_replace($matches[5], '', "'$matches[6]'"), $result); return $this->unwrapFuncs($result); } public function deobfuscateEvalLoveHateFuncs($str, $matches) { $result = $matches[7]; $result .= gzinflate(base64_decode($matches[4])); /* hate function */ $finalPHPCode = null; $problems = explode(".", gzinflate(base64_decode($matches[2]))); for ($mistake = 0; $mistake < count($problems); $mistake += strlen($matches[6])) { for ($hug = 0; $hug < strlen($matches[6]); $hug++) { $past = (int)$problems[$mistake + $hug]; $present = (int)ord(substr($matches[6], $hug, 1)); $sweet = $past - $present; $finalPHPCode .= chr($sweet); } } $finalPHPCode = gzinflate(base64_decode($finalPHPCode)); $result .= PHP_EOL . $finalPHPCode; return $result; } public function deobfuscateXoredKey($str, $matches) { $encrypted = base64_decode($matches[4]); $key = $matches[7]; $res = ''; for ($i = 0, $iMax = strlen($encrypted); $i < $iMax; ) { for ($j = 0; $j < strlen($key) && $i < strlen($encrypted); $j++, $i++) { $res .= $encrypted[$i] ^ $key[$j]; } } $res = base64_decode($res); return $res; } public function deobfuscateEvalGzB64($str, $matches) { $res = ''; preg_match_all('~eval\(\$\w+\(\$\w+\(\'([^\']+)\'\)+;~msi', $str, $m, PREG_SET_ORDER); foreach ($m as $match) { $res .= gzuncompress(base64_decode($match[1])) . "\n"; } return $res; } public function deobfuscateEvalArrayB64($str, $matches) { $res = ''; if (preg_match('~function\s*(_\d+)\((\$\w+)\)\s*{(\$\w+)=Array\(\'([^)]+)\'\);return\s*base64_decode\(\3\[\2\]\);~msi', $str, $found)) { $strlist = explode("','", $found[4]); $res = preg_replace_callback( '|' . $found[1] . '\((\d+)\)|smi', function ($m) use ($strlist) { return "'" . addcslashes(base64_decode($strlist[$m[1]]), '\\\'') . "'"; }, $str ); $res = str_replace($matches[1], '', $res); return $res; } } public function deobfuscateManyBase64DecodeContent($str) { $res = $str; $res = preg_replace_callback('~base64_decode\([\'"]([^\'"]+)[\'"]\)~msi', function ($m) { return "'" . base64_decode($m[1]) . "'"; }, $res); return $res; } public function deobfuscateEvalEscapedCharsContent($str, $matches) { $res = $matches[2] . "'" . stripcslashes($matches[1]) . "')"; return $this->unwrapFuncs($res); } public function deobfuscateEvalFuncBinary($str, $matches) { $binaryVals = hex2bin($matches[2]); $res = Helpers::decodeEvalFuncBinary($binaryVals); return $res; } public function deobfuscateEvalPackFuncs($str, $matches) { $res = stripcslashes($matches[3]) . $matches[4]; return $res; } public function deobfuscateParseStrFunc($str, $matches) { parse_str(Helpers::concatStr($matches[1]), $vars); $res = Helpers::replaceVarsByArrayName($matches[2], $vars, $matches[4]); $res = $this->unwrapFuncs($res . $matches[5] . ')'); return $res; } public function deobfuscateEvalGzinflate($str, $match) { $res = stripcslashes($match[2]); $res = str_replace('"."', '', $res); return 'eval(' . $res . ');'; } public function deobfuscateFuncVars($str, $matches) { $key = $matches[3]; $res = $matches[7]; $vars = [$matches[4] => preg_replace($matches[5], "", $matches[6])]; preg_match_all('~(\$\w{1,50})\s?=\s?(?:(\$\w{1,50})\(\)\s?\.\s?)?\w{1,50}\(\\' . $matches[4] .'\(("[^"]+")\)\);~msi', $str, $match, PREG_SET_ORDER); foreach ($match as $matchVar) { $value = Helpers::decodeFuncVars($key,$this->unwrapFuncs($vars[$matches[4]] . '(' . $matchVar[3] . ')')); if ($matchVar[2] !== '') { $func = $vars[$matchVar[2]] ?? $matchVar[2]; $value = $func . '() . \'' . $value . '\''; } $vars[$matchVar[1]] = $value; } foreach ($vars as $name => $val) { $res = str_replace($name, $val, $res); } return $res; } public function deobfuscateDictVars($str, $match) { $res = Helpers::replaceVarsFromDictionary($match[1], $match[2], $match[3]); $res = gzinflate(base64_decode(substr($res, 2, -3))); return $res; } /*************************************************************************************************************/ /* JS deobfuscators */ /*************************************************************************************************************/ private function deobfuscateJS_fromCharCode($str, $matches) { $result = ''; $chars = explode(',', $matches[1]); foreach ($chars as $char) { $result .= chr((int)trim($char)); } return $result; } private function deobfuscateJS_unescapeContentFuncWrapped($str, $matches) { $result = ''; $functionCode = urldecode($matches[1]); $functionName = urldecode($matches[2]); $strDecoded = $matches[3]; if (preg_match('~function\s?(\w{1,50})\(\w{1,50}\)\s{0,50}{\s{0,50}var\s?\w{1,50}\s?=\s?[\'"]{2};\s{0,50}var\s?\w{1,50}\s?=\s?\w{1,50}\.split\("(\d+)"\);\s{0,50}\w{1,50}\s?=\s?unescape\(\w{1,50}\[0\]\);\s{0,50}\w{1,50}\s?=\s?unescape\(\w{1,50}\[1\]\s?\+\s?"(\d{1,50})"\);\s{0,50}for\(\s?var\s?\w{1,50}\s?=\s?0;\s?\w{1,50}\s?<\s?\w{1,50}\.length;\s?\w{1,50}\+\+\)\s?{\s{0,50}\w{1,50}\s?\+=\s?String\.fromCharCode\(\(parseInt\(\w{1,50}\.charAt\(\w{1,50}%\w{1,50}\.length\)\)\^\w{1,50}\.charCodeAt\(\w{1,50}\)\)\+-2\);\s{0,50}}\s{0,50}return\s\w{1,50};\s{0,50}}~msi', $functionCode, $match) && strpos($functionName, $match[1])) { $tmp = explode((string)$match[2], $strDecoded); $s = urldecode($tmp[0]); $k = urldecode($tmp[1] . (string)$match[3]); $kLen = strlen($k); $sLen = strlen($s); for ($i = 0; $i < $sLen; $i++) { $result .= chr(((int)($k[$i % $kLen]) ^ ord($s[$i])) - 2); } } else { $result = $matches[3]; $result = str_replace($matches[1], $functionCode, $result); $result = str_replace($matches[2], $functionCode, $result); } return $result; } /*************************************************************************************************************/ /* PYTHON deobfuscators */ /*************************************************************************************************************/ private function deobfuscatePY_evalCompileStr($str, $matches) { return gzuncompress(base64_decode($matches[1])); } } /** * Class Factory. */ class Factory { /** * @var Factory */ private static $instance; /** * @var array */ private static $config; /** * Factory constructor. * * @throws Exception */ private function __construct() { } /** * Instantiate and return a factory. * * @return Factory * @throws Exception */ public static function instance() { if (self::$instance === null) { self::$instance = new self(); } return self::$instance; } /** * Configure a factory. * * This method can be called only once. * * @param array $config * @throws Exception */ public static function configure($config = []) { if (self::isConfigured()) { throw new Exception('The Factory::configure() method can be called only once.'); } self::$config = $config; } /** * Return whether a factory is configured or not. * * @return bool */ public static function isConfigured() { return self::$config !== null; } /** * Creates and returns an instance of a particular class. * * @param string $class * * @param array $constructorArgs * @return mixed * @throws Exception */ public function create($class, $constructorArgs = []) { if (!isset(self::$config[$class])) { throw new Exception("The factory is not contains configuration for '{$class}'."); } if (is_callable(self::$config[$class])) { return call_user_func(self::$config[$class], $constructorArgs); } else { return new self::$config[$class](...$constructorArgs); } } } class Template { protected $html; protected $variables = []; /** * Template constructor. * * @param string $html */ public function __construct($html) { $this->html = $html; } /** * @param $html * * @return Template */ public static function create($html) { return new static($html); } /** * @param $key * @param $value */ public function set($key, $value) { $this->variables[$key] = $value; } /** * @return string */ public function render() { if (!empty($this->variables)) { foreach ($this->variables as $key => $value) { $this->html = str_replace("@@$key@@", $value, $this->html); } } return $this->html; } } class Translate { const LANG_EN = 'EN'; const LANG_RU = 'RU'; /** * @var string */ private static $lang = self::LANG_EN; /** * @param $lang */ public static function setLang($lang) { self::$lang = $lang; } /** * @param string $key * @param null|array $params * * @param null|string $language * * @return string */ public static function getStr($key, $params = null, $language = null) { if ($language && in_array($language, [self::LANG_RU, self::LANG_EN])) { $lang = $language; } else { $lang = self::$lang; } $result = ($lang === self::LANG_RU) ? TranslateList::RU[$key] : TranslateList::EN[$key]; if ($params && is_array($params) && !empty($params)) { return vsprintf($result, $params); } return $result; } }