有PHP的代码混淆器吗?

有PHP的代码混淆器吗?,php,obfuscation,Php,Obfuscation,有人使用过PHP的好模糊器吗?我试过一些,但它们不适用于非常大的项目。例如,它们不能处理包含在一个文件中并在另一个文件中使用的变量 或者你还有其他阻止代码传播的技巧吗?我所看到的最好的方法是。人们会给你提供混淆器,但任何程度的混淆都不能阻止有人使用你的代码。没有一个如果你的电脑可以运行它,或者在电影和音乐的情况下,如果它可以播放它,用户可以得到它。甚至把它编译成机器代码也会使这项工作更加困难。如果你使用模糊器,你只是在愚弄自己。更糟糕的是,您还禁止用户修复bug或进行修改 音乐和电影公司还没有完

有人使用过PHP的好模糊器吗?我试过一些,但它们不适用于非常大的项目。例如,它们不能处理包含在一个文件中并在另一个文件中使用的变量


或者你还有其他阻止代码传播的技巧吗?

我所看到的最好的方法是。

人们会给你提供混淆器,但任何程度的混淆都不能阻止有人使用你的代码。没有一个如果你的电脑可以运行它,或者在电影和音乐的情况下,如果它可以播放它,用户可以得到它。甚至把它编译成机器代码也会使这项工作更加困难。如果你使用模糊器,你只是在愚弄自己。更糟糕的是,您还禁止用户修复bug或进行修改

音乐和电影公司还没有完全接受这一点,他们仍然在数字版权管理上花费了数百万美元

在诸如PHP和Perl这样的解释语言中,这很简单。Perl过去有很多代码混淆器,然后我们意识到可以对它们进行简单的反编译

perl -MO=Deparse some_program
PHP有和这样的功能

我的建议?写一份执照,找一个律师。唯一的其他选择是不发布代码,而是运行托管服务

另请参见。

试试这个:

最近,我用Java编写它来混淆我的PHP项目,因为我没有发现任何好的和兼容的现成的在网上编写的,我决定把它作为saas放到网上,所以每个人都免费使用它。它不会在不同的脚本之间更改变量名以获得最大的兼容性,但会很好地混淆它们,使用随机逻辑,每个指令也是如此。串。。。一切。我相信它比这个有缺陷的代码Eclipse要好得多,顺便说一句,它是用PHP编写的,速度非常慢:)

请参阅我们的,它是一个可以处理任意大页面集的模糊器。它主要通过对标识符名称进行置乱来进行操作。对于小型到大型的应用程序,这会使代码极难理解,这就是全部目的

它不会在“eval(decode(encodedprogramcode))”方案上浪费任何精力,这是许多PHP“模糊处理程序”所做的(这些是“编码器”,而不是“模糊处理程序”),因为任何clod都可以找到该调用,自己执行eval解码并获得解码的代码

它使用语言精确的解析器来处理PHP;它会告诉你你的程序在语法上是否无效。更重要的是,它准确地掌握了整个语言;它不会丢失或混淆,也不会破坏您的代码(如果您混淆“错误”,例如无法正确识别代码的公共API,则会发生其他情况)


是的,它在页面上完全混淆标识符;如果它不这样做,结果将不起作用。

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

不管怎样,编写模糊处理软件的人通常看起来非常粗略和不熟练


如果你的代码是“伟大的”,破解者会花很长的时间来传播它,不管它是否被混淆。如果没有人知道/关心你的代码,他们也可能不知道。

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

<?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);
您可以尝试使用免费的PHP模糊器来模糊PHP代码。
这是非常好的,易于使用,也免费。编辑:此服务不再是活动的

至于其他人在这里写的关于不使用模糊处理的内容,因为它可能被破坏等等:
我只有一件事要回答——不要锁上门,因为任何人都可以撬开你的锁。

正是这种情况,混淆并不是为了防止100%的代码盗窃。它只需要使它成为一个耗时的任务,这样就可以更便宜地支付原始编码器。希望这能有所帮助。

我不确定您是否可以将解释语言的混淆标记为毫无意义(我无法在Schwern的帖子中添加注释,因此这里有一个新条目)

我认为,假设您知道所有可能出现的情况,有人希望混淆代码,并且假设任何人在混淆代码后都愿意花费任何必要的时间来查看代码,这有点短视。想想我现在的情景:


我在一家咨询公司工作,该公司正在开发一个大型且相当复杂的基于PHP的网站。该项目将托管在客户服务器上,该服务器托管其他咨询公司开发的其他网站。从技术上讲,我们编写的任何代码都归客户机所有,因此我们不能授权它。但是,任何其他有权访问服务器的咨询公司(竞争对手)都可以复制我们的代码,而无需事先获得客户的许可。因此,我们有一个真正的理由进行混淆——让竞争对手理解我们的代码,而不是从头开始创建我们的工作副本。

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

但请注意:

注意它——相当有趣——的许可条款

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

PHP模糊处理工具扰乱PHP源代码,使其很难理解或逆向工程(示例)。这为源代码知识产权提供了重要的保护,这些知识产权必须托管在网站上或发送给客户。它是SD源代码混淆器家族的一员


你确定需要吗?@StevenA.Lowe:当心拿PHP开玩笑。:-)还有一个非常好的,有建设性的编程相关问题,以完美的问答形式,以非建设性的方式结束。羞耻