有没有PHP的代码混淆器?

有没有人使用PHP的好混淆器? 我尝试了一些,但他们不适合非常大的项目。 例如,它们不能处理包含在一个文件中的variables。

或者你有任何其他的技巧来阻止你的代码的传播?

你可以尝试PHP保护这是一个免费的PHP混淆器来混淆你的PHP代码。
这是非常好的,易于使用,也是免费的。

至于其他人在这里写的关于不使用混淆因为它可以被破坏等:
我只有一件事要回答 – 不要锁住你的房门,因为任何人都可以select你的锁。
这正是这种情况,混淆并不意味着要防止100%的代码被盗用。 它只需要做一个耗时的工作,所以支付原始编码器会更便宜。 希望这可以帮助。

人们会为你提供混淆器,但是没有任何混淆可以阻止某人获得你的代码。 没有。 如果您的电脑可以运行它,或者在电影和音乐的情况下可以播放它,用户可以得到它。 即使将其编译为机器码也会使工作变得更加困难。 如果你使用混淆器,你只是自欺欺人。 更糟糕的是,您也不允许用户修复错误或进行修改。

音乐和电影公司还没有完全接受这一点,但他们仍然花费数百万美元的DRM。

在像PHP和Perl这样的解释性语言中,它是微不足道的。 Perl曾经有很多代码混淆器,然后我们意识到你可以微不足道地反编译它们。

perl -MO=Deparse some_program 

PHP有像DeZender和显示我的代码的东西。

我的build议? 写一个许可证,找一个律师。 唯一的其他select是不发放代码,而是运行托pipe服务。

请参阅主题上的perlfaq条目 。

没有什么是完美的。 如果你只是想要阻止非程序员,那么这里有一个我写的脚本可以使用:

 <?php $infile=$_SERVER['argv'][1]; $outfile=$_SERVER['argv'][2]; if (!$infile || !$outfile) { die("Usage: php {$_SERVER['argv'][0]} <input file> <output file>\n"); } echo "Processing $infile to $outfile\n"; $data="ob_end_clean();?>"; $data.=php_strip_whitespace($infile); // compress data $data=gzcompress($data,9); // encode in base64 $data=base64_encode($data); // generate output text $out='<?ob_start();$a=\''.$data.'\';eval(gzuncompress(base64_decode($a)));$v=ob_get_contents();ob_end_clean();?>'; // write output text file_put_contents($outfile,$out); 

我不确定你可以将一个解释型语言的模糊标签标记为毫无意义(我无法给Schwern的文章添加评论,所以这里有一个新的条目)。

我认为假设你知道所有可能的情况下有人想要混淆代码,并且假设任何人都会真正愿意去任何必要的长度来查看那些代码一旦被混淆,这是有点短视的。 考虑我目前的情况:

我为一家咨询公司工作,该公司正在开发一个庞大且相当复杂的基于PHP的网站。 该项目将托pipe在客户端的服务器上,该服务器托pipe着由其他咨询公司开发的其他网站。 从技术上讲,我们写的任何代码都是由客户拥有的,所以我们不能许可。 但是,任何其他可以访问服务器的顾问(竞争对手)都可以复制我们的代码,而不必先获得客户的许可。 因此,我们有一个真正的理由混淆 – 使竞争对手了解我们的代码所需的努力,而不是从头开始创build我们的工作副本。

请参阅我们的SD丛集PHP混淆器,以便使用任意大的页面集合工作。 它主要通过加扰标识符名称来操作。 对于中等到大的应用程序,这可能使代码难以理解,这是完整的目的。

它不会浪费任何能量在“eval(decode( encodedprogramcode ))”scheme上,很多PHP“混淆器”(这些是“编码器”,而不是“混淆器”),因为任何块都能find那个调用并自己执行eval解码,得到解码后的代码。

它使用语言精确的parsing器来处理PHP; 它会告诉你,如果你的程序语法无效。 更重要的是,它精确地掌握整个语言; 它不会迷路或困惑,并且不会破坏你的代码(除非你不正确地混淆了,否则会发生什么情况,例如,无法正确识别代码的公共API)。

是的,它在不同的页面上对标识符进行相同的混淆。 如果不这样做,结果将不起作用。

我见过的最好的是Zend Guard 。

试试这个: http : //www.pipsomania.com/best_php_obfuscator.do

最近我用Java写了混淆我的PHP项目,因为我没有find任何好的和兼容的准备写在网上,我决定把它放在网上,所以每个人都免费使用它。 它不会改变不同脚本之间的variables名称,以达到最大的兼容性,但却是非常好的混淆,随机逻辑,每条指令都是如此。 弦乐…一切。 我相信它更好,然后这个buggy codeeclipse,就是用PHP编写的,非常慢:)

用于PHP的Thicket™混淆器

PHP混淆器工具加扰PHP源代码,使其非常难以理解或反向工程(示例)。 这为必须在网站上托pipe或运送给客户的源代码知识产权提供了重要的保护。 它是SD的源代码混淆器家族的成员。

使用SourceGuardian是很好的,因为它具有一个很酷且易于使用的GUI。

但请注意:

请注意其更有趣的授权条款。

  • 您只能在每台机器上运行1个 – 目前为止这是可以接受的
  • 如果你想在另一台机器上运行命令行界面,说你的networking服务器, 你将需要另一个许可证 (是的,这很有趣,我也可以听到你笑)。

混淆只会为您的程序添加另一层潜在的错误和安全漏洞。 请不要这样做。

写混淆软件的人通常看起来非常粗略和不熟练。

如果你的代码是“好的”,那么破解者将会花费很多时间来传播它,而不pipe它是否被混淆了。 如果没有人知道/关心你的代码,他们可能也不会。