我们正在考虑提供一个小型 PHP 应用程序,它的所有文件都使用 ionCube 编码器加密。
我们的问题是这样的:
如果客户或第三方可以访问许可证文件,从而可以部署和操作应用程序,那么他有什么办法可以访问源代码?
我认为“官方”的答案是否定的——我想知道是否有任何“hackish”方法——如果他真的能以某种方式做到这一点。
如果你有专业知识,你可以对任何东西进行逆向工程。(据我了解)许可证实际上与他们是否可以在您的特定情况下执行此操作无关 - 许可证密钥不用于“加密”(实际上,代码并未“加密”)ionCube 文件。
任何程序都可以简化为一组机器代码指令,然后(如果您知道如何)您可以将其构建为汇编程序,然后从那里(再次,如果您知道如何)您可以将其翻译成几乎任何语言你想要的水平。但是,为了做到这一点,您需要对非常低级的编程有深入的了解,并且能够做到这一点的人(我不是其中之一)极不可能关心您的特定应用程序。除非您从您的应用程序中赚取数百万 [在此处插入货币单位],否则您是非常安全的。
有一些程序可以帮助您执行此操作,但是无法检索变量/函数名称之类的内容,因此您最终得到的内容非常不可读。
总而言之,你永远不能 100% 确定没有人可以检索任何以任何语言构建的任何程序的源代码。但是您可以 100% 确定,任何人都不太可能会费心去尝试,甚至更不可能成功。
正如快速在线搜索所表明的,ionCube 提供了字节码的混淆和编译功能。任何高级语言字节码都比汇编更容易以相同的原始语言恢复为可读形式。考虑到 ionCube 是一个足够流行的工具,您也可以不再依赖“没有人费心研究它”的想法,并且可以非常确定即使它的混淆也被研究过,并且当它已经被反混淆时,它可以在运行时转储字节码的好地方。也是。
因此,是的,可以解密编码文件,一切都取决于是否值得费心这样做而不是从你“合法”的方式获得它们,以及你是否可以为此强制采取法律行动。