Как я могу переписать каждый файл в читаемый код?
Например, в исходном коде есть такие переменные:
${"\x47\x4c\x4f\x42\x41\x4cS"}["y\x61\x72\x64s\x70\x71"]="va\x6cu\x65";
Как я могу преобразовать это в читаемый код, например:
$somevariable = "somevalue";
Это не UTF8, это просто какая-то обфускация, которую кто-то думал, чтобы сделать скрипт менее удобочитаемым. Вы можете преобразовать каждую строку в ее символьное представление. Например, \x41
означает «captial A».
Вам не нужно самостоятельно преобразовывать эти значения. Когда вы повторяете строку, она покажет свое фактическое значение.
Поощрения – это всего лишь способ использовать строковое значение для имени переменной, поэтому ${'foo'} = 10;
установит переменную $foo
в 10.
В вашем случае у вас есть скрипт, который возится с вашими глобальными.
<pre><?php //${"\x47\x4c\x4f\x42\x41\x4cS"}["y\x61\x72\x64s\x70\x71"]="va\x6cu\x65"; echo 'It means: ' . '${"' . "\x47\x4c\x4f\x42\x41\x4cS" . '"}["' . "y\x61\x72\x64s\x70\x71" . '"]="' . "va\x6cu\x65" . '";<br>'; // = $GLOBALS['yardspq'] = 'value'; var_dump(${"\x47\x4c\x4f\x42\x41\x4cS"}); ?>
Просто замените все вхождения \xNN
на chr(NN)
. Например:
$source = file_get_contents('obfuscated_source.php'); if (preg_match_all('/\\x(..)/', $source, $matches)) { for ($i = 0, $len = count($matches[0]); $i < $len; ++$i) { $source = str_replace($matches[0][$i], chr(hexdec($matches[1][$i])), $source); } } file_put_contents('source.php', $source);
Просто произведите распечатку простых строк, например:
<pre><?php //${"\x47\x4c\x4f\x42\x41\x4cS"}["y\x61\x72\x64s\x70\x71"]="va\x6cu\x65"; print_r( array( "\x47\x4c\x4f\x42\x41\x4cS", "y\x61\x72\x64s\x70\x71", "va\x6cu\x65", ) ); ?></pre>
Для меня это привело к:
$GLOBALS["yardspq"]="value";
Смотрите, как работает …
Я не думаю, что есть какой-либо скрипт, который «очищает» запущенный код.
Для вашей стороны эта линия «равна» чему-то вроде
$array["key"] = 'value';
Я бы использовал PHP-de-obfuscators (обратные PHP-кодирующие процессоры) …
Поиск «PHP deobfuscator» у вас может быть много, список растет, поскольку становится обычным находить такое в инъецированных файлах с взломанных сайтов.
Такие инъекции обычно обрабатываются массово, поэтому в большинстве случаев можно найти решения экспертов.