有人用过PHP的混淆器吗?我试过一些,但它们不适用于非常大的项目。例如,它们不能处理包含在一个文件中而在另一个文件中使用的变量。
或者你有其他阻止代码传播的技巧吗?
有人用过PHP的混淆器吗?我试过一些,但它们不适用于非常大的项目。例如,它们不能处理包含在一个文件中而在另一个文件中使用的变量。
或者你有其他阻止代码传播的技巧吗?
人们会为您提供混淆器,但再多的混淆也不能阻止别人获取您的代码。一个也没有。如果你的电脑可以运行它,或者在电影和音乐的情况下,如果它可以播放,用户就可以得到它。即使将其编译为机器代码也会使工作变得更加困难。如果你使用混淆器,你只是在欺骗自己。更糟糕的是,您还不允许用户修复错误或进行修改。
音乐和电影公司还没有完全接受这一点,他们仍然在DRM上花费数百万美元。
在像PHP和Perl这样的解释性语言中,这是微不足道的。Perl曾经有很多代码混淆器,然后我们意识到可以简单地反编译它们。
perl -MO=Deparse some_program
PHP有DeZender和Show My Code。
我的建议?写个驾照,找个律师。唯一的其他选择是不提供代码,而是运行托管服务。
另请参阅有关该主题的perlfaq条目。
试试这个:http://www.pipsomania.com/best_php_obfuscator.do
最近我用Java写了它来混淆我的PHP项目,因为我在网上没有找到任何好的和兼容的现成的东西,我决定把它作为saas放在网上,这样每个人都可以免费使用它。它不改变不同脚本之间的变量名,以获得最大的兼容性,但是很好地混淆了它们,使用随机逻辑,每条指令也是如此。弦……一切。我相信它比这个有bug的代码eclipse要好得多,顺便说一句,那是用PHP写的,非常慢:)
请参阅我们的SD Thicket PHP混淆器,它可以很好地处理任意大的页面集。它主要通过打乱标识符名称来操作。对于小型到大型应用程序,这可能会使代码极其难以理解,而这正是其全部目的。
它不会在“eval(decode(encodedprogramcode))”方案上浪费任何精力,这是很多PHP“混淆器”所做的[这些是“编码器”,而不是“混淆器”],因为任何clod都可以找到这个调用并自己执行eval-decode并获得解码的代码。
它使用语言精确的解析器来处理PHP;它会告诉你你的程序在语法上是否无效。更重要的是,它准确地了解整个语言;它不会丢失或混淆,它不会破坏你的代码(如果你混淆“不正确”会发生什么,例如,未能正确识别代码的公共API)。
是的,它混淆了页面上相同的标识符;如果它不这样做,结果就不会起作用。
混淆只会给程序增加另一层潜在的错误和安全漏洞。请不要这样做。
编写模糊化软件的人通常看起来非常粗略和不熟练。
如果你的代码“很棒”,黑客就会竭尽全力传播它,不管它是否被混淆。如果没有人知道/关心你的代码,他们可能也不会。
没有什么是完美的。如果你只是想阻止非程序员,那么这里有一个我写的小脚本,你可以使用:
<?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 protect,这是一个免费的PHP混淆器来混淆你的PHP代码。 它非常好,易于使用,而且是免费的。编辑:该服务不再存在。
至于其他人在这里写的关于不要使用混淆,因为它可能会被破坏等等: 我只有一件事可以回答他们——不要锁门,因为任何人都可以撬锁。 事实正是如此,混淆并不是为了防止100%的代码盗窃。它只需要使它成为一个耗时的任务,所以它将更便宜地支付原来的编码器。
我不确定你是否可以将混淆解释语言标记为毫无意义(我无法在Schwern的帖子中添加评论,所以这里有一个新的条目)。
我认为,假设你知道所有可能的情况下,有人想要混淆代码,你假设任何人都愿意去看任何必要的长度,一旦混淆的代码。考虑一下我目前的情况:
I work for a consulting company that is developing a large and fairly sophisticated PHP-based site. The project will be hosted on a client's server that is hosting other sites developed by other consultancies. Technically any code we write is owned by the client, so we can't license it. However, any other consultancy (competitor) with access to the server can copy our code without getting permission from the client first. We therefore have a genuine reason for obfuscation - to make the effort required for a competitor to understand our code more than the effort of creating a copy of our work from scratch.
使用SourceGuardian很好,因为它有一个很酷且易于使用的GUI。
但要注意:
注意它的——相当有趣的——许可条款。
每台机器只允许运行1个-到目前为止这是可以接受的 如果你想在另一台机器上运行命令行界面,比如你的web服务器,你将需要另一个许可证(是的,这很有趣,我也能听到你的笑声)。
用于PHP的Thicket™混淆器
PHP Obfuscator工具打乱了PHP源代码,使其非常难以理解或逆向工程(示例)。这为必须托管在网站上或交付给客户的源代码知识产权提供了重要的保护。它是SD源代码混淆器家族的成员。