有没有人为PHP使用过好的混淆器?我已经尝试了一些,但是它们不适用于大型项目。例如,它们不能处理一个文件中包含的变量和另一个文件中使用的变量。
还是您还有其他技巧可以阻止代码传播?
有没有人为PHP使用过好的混淆器?我已经尝试了一些,但是它们不适用于大型项目。例如,它们不能处理一个文件中包含的变量和另一个文件中使用的变量。
还是您还有其他技巧可以阻止代码传播?
Answers:
您可以尝试使用PHP保护,这是一个免费的PHP混淆器,用于混淆您的PHP代码。 编辑:此服务不再可用。
它非常好,易于使用,而且免费。
至于其他人在这里写的关于不使用混淆的信息,因为它可能会损坏等等:
我只有一件事要回答-不要锁上房门,因为任何人都可以拿起你的锁。
确实是这样,混淆并不是要防止100%的代码盗窃。它仅需要使其成为一项耗时的任务,因此支付原始编码器的费用将更低。希望这可以帮助。
人们会为您提供混淆器,但是没有多少混淆会阻止某人获取您的代码。没有。如果您的计算机可以运行它,或者如果可以播放电影和音乐,则用户可以使用它。即使将其编译为机器代码也只会使这项工作变得更加困难。如果您使用混淆器,那么您就在自欺欺人。更糟糕的是,您还不允许用户修复错误或进行修改。
音乐和电影公司尚未对此达成共识,他们仍然在DRM上花费了数百万美元。
在像PHP和Perl这样的解释性语言中,它是微不足道的。Perl曾经有很多代码混淆器,然后我们意识到您可以对其进行反编译。
perl -MO=Deparse some_program
PHP具有DeZender和Show My Code之类的功能。
我的建议?写许可证并请律师。唯一的其他选择是不发出代码,而是运行托管服务。
没有什么是完美的。如果您只想停止非程序员,那么可以使用以下我写的小脚本:
<?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的网站。该项目将托管在客户的服务器上,该服务器托管其他咨询公司开发的其他站点。从技术上讲,我们编写的任何代码均由客户端拥有,因此我们无法授予其许可。但是,有权访问服务器的任何其他咨询公司(竞争对手)都可以在无需首先获得客户许可的情况下复制我们的代码。因此,我们有一个真正的理由来进行混淆-比起从头开始创建我们的工作副本,使竞争者更努力地理解我们的代码。
查看我们的SD丛集PHP混淆器,了解适用于任意大页面集的混淆器。它主要通过加扰标识符名称来操作。对于中等规模的大型应用程序,这会使代码极难理解,这就是整个目的。
它不会浪费任何“ eval(decode(encodingprogramcode)”)方案的能量,许多PHP“混淆器”都这样做[这些是“编码器”,而不是“混淆器”],因为任何块都可以找到该调用然后自己执行eval-decode并获取解码后的代码。
它使用语言精确的解析器来处理PHP。它会告诉您您的程序在语法上是否无效。更重要的是,它准确地了解整个语言。它不会迷失或混乱,也不会破坏您的代码(否则,如果您“错误地”混淆,例如,如果无法正确识别代码的公共API,将会发生这种情况)。
是的,它在页面之间完全混淆标识符;如果不这样做,那么结果将无效。
我见过的最好的是Zend Guard。
试试这个:http : //www.pipsomania.com/best_php_obfuscator.do
最近,我用Java编写了它来混淆我的PHP项目,因为我没有找到任何写在网络上的好的和兼容的现成的产品,所以我决定将它作为saas放在网上,所以每个人都可以免费使用它。它不会在不同脚本之间更改变量名以实现最大的兼容性,但是使用随机逻辑也很好地混淆了它们,每条指令也是如此。弦乐...一切。我相信它比这个bug的日食要好得多,这是用PHP编写的,而且非常慢:)
在PHP混淆工具争PHP源代码,使其很难理解或反向工程(例子)。这为必须托管在网站上或运送给客户的源代码知识产权提供了重要的保护。它是SD的源代码混淆器家族的成员。
:(
无论如何,那都是死软件。现在有更好更好的产品了吗?
使用SourceGuardian很好,因为它带有很酷且易于使用的GUI。
但请注意:
请注意其-相当有趣的许可条款。
模糊处理只会在您的程序中再增加一层潜在的错误和安全漏洞。请不要这样做。
编写混淆软件的人通常看起来非常粗略,而且也不熟练。
如果您的代码“很棒”,那么破解者将花费很长的时间来传播它,而不管它是否被混淆。如果没有人知道/关心您的代码,他们可能也不会。