2

我们想用 php 编写一个 Linux 服务并用 HIPHOP 编译它。由于我们使用 php 开始项目,我们可以在内部完成所有编程,而不是聘请 c++ 程序员等。我们很乐意坚持使用 php。执行速度与我们无关(如此),因为守护进程只是进行一些监控,但我们想关闭代码以对其进行混淆。守护进程将进行一些网络通信并记录到数据库。这是一条可行的路线吗?在另一篇文章中,有人描述了 hiphop 在编程中需要特别注意,因为并非所有 php 功能都已实现。现在还是这样吗?我很想在这里谈谈您对我们想法的总体看法。

4

1 回答 1

0

HIPHOP 是一个非常难以处理的野兽。它非常有限,因此具体取决于您的应用程序及其部署位置。请记住,目前它只能在 64 位架构上运行......所以如果你想在 32 位机器上部署,你会立即陷入困境。

根据应用程序的性质,您可能必须为不同的 linux 发行版构建许多不同的二进制文件。由于 HipHop 仅在 Fedora 和 CentOS 上运行良好,因此您严重限制了您的范围。一旦你离开 PHP 解释器,你就会失去操作系统之间的大量互换性(想想看:Windows、几乎所有的 Linux、所有主要的 BSD 发行版……)

还要记住,我不确定你想在多大程度上“混淆”你的代码。如果你想进行网络调用等并隐藏它们,数据包嗅探器可以非常轻松地准确地看到你与外部世界的通信方式。

同样,调试器和经验丰富的程序员将能够对二进制文件进行逆向工程,其程度可能超出您的想象。

您可能想研究诸如 Zend Encoder 或 IonCube Encoder 之类的替代方案,这将是解决问题的首选方法,但这些都是非自由选项。您可能还想研究其他编码器。

除了“监控”之外,我不确定你在做什么,所以我不能肯定地说。但是第二个选择是简单地严格限制正在客户端机器上运行的代码量(假设它们正在向服务器机器报告)并让假设在您完全控制的服务器机器处理更多处理,如果任何可能的方式。

我邀请您自己通过测试来简单地探索这个想法,因为它再次非常依赖于您的应用程序的性质以及您打算将其部署在哪里。(对于许多人来说,诸如“在哪里部署”之类的东西可能会迅速改变)。HipHop 的创建范围非常狭窄:尽可能快地运行 PHP 代码。它的设计不是为了在操作系统和 CPU 架构之间高度灵活或高度互换。请在编写依赖它的大型应用程序之前考虑这一点,并确保您完全理解使用 HipHop 的每一个含义。测试,测试,测试。

于 2012-12-05T18:33:22.357 回答