嘿,我想建立自己的PHP编码器,你能指点我一些教程吗?

时间:2011-07-14 18:38:44

标签: php encryption base64

我尝试使用带密钥和base64的mycrypt来加密然后解码代码,但是代码是在变量中,所以当我使用eval输出时,我总是会出错,所以你能指出我正确的方向,我还看了建立我自己的PHP扩展,但我不知道如何将其输出到工作的PHP代码。

更新

我已经有了它的工作,现在我要将它转换为扩展,我只是想知道人们可以反编译php扩展吗?

2 个答案:

答案 0 :(得分:2)

为什么要编写自己的编码器?拜托,不要。问题是,在某些时候, 需要将其解码为纯PHP代码以提供给PHP解释器。此时,有人可以将它转发并将代码转储到文件中。

Zend_GuardionCube这样的专业解决方案是唯一能够在15分钟内完成任务并且在PHP知识最少的人身上无法攻击的解决方案。

答案 1 :(得分:0)

“人们可以反编译php扩展吗?”

是的,将编译的C代码反向工程和/或反编译回伪代码或源代码当然是可能的,但是根据您的方法,没有人需要为了公开您认为您正在保护的代码实际上它只是隐藏的。

您正在调用的eval()函数是开源PHP核心的一部分,并且可以通过修改eval()模块函数或zend_compile_string函数指针引用的函数来简单地公开源代码(通常这是compile_string函数的地址。)

Zend和ionCube等系统在编译后的代码上运行(PHP总是可以执行它们),而且它是编码的字节码。因此,编译文件中没有源代码可以在运行时恢复。此外,服务器上的必需组件也可能包含一个封闭的源代码执行引擎,而不是将恢复的字节码传递给PHP内核中的默认字节码执行引擎,从而使字节码更加隐藏,并提供执行不符合通常的字节码的机会PHP字节码结构(因此需要更多的逆向工程来理解它)。