代码文件加密系统
在程序运行时,实质上是在执行机器码,而虚拟机语言的基本概念是将程序加密到一定程度,也就是说,经过加密的PHP程序在执行时会被解密成opcode继续执行。
PHP在执行时会生成opcode,然后由Zend虚拟机继续执行。如果源代码被加密,然后在执行时解密,就可以实现这一过程。
从这个角度来看,如果代码能够被解密成opcode,就有可能通过反编程得到源代码。其他语言也是类似的情况,比如objdump程序可以将二进制程序反汇编出来,.NET和Java程序也有很多反编程工具。但通常厂商会提供代码混淆工具,经过混淆的代码可读性很差,比如Gmail网站的混淆JS代码就很难自行编写,即使反编程出来,读者也很难分析出其中的逻辑,这大大降低了应用领域的安全性。