.净反编译,多么容易,是吗?
-
06-07-2019 - |
题
我寻找到最好的密的许可证的关键应用程序,有人说,有人可以很容易地进行应用程序,然后只是跳过测试的许可证的关键。
怎么会有人去这样做实际上?因此,他们有我的。dll,他们有的反编译它以某种方式,然后评论的出呼叫功能检查的许可证,然后重新编译它吗?的反编译器已经可以真的很好这样的代码还汇编了!
其他提示
如果该源码通常是汇编这是很容易的反编译.净组件。
你可以用 .净反射器, 最初是发达鲁茨Roeder,现在支持通过展鹏软件。有一个截图在底部的这个答案给你的印象是什么反射器。
你可以通过浏览你的名字空间和课程,看看源代码和方法在你最喜欢的。净的语言。丹尼斯*鲍尔的 FileDisassembler 会让你(或邪恶的黑客在你的情况下)将其转换成VS解决方案并修改该程序。
有一些反措施的使用 代码混淆 让你的代码实际上无法读取。
还有其他一些有趣的问题上的计算器有关这一主题:
截图从反射器:
.NET非常容易反编译。混淆将使得理解正在发生的事情变得有点困难,但是如果他们持续存在,那么反编译代码的人仍然可以弄明白。
以下是我在网上找到的关于保护.NET代码的一些建议:
http://blogs.msdn.com/ericgu /archive/2004/02/24/79236.aspx
请注意,所讨论的所有技术都不是100%有效,它只是一个问题,即你将使饼干跳过多少箍。
.NET编译通常非常简单:要亲自了解一下,只需获取。NET Reflector 并尝试一下。
在大多数情况下,没有必要重新编译代码以删除简单的许可证检查:只需修补 MSIL 将起到作用。
保护自己免受这种情况的影响会导致收益迅速下降:始终会聪明地绕过您添加到代码中的任何额外检查。例如,您可以向代码添加数字签名,并且拒绝运行签名不匹配(表示代码已被篡改,例如删除许可证检查)。
然后游戏将删除签名检查(除了许可证密钥检查)。因此,您添加另一个检查,然后可以绕过,等等,无限制。
整个行业都有代码obfuscatation 和版权保护工具可帮助您保护软件免受此类问题的侵害。由您自行决定是否值得购买这些解决方案,以及您是否会为合法客户带来的烦恼......
如果这是你想要防御的东西,你可能想要了解如何攻击它。
利用软件由Greg Holland& Gary McGraw是一个很好的介绍。
最好不要过分使用许可证密钥技术。无论你做什么都可能被坚定的用户攻击,你冒着更大的风险来增加阻止合法用户使用你的应用程序的问题。我甚至看到受 Hasp Dongles 保护的代码被破解。加密许可证密钥和混淆代码应该足以阻止机会主义者的攻击,除此之外没有什么意义。
Eric Sink 写了一篇关于这一点的好文章,请参阅" 4。不要惹恼“透明度原则”的“诚实的人”
即使没有Reflector,人们已经这么做了很久。基本上你用调试器观看应用程序 - 像WinDBG那样 - 然后找出许可证检查何时发生。您观察返回值,然后您只需修补应用程序以直接跳转到“所有好”按钮。校验。
我会推荐人们上面发布的所有内容。你只需要意识到它是一个猫捉老鼠的游戏,如果你的投资回报是值得的。如果您的用户没有尝试游戏系统,那么可能会做一些简单的事情。如果你有破裂猖獗的东西,那么你将不得不考虑不同的策略并从那里开始。
您不必重新编译应用程序来修补它 - 那里存在大量的二进制修补程序工具。如果有足够的钱,它就不会阻止你最坚定的破解者。
"太"
任何类型的“标准”/通常的许可证检查机制都是自动删除工具的目标。在我反思的几个商业.NET应用程序中,这些“过于微不足道”的应用程序。检查看起来很常见。
最好的办法是通过使程序的一部分依赖于Web服务来保护。这不应该是过于繁琐的界面以避免减慢执行速度,但它既不应该是非常粗糙的,因为这些块可以随后在“破解版本”中本地下载和缓存。除非应用程序依赖于它们经常更改。
如果你想避免网络连接(某些用途或用户可能会发现有问题/有问题取决于应用程序,除非你描述并提供价值的东西)然后将一些程序拆分成本机dll或两个并具有在应用程序的所有部分进行许可证检查,而在原生dll中显然不那么明显,这可能足以阻止大部分内容。