HHVM可以从权威回购中恢复源代码吗?

时间:2013-06-02 06:50:44

标签: php bytecode copy-protection hhvm

是否可以从HHVM权威repo文件中恢复源代码?在本地安装商用SaaS产品时,我想使用HHVM进行基本的防篡改。

我想(尚未检查)sqlite3 db包含字节码,并且鉴于PHP的动态性质,变量名称..因为* .pyc可以以一种非常直接的方式反转,我应该假设这里可能相同?即使目前没有工具可用吗?

1 个答案:

答案 0 :(得分:6)

是的,可以反汇编HHVM的字节码存储库并重新构建关闭原始源的内容。虽然HHVM目前没有为此提供任何工具,但HipHop字节码(HHBC)非常接近原始源,并包含丰富的元数据,包括局部变量名,函数名等。在这方面,HHBC与Java的字节码有一些相似之处或.NET的IL。

有可能剥离一些这样的元数据,但是需要很多东西来处理诸如“$ f(..)”,“call_user_func(..)”,“class_exists(..)”之类的东西,和“$$ x”,更不用说反射API(ReflectionClass,ReflectionFunction等)。

您可能想尝试其中一个PHP-> PHP混淆器(免责声明:我没有尝试过任何这些混淆器)。一些更好的PHP-> PHP混淆器试图检测你的代码是否以“动态”方式使用函数名或类名,并试图避免重命名这些类或函数,但我想可能会有一些极端情况这些启发式失败,需要进行一些手动调整或调整。

此外,根据您的具体情况,可能会使用文件系统权限来解决您的问题(即阻止服务器上的常规用户访问字节码存储库),尽管听起来这可能是在您对用例的控制。