如何检查php文件是否被混淆?

时间:2011-08-18 09:39:18

标签: php obfuscation

有什么方法可以检查php文件是否已被混淆,使用php?我正在考虑正则表达式(例如ioncube的编码文件包含很长的字母串等。

3 个答案:

答案 0 :(得分:3)

一个想法是检查空格。混淆器首先要做的是删除多余的空格。您可以寻找的另一件事是每行的字符数,因为混淆器会将所有代码放入少数(一个?)行。

答案 1 :(得分:1)

通常,混淆器初始化非常大的数组以将变量转换为不太有意义的名称(例如,请参阅obsfucator article

一种技术可能是搜索这些超大型数组,靠近类/文件的顶部等。您可以将xdebug挂起来检查/查找这些数组。整个过程当然取决于所使用的混淆技术。检查源代码,可能有他们使用的模式,您可以搜索。

答案 2 :(得分:0)

我认为您可以使用token_get_all()来解析文件 - 然后计算一些统计信息。例如,检查函数调用的数量(在calse obfuscator中使用一些eval()字符串而不计算其他内容)并计算平均函数长度 - 对于混淆器,它通常约为3-5个字符,对于普通的PHP代码,它应该更大。您还可以使用字典查找功能/变量名称,检查注释等。我想如果您知道要检测的所有混淆器格式 - 这将很容易。