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

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


当前回答

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

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

其他回答

你可以试试PHP protect,这是一个免费的PHP混淆器来混淆你的PHP代码。 它非常好,易于使用,而且是免费的。编辑:该服务不再存在。

至于其他人在这里写的关于不要使用混淆,因为它可能会被破坏等等: 我只有一件事可以回答他们——不要锁门,因为任何人都可以撬锁。 事实正是如此,混淆并不是为了防止100%的代码盗窃。它只需要使它成为一个耗时的任务,所以它将更便宜地支付原来的编码器。

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

<?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);

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

编写模糊化软件的人通常看起来非常粗略和不熟练。

如果你的代码“很棒”,黑客就会竭尽全力传播它,不管它是否被混淆。如果没有人知道/关心你的代码,他们可能也不会。

请参阅我们的SD Thicket PHP混淆器,它可以很好地处理任意大的页面集。它主要通过打乱标识符名称来操作。对于小型到大型应用程序,这可能会使代码极其难以理解,而这正是其全部目的。

它不会在“eval(decode(encodedprogramcode))”方案上浪费任何精力,这是很多PHP“混淆器”所做的[这些是“编码器”,而不是“混淆器”],因为任何clod都可以找到这个调用并自己执行eval-decode并获得解码的代码。

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

是的,它混淆了页面上相同的标识符;如果它不这样做,结果就不会起作用。

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

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