2

我正在做一个需要读取文本文件,从中提取数据,然后生成报告(文本文件)的项目。由于有很多字符串解析,我决定用 Perl 或 Python 或 PHP 来做(优先顺序)。但我不想将源代码公开给我的客户。有没有什么好的编译器可以将 perl/python/php 脚本编译成 linux 可执行文件?

我不是在寻找一个 100% 完美的,但我在寻找一个至少 90% 完美的。完美,我的意思是编译器不需要编写具有有限语言特性子集的脚本。

4

8 回答 8

4

对不起,这根本不值得花你的时间。对于您选择的任何语言(从您列出的语言中),对于某人选择提出的任何编译器/混淆器,我向您保证我可以从中获得可读的源代码(如果是 Perl,则在一小时内;如果是 Python,则更长或 PHP 仅仅是因为我对这些语言的实现不太熟悉,而不是因为这些语言本质上更难)。

我认为您应该更好地了解您的目标是什么,以及为什么要为您假设先验想要欺骗您的客户工作。如果您仍然想继续使用这样的方案,请用 C 或 Fortran 编写——当然不是任何以“P”开头的东西。

于 2010-07-17T08:48:28.777 回答
2

确实存在一个 perl 编译器,称为perlcc。我不熟悉 perl,但它看起来像你正在寻找的东西。

于 2010-07-17T07:48:07.740 回答
2

加密 Perl 代码有 3 个选项:

  1. 使用 PAR 创建带有 PAR::Filter::Obfuscate 或 PAR::Filter::Crypto 的可执行文件

  2. 使用 Filter::Crypto::CryptFile(需要在目标操作系统上安装一些模块)

  3. 转成模块,加密成Module::Crypt。

您也可以尝试 B::C - 它已从核心 Perl 发行版中删除,现在可在 CPAN 上使用。

于 2010-07-17T08:32:06.297 回答
1

到目前为止,我们已经听说过带有一些混淆过滤器的 perlcc 和 PAR。这些可能会起作用。

我对 ActiveState 的 PerlApp 非常幸运,它是他们的 Perl 开发工具包的一部分。

它可以很好地捆绑您的代码并将其隐藏。您可以免费试用它,它附带一些不错的附加功能。贵还是便宜,取决于你的看法。对我来说,它很便宜。使用 PAR 或弄乱 perlcc 使代码隐藏工作和可靠的时间成本很容易低于软件包的价格。YMMV。

于 2010-07-18T02:41:12.407 回答
0

对于 Python,您可以使用cx.freeze。我没有使用过这个,但我相信它基本上将 .pyc 捆绑到一个 zip 文件中并添加了一个可执行的前端。

或者,您可以尝试使用Cython编译 Python 代码。这会将修改后的 Python 语言版本翻译成 C 代码,然后可以对其进行编译。这通常用于编写高性能扩展或与现有 C 库的接口,但最新版本也可用于制作完整的可执行文件。

于 2010-07-17T11:58:33.927 回答
0

我从来没有使用过这个,所以我不知道设置有多容易,但是您可以使用 HipHop PHP 将您的 PHP 脚本转换为 C++ 代码并编译它们。(假设您选择用 PHP 编写它们)

http://developers.facebook.com/blog/post/358

http://github.com/facebook/hiphop-php

于 2010-07-17T07:20:42.570 回答
0

对于 Python,您可以调用您的代码并将 *.pyc 文件提供给客户端。

于 2010-07-17T06:23:10.663 回答
0

对于 linux,可执行文件是设置了 +x 的东西,因此无需编译脚本。要隐藏您的源代码,您可以使用混淆器。这使您的源代码不可读。

于 2010-07-17T06:35:30.193 回答