解码混淆的 PHP 源代码

Kyl*_*yle 0 php character-encoding

如何将每个文件重写为可读代码?

例如在源代码中有这样的变量:

${"\x47\x4c\x4f\x42\x41\x4cS"}["y\x61\x72\x64s\x70\x71"]="va\x6cu\x65";
Run Code Online (Sandbox Code Playgroud)

我怎样才能将其转换为可读的代码,例如:

$somevariable = "somevalue";
Run Code Online (Sandbox Code Playgroud)

rid*_*rid 5

只需将所有出现的 替换\xNNchr(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);
Run Code Online (Sandbox Code Playgroud)