$ {$“\ x47L”是什么意思...... PHP中的这种语法?

时间:2014-09-30 14:44:30

标签: php

我在我的php页面中发现了一些恶意代码,我知道正在使用混淆,但我从来没有在PHP中看到过类似的语法。

例1)

${"\x47LOB\x41\x4c\x53"}["\x76\x72vw\x65y\x70\x7an\x69\x70\x75"]="a";

例2)

${${"\x47\x4c\x4f\x42\x41LS"}["\x64\x77\x65\x6dbj\x63"]}="\x23d\x665";

所以问题是该代码的含义是什么,以及PHP如何处理它。我对这条线路的“$ {”充满好奇。

感谢。

2 个答案:

答案 0 :(得分:4)

那是hexadecimal escape sequence

\x47对应G\x41对应A等。

您发布的代码转换为:

${"GLOBALS"}["vrvweypznipu"]="a";

${${"GLOBALS"}["dwembjc"]}="#df5";

${}表示法通常用于variable variables。它允许您使用字符串访问命名变量。

答案 1 :(得分:0)

扩展Llama先生的答案,序列基本上是指PHP中的$ GLOBALS数组: http://php.net/manual/en/reserved.variables.globals.php

编辑:Llama先生现在扩大了他的答案,包括上述内容。