Декодирование запутанного исходного кода PHP

Как я могу переписать каждый файл в читаемый код?

Например, в исходном коде есть такие переменные:

${"\x47\x4c\x4f\x42\x41\x4cS"}["y\x61\x72\x64s\x70\x71"]="va\x6cu\x65"; 

Как я могу преобразовать это в читаемый код, например:

 $somevariable = "somevalue"; 

Related of "Декодирование запутанного исходного кода PHP"

Это не 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» у вас может быть много, список растет, поскольку становится обычным находить такое в инъецированных файлах с взломанных сайтов.

Такие инъекции обычно обрабатываются массово, поэтому в большинстве случаев можно найти решения экспертов.