zen*_*dar 57 .net obfuscation piracy piracy-prevention dotfuscator
我打算发布一个价格低廉的小型实用程序.由于这比业务更重要,我计划使用随VS2008一起提供的Dotfuscator Community Edition.
有多好?
我还可以使用"足够好的混淆器"的定义 - Dotfuscator Community Edition缺少哪些功能以使其足够好.
编辑:
我检查了商业混淆器数量的定价,它们花了很多钱.这值得么?
商业版本是否更好地防止逆向工程?
我并不十分害怕我的应用程序被破解(如果应用程序非常糟糕,没有人有兴趣破解它,那将会令人失望).它无论如何都没有受到严密保护,而不是在代码中的几个地方进行过于复杂的串行密钥和许可证检查.它只是让我感到困惑,没有混淆,有人可以轻松获取源代码,重新命名并将其作为自己出售.
这会发生很多吗?
编辑2:
有人可以推荐商业混淆器.我发现很多,它们都很贵,有些甚至没有列在网站上的价格.
功能明智,所有产品似乎或多或少相似.
混淆器应该具有的最小功能集是什么?
Cra*_*gTP 49
简而言之,Dotfuscator社区版和其他"专业"版本之间的主要区别在于,社区版将只有真正混淆和改变你的命名空间,方法名,和你的类的其他"公共"访问方面.它不会深入研究函数本身并模糊函数中的"私有"代码.
此外,Community Edition不会对应用程序中的控制流进行模糊处理,也不会将多个程序集中的代码"组合"到一个程序集中.这些功能在"专业"付费版本中可用.
可以通过查看以下两个链接找到Community Edition(Visual Studio附带的"免费"版本)和"专业"付费版本之间的最佳比较:
MSDN上的Dotfuscator Community Edition 3.0
MSDN链接稍微过时,但可以更好地解释各种版本的Dotfuscator中可用的实际功能.
编辑:
商业混淆器确实需要花费很多钱,至于它们是否物有所值?好吧,这是一个只有你能做出的判断.就个人而言,我会说在你的场景中它是不值得的.首先,因为你只想保护一个应用程序("我计划发布一个小的,低价的实用程序."),其次,你说你并不过分担心应用程序被"破解"("我"我并不十分害怕我的申请被破解.").
我理解如何编译.NET应用程序,没有任何混淆,可以很容易地逆向设计原始源代码,并且有人可能会利用这个来窃取你的软件并将其作为自己的软件出售,但是,事实上,软件盗版确实存在,你可能永远不会阻止它.
试图阻止软件盗版的问题一直存在争议(Stack Overflow)和整个互联网上.
普遍的共识似乎是你需要把你的时间和精力更多地集中在使你的产品尽可能好,而不是同时试图保护一些东西,如果有足够的时间/金钱,"攻击者"可以"尽管你尽最大努力阻止他这样做,但无论如何都要窃取你的软件.
这会发生很多吗?
我会说它可能比你想象的要少得多.当然,软件破解了,但我不认为有太多人真正窃取其他人的源代码并完全重新标记它以自己的形式出售.我不是说它没有,或者没有发生,但它肯定不常见.
总而言之,我认为你最好的选择是专注于使你的实用程序尽可能好,并使用免费的Dotfuscator混淆器,因为它只需要很少的时间/金钱投入,从而最大限度地模糊你的代码明显的窥探眼睛,但不要失去任何睡眠,因为如果有人想破解/窃取你的产品/代码非常糟糕,他们会这样做.
小智 11
我认为Visual Studio附带的Dotfuscator Community Edition是一个非常天真的解决方案.它仅提供符号重命名,并且根本不会混淆控制流.如果有人决定窃取你的代码,它只需要重构所有的名字,这对于少量的课程来说非常容易.
另外,你可以依靠Reflector提供的不那么完美的反编译(它通常会混乱切换块,产生大量的getos,if-else块等不匹配等).
但我建议你试试Eziriz .NET Reactor.仅售179美元(AFAIK最优惠的价格/功能比).它提供标准的混淆技术,如符号重命名,字符串加密,控制流混淆.作为一个很好的奖励,它为您的应用程序创建本机启动器,它将包含您的主程序集和所有第三方引用加密和按需加载.此外,它还提供一些许可功能.
无论如何,逆转.NET应用程序并不是那么难,我这样做是为了好玩,并且可以说只是时间和金钱(当然还有常识)的问题,你的应用程序的破解或撤销速度有多快.
混淆器至少应该具有:
很有特色的是:
看看我们的Crypto Obfuscator产品,它支持所有这些产品.
小智 5
另一种绕过逆向工程代码的方法是,如果你真的买不起那些增加支持的混淆器,你可以放置你的dll.在部署之前的组件中告诉编译器在哪里查找它们,这是一种阻碍逆向工程的旧实践.但就像已经说过的那样,主要集中在开发出优秀的产品和良好的编码实践,那么将来你将能够买得起漂亮的混淆器应用程序.此外,尽量不要担心其他人破解你的代码,因为大多数黑客破解代码只是找到一种方法来使用产品而不需要付费而不是窃取代码或从初学程序员那里学习.是的,我希望JIT只支持c#和vb.net,它们可以真正减少逆向工程,但因为jit可以读取很多因为.网真的是语言友好的价格.因此,代码远离并赚取一些钱,购买一些额外的证券.