有人用过一个很好的模糊器吗?我试过一些,但它们不适用于非常大的项目。例如,它们不能处理包含在一个文件中并在另一个文件中使用的变量。
或者,您还有其他阻止代码传播的技巧吗?
- 你确定你需要吗?
- @史蒂文娜:小心别取笑PHP。-)
- 试试:github.com/…
- 你为什么要这么做?
- 另一个非常好的、建设性的与编程相关的问题,采用完美的问答格式,以非建设性的形式结束。栈溢出时的耻辱…
- 这就是堆栈溢出。唯一比封闭式问题更多产的问题是,当一些可怜的笨蛋来到这里寻求帮助时,用户会怒火中烧。
- 如果你认为这不应该关闭,那么投票重新打开。
- @Nietthedarkbsol是因为如果您创建了一个商业软件,就不一定只想把源代码泄露出去。
- 斯塔克弗隆正被宠坏的孩子们追着跑。这是事实!
- 这个问题必须重新打开。这是一个有效的问题
- 好的问题有正确的答案。唯一正确的答案是"你还有其他阻止代码传播的技巧吗?"是的,这不是个好问题。不过,对于一个名为"保护PHP的提示和技巧"的wiki页面来说,这是一个很好的提示。
- 我找到的最好的是github.com/pk-fr/yakpro-po
- 我看不出一种重新开放的投票方式,只是我做过的通常的上票方式。工程师向其他工程师提供产品意见没有错!
您可以尝试使用php protect,这是一个免费的php模糊器来模糊您的php代码。它非常好,使用方便,而且是免费的。
至于其他人在这里所写的不使用模糊,因为它可能会被打破等:我只有一件事要回答他们-不要锁门,因为任何人都可以撬开你的锁。正是如此,混淆并不是为了防止100%的代码盗窃。它只需要使它成为一个耗时的任务,这样就可以更便宜地支付原始编码器。希望这有帮助。
- +1.指出混淆是让事情变得更困难,而不是不可能的事实。
- 请注意,加密源代码而不是混淆源代码也不会使其无法解密,这确实很难做到。
- 试过了,但不喜欢。它只更改变量名,不删除注释。
- 仅限Windows版本:(
- 我记得这个软件清理了我所有的硬盘。不要选择D::这样的来源
- @施沃恩,不锁门,然后雇哥伦布和一个很好的律师来掩护自己;)
- PHP保护不是一个好程序。它显示出一些错误。
- @大卫纽科姆-谁愿意支付一个真正的好律师当你可以锁上门?
- php protect不会混淆函数名。因为它删除注释而不是用无意义的文本替换它们,所以结果并不难理解。它似乎只不过是空白注释,使用无意义的变量和常量名。它声称自己"完美无瑕"。补充:他们的联系人页面使用了一个不起作用的验证码,因此他们无法接收问题报告。
- 不要点击链接,它会导致现在的网络钓鱼网站。我想这个域名被回购了…
人们会给你提供混淆器,但是任何数量的混淆都不能阻止别人获取你的代码。没有。如果你的电脑可以运行它,或者在电影和音乐的情况下,如果它可以播放,用户可以得到它。甚至把它编译成机器代码也会让工作变得更困难。如果你使用模糊器,你只是在愚弄自己。更糟糕的是,您还禁止用户修复错误或进行修改。
音乐和电影公司还没有完全接受这一点,他们仍然在数字版权管理上花费数百万美元。
在php和perl这样的解释语言中,这是微不足道的。Perl以前有很多代码模糊器,然后我们意识到您可以对它们进行琐碎的反编译。
1
| perl -MO=Deparse some_program |
php有类似dezender的东西并显示我的代码。
我的建议?写一份执照,然后找一个律师。唯一的另一个选择是不发出代码,而是运行托管服务。
另请参见有关主题的PerlFaq条目。
- 我想回应Schwern关于无法修复错误和进行修改的评论。如果您计划销售/支持您的软件,那么这种混淆只会让您的生活陷入地狱,因为您在任何类型的调试中都会受到限制,您可以在一台实时服务器上进行调试。
- 我大部分同意你的观点,但是OP要求的是产品推荐,而不是关于开源优点的讲座。
- 与开放源码无关,这是关于混合代码,而不仅仅是能够看到它。事实是,在用户机器上运行的任何代码或数据最终都是透明的,无论您如何编译、混淆或加密它,都是完全停止的。操作人员需要理解这一点。
- @jamshady:模糊并不意味着你不能修复错误或进行修改。如果你愚蠢地混淆了源代码,扔掉了原始代码,坚持维护模糊的结果,是的,你将无法做任何事情。好的混淆者坚持要求您保留代码和到模糊结果的映射;您可以调试/修改原始代码,将模糊修补程序发送给客户,甚至可以使用映射将模糊投诉转换回可读的投诉来诊断其问题。他没有地图,所以这很安全。
- 问题:如何回答:你不应该=没有帮助
- @我相信很多人会直接回答这个问题,所以我采取不同的策略不会有损失。问专家的一半意思是他们知道你什么时候问错了问题来解决真正的问题。这是"5个为什么"的应用程序。en.wikipedia.org/wiki/5"真正的问题/问题是"我如何阻止人们阅读/窃取我的PHP代码"。答案是,如果你不能发送代码,但是你可以浪费大量的时间和金钱来尝试获得错误的安全感。这难道不比一张模糊列表更有帮助吗?
- @施:这5个为什么是一个有趣的阅读。但是,是否可以从一个问题中找到所有的上下文,从而找到根本原因?
- @CMC是因为OP的问题很常见,而且总是以同样的方式出现。如果"I need an obfuscator"后面没有"and I understand that obfuscators cannot actually stop a middly-committed attacker",那么我确信他们还没有考虑过。我可以花很多时间反复询问每一个原因,并得到预期的反应只是为了确定…或者我可以节省我们所有的时间,跳一跳逻辑(在本例中是一个短跳)并跳到最后。
- @施沃姆:够公平的。我对这种情况下最佳实践的拙见是:问题:不合格怎么办。回答:这是如何+小心。
- 一旦拥有了许可证,如何有效地实施它?请律师来通常是最后的办法。我可以想象,混淆您的代码以防止许可证侵权比每次都必须向您的律师付款更便宜、更有效。此外,依靠你的律师意味着你需要知道侵权行为。如果我什么都做不到,有40%的侵权,20%的侵权有许可证/律师,或者5%的侵权有许可证/律师/混淆,那么我可能会选择后者。无论如何,这对于OP提出的问题来说都是一个偏离主题的问题。
- 伟大的!只要给点意大利面代码,问题就解决了!
- @施沃姆:我一直在思考代码混淆是否是浪费时间,我得出的结论是不是。如果可以,请取消以下论点。
- @CMC错误:找不到以下参数。
- @施沃姆:哎呀,我想我删除那条评论是为了更进一步的思考。这里是(wip)参数,代码模糊实际上可以通过用低级结构替换高级结构来从代码中删除信息。再加上程序员的意图并不总是从他编写的代码中显而易见的,这会使逆向工程从模糊的代码中变得更加困难,使逆向工程从用户体验中变得更加容易,在这种情况下,模糊将是成功的。
- @CMC我同意成本/收益,但混淆是否会增加你认为的成本?编译器会把你所说的混淆作为副作用,而且已经有几十年的工作在攻击编译的代码。攻击者通常有使混淆不清的攻击模式。例如,如果我想知道一个程序正在执行的所有I/O,我可以使用像strace这样的工具。只有这么多方法可以阻止某人运行您的代码,通常它涉及一个秘密密钥和/或网络握手。最后,一旦一个人发布了如何破坏您的安全,成本就不复存在了。
- @Schwerm:但是采用自定义哈希算法;查看函数akhlqj("foobar")的内容,发现它是一个带有自定义初始化常量的sha-256,绝对比浏览带有自定义初始化常量("foobar"‌&8203;)的调用sha256_variant_花费更多的时间。多长时间,对谁,以及在这种情况下是否值得,似乎没有一个普遍的答案。这是我的观点:模糊本身并不是浪费时间,只有当你想用它而不去想它是一条感觉良好、安全的捷径时。
- @操作有一个特定的场景:他们想要阻止代码的传播。想要混淆为解决方案是存在xy问题的红色标志。OP想要X,他们认为Y可以解决。他们问的是y而不是x。我们在y上浪费了很多时间,因为这是x的一个糟糕的解决方案。如果你能弄清楚x是什么,你就可以为每个人节省很多时间和挫折。在一个删除的答案中,操作显示它们在共享服务器上。他们X的简单解决方案是获得一个私有服务器!
- 事实上,我相信服务器端混淆有其优点。扭曲的代码是一种小的威慑力,但也是一种威慑力。如果你检测到服务器被破坏,在你推一个紧急补丁,或者锁定数据库的时候,模糊可能会帮你省事,等等。不,模糊本身并不能保证你的安全,但是安全是层出不穷的,而模糊则是蛋糕里的蛆。
- "只会让工作变得更困难"…是啊!事情就是这样。
- 我想模糊我的开源安全程序,只是为了让恶意用户更难滥用它。我打算公开我所有的算法,只是不公开代码。通过给恶意用户一个预先的障碍,我马上给他们一个提示,那就是他们需要做大量的工作来破坏这个程序并滥用它。
- @DavidSpector这可能是你试图给出的暗示,但你给出的真正暗示是安全性的幼稚。除油器免费提供。如果只提供模糊的源代码,那么它就不是开源的!你为什么不在这里或者像redit这样的地方发布一个链接,链接到你模糊的信息源,看看它如何经得起公众的监督?
- 施韦恩或施韦姆,我不同意你的看法。更改标识符使代码的含义更加难以理解。我以合理的价格搜索了一个模糊器,但找不到,所以我开始创建自己的模糊器(我是一个退休的工程师)。如果我发现这个项目可行,我会在这里发布例子。我对你的反馈很感兴趣。我的安全程序不是开源的,另一个程序是。正如你所知道的,一个好的安全程序的算法必须公开,以保证用户他们确实是安全的。这与开源问题不同。
- @戴维思,好吧,祝你好运!我希望这是一个有趣的项目。当你把事情弄糊涂的时候一定要告诉我们。是的,我的名字是一个紧排挑战。:)
没有什么是完美的。如果你只是想阻止非程序员,那么我写了一个小脚本,你可以使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <?php
$infile=$_SERVER['argv'][1];
$outfile=$_SERVER['argv'][2];
if (!$infile || !$outfile) {
die("Usage: php {$_SERVER['argv'][0]} <input file> <output file>
");
}
echo"Processing $infile to $outfile
";
$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); |
号
- 令人惊叹的?每个页面都提供了获取源代码的完整解决方案:运行"gzuncompress(base64_decode($A))"。是的,这将阻止非程序员。但是原始的源代码会阻止非程序员,谁需要为此进行编码?唯一打算对它进行反向工程的人是一个PHP程序员。
- 大多数时候,非程序员试图在源代码中搜索他们想要更改的字符串,我也在寻找这样一种解决方案,它只会阻止非程序员更改源代码,例如域名、数据库名称、用户等。
- 这是一个非常有帮助的答案。我只想阻止用户在记事本中轻松打开我的"database.php",并查看我的数据库用户名和密码。
我不确定您是否可以将解释语言的混淆标记为无意义的(我无法在Schwern的文章中添加注释,所以这里有一个新条目)。
我认为假设您知道所有可能的场景,其中有人想混淆代码,这有点短视,并且您假设任何人实际上都愿意采取任何必要的长度来查看代码,一旦混淆。考虑我目前的情况:
我在一家咨询公司工作,该公司正在开发一个大型且相当复杂的基于PHP的网站。该项目将托管在客户端服务器上,该服务器托管由其他咨询公司开发的其他站点。从技术上讲,我们编写的任何代码都是由客户拥有的,所以我们不能授权它。但是,任何其他可以访问服务器的咨询公司(竞争对手)都可以复制我们的代码,而无需首先获得客户的许可。因此,我们有一个真正的混淆的原因——让竞争对手了解我们的代码所需的努力,而不是从头开始创建我们的工作的副本。
请参阅我们的sd thickt php obfuscator,了解一个可以处理任意大页面集的obfuscator。它主要通过加扰标识符名称来操作。对于一般到大型的应用程序,这会使代码非常难以理解,这就是整个目的。
它不会浪费任何精力在"eval(decode(encodedprogramcode))"方案上,很多php"obfuscator"都会这样做[这些是"encoder"的,而不是"obfuscator"的],因为任何clod都可以找到该调用并自己执行eval解码并获得解码后的代码。
它使用语言精确的解析器来处理PHP;它将告诉您程序是否在语法上无效。更重要的是,它精确地了解整个语言;它不会丢失或混淆,也不会破坏您的代码(另一种情况是,如果您"错误地"混淆了会发生什么,例如,未能正确识别代码的公共API)。
是的,它在页面上完全混淆了标识符;如果不这样做,结果就不起作用。
- 旗手:你可以礼貌地说一下你为什么要标记这个。它直接回答OP的问题,包括他的具体问题。
- 据我所知,这是一个仅在Windows下运行的exe?至少eval是.exe文件…
- eval文件是基于.exe的安装程序。复杂的事实是,安装的产品通常是从.cmd脚本运行的,因为它下面有一种并行编程语言,但您永远不会看到。它主要是作为一个Windows产品设计的;但是,如果您使用Wine在Linux上安装它,它将运行与它一起安装的.sh脚本,就像它是一个本地Linux工具一样。如果使用GUI部分(可选的,大多数人想在生产构建过程中运行它作为脚本),它使用Windows上的本地Java和Linux上的本地Java。
- 灌丛需要加载到托管空间是真的吗?如果是,如何在共享主机上安装?
- @stephenadelakun:thickt不需要更改服务器。下载并检查文档。
- 灌丛是200美元,基于他们的网站,我认为没有任何优势比一个免费的遮蔽计划,将值得这一成本。我是一名独立的软件工程师,负担不起这种开支。
- @DavidSpector:如果不尝试一下,你可能就找不到为什么它是处理小型和大型网站的可靠工具。您可以下载并免费试用。
- @艾拉·巴克斯特:以这个价格,我认为它是可靠和完整的。但是,如果必须这样做的话,我可以花几天时间编写一个程序来解析足够多的PHP来重新映射函数和变量名以及一些明显的东西,这是非常好地模糊的基础。那么也许我会成为你的竞争对手,比你那可笑的200美元的价签少得多。
- @大卫·斯佩克特:欢迎你这么做。这是一个自由市场。如果你有几天的空闲时间来做这件事,以避免200美元的费用,你要自己支付12.00美元/小时,难怪你负担不起。我的猜测是,您严重低估了在具有文档和支持的大型PHP应用程序上生产可靠产品所需的成本。
- 我是一个有40年经验的软件工程师,有很多时间要退休,但你可能是对的。我已经开始写了,如果我发现它可行并且值得使用,我会在这里发布一个公告。
我见过的最好的是泽德卫兵。
- sd php模糊器也一样好,成本大约是五分之一。
- @萨尔曼普,原因应该是显而易见的?
- @它需要一个附加到网络托管空间。泽德警卫也可能会。不确定哪个是最主流的。不管怎样,问题是它会减少你潜在的听众。
- sd的php obfuscator将全部转换为小写。如果您使用的是框架,这将是一个问题。
- 缺点是价格昂贵。
- @阿米尔瓦杜瓦拉:你认为哪些具体的实体是低级的?你能用这么低的价格说明一个具体的问题吗?
- @jamespoulson:不清楚您的评论是否指向sd php模糊器。只是说清楚,它不需要任何附加到网络托管空间。
- @amilwaduwara:难道你不只是在查看你的IDE中未被模糊的代码吗?这将如何影响框架?
- Zen Guard的起价是每年600美元。现在我真的很有灵感去写自己的。
试试这个:http://www.pipsomania.com/best_php_obfuscator.do
最近我用Java写了它来混淆我的PHP项目,因为我在网上找不到任何好的和兼容的写,我决定把它放到SaaS上,所以每个人都免费使用它。它不会改变不同脚本之间的变量名,以获得最大的兼容性,但是它很好地模糊了它们,使用随机逻辑,每个指令也是如此。串。。。一切。我相信它比这个bug代码Eclipse要好得多,这是用PHP编写的,速度非常慢:)
- 看起来不错…但是它安全吗?我是说,其他人能轻易解密吗?
- 我可以向您保证,到目前为止,没有人能够消除这个模糊器所混淆的代码。
- [需要引文]-自制加密是通过模糊来实现安全性的,这根本不安全。
- pipsomania将一些变量的名称明显地替换为模糊的$global[],这与用$替换这些变量的名称没有多大区别,只是它会减慢代码的执行。但它不会混淆函数名、类名或成员名。它添加了一些额外的赋值语句,但它们似乎只是额外的赋值语句。
- 分析错误:语法错误,意外的t_常量_封装的_字符串在…..第1行
- "我可以向您保证,到目前为止,没有人能够消除代码的混乱",甚至是PHP?如果PHP能做到,其他人也能做到。作为站点上的示例代码,在某个地方,您将有一个eval语句来转储代码,将其更改为echo,您的代码将显示出来。
- 不,它不安全。用一点代码,你就可以逆转它。我不想发布反转代码的代码,因为这对作者是不尊重的。但是,我也要提醒一些人,如果他们真的真的打算用这个工具来保护他们的代码,它就不会这么做。
- 史考特·赫伯特:你在自动说话,我的朋友,为什么?首先在这个模糊器处理的代码中找到一个地方,在那里你可以通过"回声"转储代码,然后交谈。不是反过来。
- @帕特拉吉:确实没有必要进行撤离。只要看看你网页上的示例代码,我就可以用肉眼阅读"globalls"和"timeofstartt"。编写一个短脚本来解码这段代码是不费时间的。我同意,在一个大型项目中,只给变量分配随机名称,并且破坏缩进是一种相当程度的混淆,但是您的算法看起来并没有超出这个范围。
- 警告:此方法可以简单地解码回原始变量名,请参阅:lombokcyber.com/en/detools/decode-pipsomania
- @Patladj很好,请您明确使用它的要求,如最低PHP版本、是否需要或不需要任何加密扩展等?
- 死链接!"在此服务器上找不到请求的url/best_php_obfuscator.do。"
灌木丛?PHP模糊器
The PHP Obfuscator tool scrambles PHP source code to make it very difficult to understand or reverse-engineer (example). This provides significant protection for source code intellectual property that must be hosted on a website or shipped to a customer. It is a member of SD's family of Source Code Obfuscators.
号
- Truebug.com无法访问。我知道我在3年多后发表评论,但如果有Truebug的新网址,你能帮我吗?
- @Stephenadelakun你只需要Truebug吗?使用:trubug php obfuscator。
- 抱歉,链接不起作用。还是我错过了什么?
- @我刚检查过,它工作了。
- 是的,链接正常,但无法下载任何内容。只是链接和链接…在圆圈里。
- @史蒂芬·阿德拉昆为什么只有这个?:(反正是死软件。现在有更好更棒的,对吧?
- 我真的很喜欢有一个很棒的PHP模糊或免费增值或溢价。我只需要在付钱前对质量有绝对的把握。我需要指导,一个权威来做这个决定。这就是我来这里寻找的原因。
- @然后给我一天时间。我会找出最适合你的,免费送给你。江户十一〔一〕号
- 你好,@praveen,我等了好几个星期了。我去别处看看吗?我知道你可能很忙,但你能把我挤进你的节目吗?
- 不是每个人都能买得起200美元的工具,因为它只给出了错误的理由,为什么它比一个免费的模糊程序更好。
- @DavidSpector抱歉,伙计,找不到任何开源的好东西!:(。
- @很抱歉,伙计,找不到任何开源的好东西!:(。
- 好吧,我开始自己写了。如果我发现这个项目可行,我会在这里宣布。
- @戴维斯佩克特,太棒了!!!!我也在等。如果你需要的话,我可以帮忙…江户十一〔一〕号
使用SourceGuardian很好,因为它附带了一个很酷且易于使用的GUI。
但要注意:
注意它的-相当有趣的-许可条款。
- 你只能在每台机器上运行1次-到目前为止这是可以接受的
- 如果你想在另一台机器上运行命令行界面,比如说你的网络服务器,你需要另一个许可证(是的,很有趣,我也能听到你笑)。
- 我觉得这很正常!2台机器=2个许可证!通常人们所做的就是在一台机器上对其进行编码,然后上传到另一台机器上。
- @大卫纽科姆,你似乎不明白这一点。您通常在发送代码之前在您的dev机器上加密代码。如果您需要在线操作,命令行界面还需要额外的许可证,这显然是不对的。您倾向于将命令行界面放在Web服务器上,而不是放在本地框上。
- 很好的保护,愚蠢的许可条款。
- 每个用户应该有一个许可证,而不是每台机器。
- @BEPPE9000完全同意!
模糊化只是在程序中添加另一层潜在的错误和安全漏洞。请不要这样做。
不管怎么说,编写模糊软件的人通常看起来很粗略,不熟练。
如果您的代码是"伟大的",那么无论代码是否模糊,解密程序都会经过很长的时间来传播它。如果没有人知道/关心你的代码,他们可能也不会。
- 非杀伤力?基于什么证据?我写的。在你做全面的概括之前,先看看我的简历。semanticdesigns.com/company/people/idbaxter
- @我的声明仍然有效。大多数模糊的代码可以在几分钟内被破坏。我的意思是,大多数人都是不熟练的,不是所有人。首先想到的是Ioncube,而且可以肯定的是,它发布了一个漏洞:osvdb.org/show/osvdb/41708。然后,您可能会部分地将这归咎于PHP模糊的安全需求。
- 好吧,你是在建议人们不要使用劣质产品,或者那些由非技术人员设计的产品。很难不同意这一点。
- 不,我建议混淆是有害的,因为它降低了我对我正在使用的程序有效的信心,并且大大增加了引入安全漏洞的可能性;这在今天的系统中是不需要的。我真的怀疑一家公司的利润在很大程度上受到他们是否使用模糊的影响。
- 如果使用可靠的工具进行模糊处理,对程序的可靠性没有任何影响。二进制编译是一种非常模糊的处理方法,但是我想您肯定Zend的PHP引擎是可靠的。(使用不好的工具进行的模糊或编译不应计算在内)。
- 混血儿怎么能没有虫子呢?如果存在这样的工具,那么去油过程将是微不足道的。我见过的大多数模糊器完全改变了应用程序的语义,并引入了任意的限制。当语言未指定,并且所有类型的代码都存在于未记录的/内置的库语言特性中时,如何才能使PHP变得模糊?我甚至很难理解如何在PHP中进行alpha转换,而不必搞砸用户的代码或限制他们以某种方式可以做什么。
- 附带说明,"二进制编译是一种极端的混淆"。完全正确。例如,对jvm字节码的唯一合理化是为了模糊化,它们可以轻松地设计一个架构,允许最终用户从源代码自动编译和缓存代码,或者随着时间的推移逐步优化编译的代码缓存等。现在,我们有了由字节码不兼容导致的无意义的问题。具有提议的特征和Dalvik等。
- "当语言未指定时,如何混淆PHP…?"如果你想问这个问题,不管是否模糊,你如何运行任何一个PHP程序?在这种情况下,模糊不是问题,所以你不应该把这个问题挂在模糊上。不管你是否这么认为,很多人(如Facebook)都认为PHP定义得很好。如果是这样,那么你就可以很好地定义一个模糊器。
- 天啊。大多数情况下,我同意所有的党派。模糊的代码可以很容易地去模糊——但只有当你知道它是模糊的并且知道如何去模糊的时候。通常情况下,我甚至不会考虑混淆我的工作,但考虑到您正在为一个不想支付"额外许可"但仍想拥有源代码的客户机开发一个项目。以这种方式,我将考虑混淆代码——客户机将拥有它,但不能重用/理解/读取它。如果客户不理解编程,他很难意识到这段代码"只是"模糊了……[下一条评论]
- 当我想让客户机在不要求第三方的情况下向我请求任何更改、新功能等时,也可以使用此功能。[鹰]
- 任何半个大脑的人都知道PHP在现实的企业软件市场上挣扎(读作"不存在"),因为它不会在和ASP.NET上混淆。我厌倦了弱智的福音传道者说任何其他的话。(是的,这就是故意无知的原因)开源已经存在太久了,而且已经被尝试过,并且发现它太频繁了,以至于没有其他的结论:爱好?开源。工作?加密。只有生活在泡沫中的傻瓜/白痴/有钱人才能有不同的想法。
- 我几乎无法理解这一评论,但这似乎意味着销售开源软件或基于开源软件的软件是没有意义的。如果你没有注意到,Java是"企业",开源的,就像网络一样成功。我的公司赚了数百万美元,而且我们从不需要使用模糊。问问你自己:如果你不能支持/改进软件,那么销售软件有什么好处(即:你刚刚破解了别人的软件并将其转售)?
- 好吧,我想朗波克有道理。在某些情况下,混淆是不好的,在某些情况下是这样。