缩小/混淆PHP代码

The*_*ppo 16 php obfuscation code-generation haxe minify

我使用Haxe生成PHP代码.(这意味着你用Haxe语言编写代码并在编译后得到一堆php文件.)今天,一位客户告诉我他需要一个用Haxe制作的旧项目的新功能.他还告诉我他为了自己的需要改变了代码中的一些小东西.现在我首先将他的更改移植到我的Haxe代码然后添加新功能,否则他的更改将在下次编译项目时被覆盖.

为了防止再次发生这种情况,我正在寻找一种缩小/混淆PHP代码的程序.目标是使代码尽可能不可读/不可编辑.
理想的工具可以在Linux下运行,可以处理整个文件夹及其包含的所有文件.

有人有什么建议吗?

Rob*_*mer 24

为什么不在函数php_strip_whitespace()中使用php buid

string php_strip_whitespace ( string $filename )
Run Code Online (Sandbox Code Playgroud)

返回文件名中的PHP源代码,删除了PHP注释和空格.这对于确定脚本中的实际代码量与注释量相比可能很有用.这类似于从命令行使用php -w.


J. *_*tin 17

我同意评论,你正在做的事情是非常卑鄙的,但在这个商业10年后,我可以证明一件事:你得到的代码的一半是如此令人费解,它可能已经缩小,并且真正的函数/ var名称通常是完全随意的,我编辑了缩小的js,并没有比一些未明确的代码更麻烦.

我找不到任何这样的脚本/程序,很可能是因为这有点违背了PHP的精神而且有点卑鄙,从不如此.

第一:Php不是白空间敏感的,所以第一步是删除字符串之外的所有换行符和空格.

这对于普通的修补工具来说很难搞乱,一个中级程序员只会发现并用$ 1 \n或者替换所有; {}或者那样的东西.

下一步是get_defined_functions并保存该数组(返回数组中的'user'键),您需要包含所有文件才能执行此操作.

如果是oo代码,那么你也需要get_defined_classes.保存该数组.

从本质上讲,你需要获取变量,方法和类实例,你必须在其上实例化类和get_object_vars,你可以四处寻找并看到你可以获得很多其他信息,比如常量和类变量等.

然后你获取这些列表,循环遍历它们,为每个事物创建一个唯一的名称,然后在所有文件中使用preg_replace或str_replace.

确保在测试副本上执行此操作,并查看您获得的错误.

但是,为了清楚起见,地狱中有一个特殊的地方可供那些为混淆而混淆的人保留.

查看:get_defined_functions get_declared_classes,然后按照链接查看您可以执行的操作.

  • 我们正在讨论自动生成的代码,这看起来已经非常模糊了.我不会花一秒钟来修改这段代码.是否责怪ac编译器的创建者创建混淆的二进制文件? (2认同)