对于所谓的PHP文件加密,通常可以归为两类:一种是ZEND编译,另一种则是BASE64等编码。这两者在理论层面上都不属于真正的加密,因为它们只是改变了代码的表示形式,并没有通过密码学手段保护代码内容。下面将从这两个方面详细分析一下如何还原这些被处理过的PHP文件。
首先来看ZEND编译过的代码。当你尝试用记事本打开时,你会发现大部分内容都是完全不可读的乱码,除了开头一小段可以识别的内容之外,其余部分几乎全是无法解读的字符序列。这是因为ZEND编译会将PHP源代码转换成一种中间形式,这种形式在普通文本编辑器中看起来就像是二进制数据或类似EXE文件的内容一样。由于这种方式并没有对代码进行任何形式的加密,所以从技术上讲,它是可以还原的。不过,这需要借助专门的工具如DEZEND来进行操作。需要注意的是,DEZEND可能只能恢复特定版本的ZEND编译结果,对于较新的版本可能就无能为力了。
接着是使用BASE64等编码的PHP文件。这类文件虽然也能通过简单的文本编辑器打开查看,但其内部包含的信息经过了编码处理,增加了阅读难度。常见的做法包括但不限于以下两点:
这两种方法有时会被结合起来使用,使得还原过程变得更加复杂。幸运的是,对于使用eval进行处理的情况,我们可以通过简单的手段将其还原。只需将eval部分替换成exit即可。然后在命令提示符下运行这个修改后的脚本,就能看到eval语句所代表的等效代码。如果发现还有未被还原的eval语句,则需要重复上述步骤直到所有eval都被正确还原为止。
本文地址:http://www.lianfafa.com/article/2860.html
上一篇:PHP常用框架大盘点助您轻松构建高效网站php...
下一篇:PhpStorm中运行单个PHP文件的详细步骤phpst...