将 hhvm 代码编译为字节代码并删除源文件


Compile hhvm code into byte code & remove the source files

是否可以第一次将

php源代码编译成hhvm字节码,然后删除源文件。字节码可以在脚本文件更新时重新生成,显然需要手动组合才能执行此操作。如果可能,那怎么做?

阅读一些关于 Repo.Authoritative我认为它更接近一些,但如果您同意,请解释一下。

关于我的问题,我想保护我的 Web 应用程序免受许可证盗窃,即使混淆了 php 代码也可以以某种方式进行 bye-pass 许可证检查。再见,在 hhvm 字节代码中传递它似乎很困难,因此进行了询问。

也请帮助我提供其他建议

Repo 权威有点这样做,但它不是为了你想要的。出于性能原因,它将所有PHP代码编译到单个存储库中 - 它假设进入存储库的内容是将存在的所有代码(不允许在存储库之外加载内容(,因此它可以基于此进行许多聪明的优化。但是,由于存储库一旦生成就无法扩展存储库,因此它不适合分发以后可能需要添加代码的任何类型的库。它实际上根本不是为分发而构建的;该格式非常特定于版本,即使是 HHVM 的一个小版本也可能无法读取较旧(或较新(版本的存储库。

这也不是一种很好的混淆形式。它包含优化的"HHBC"指令("HipHop字节码"(,这些指令并不难逆转回PHP代码,特别是如果有人被激励为它构建工具。这样做的难度与编写 C# 或 Java 反编译器相当——一个具有良好启发式方法的好工具可以让你得到一些非常接近原始源代码的东西。(相比之下,反编译 C 要困难得多

所以不,我不会为此使用存储库权威。我认为由于上述原因,这会给您带来比它值得的更多的麻烦,甚至可能无法解决您的问题。HHVM没有任何好的机制 - PHP被设计为从磁盘上的源文件中读取解释。HHVM 碰巧有几种中间语言,包括 HHBC,用于优化目的,但它们不是为混淆而设计的。

你可能想找一个PHP源代码混淆器,它会在PHP解释器(PHP5或HHVM(看到它之前对你的代码进行源代码转换。这远远超出了我的专业知识。

你可能还需要仔细考虑是否值得努力打败不诚实的人,这最终将是一场失败的战斗。(总是有可能像这样击败许可证保护。花一点时间让诚实的人诚实是我个人会做的事情,在花费大量时间和精力之前,你应该仔细考虑权衡,而不是在你的产品上工作。