当前位置:  开发笔记 > 编程语言 > 正文

.NET反编译,有多容易?

如何解决《.NET反编译,有多容易?》经验,为你挑选了3个好方法。

我正在研究应用程序的许可证密钥的最佳加密,有人说有人可以轻松地反编译应用程序,然后只是跳过许可证密钥的测试.

实际上,有人会如何做到这一点?所以他们有我的.dll,他们必须以某种方式反编译,然后注释掉函数调用以检查许可证,然后重新编译它?反编译器必须非常好,以便代码仍然可以编译!



1> Rasmus Faber..:

尝试使用Reflector打开您的应用程序.你可能会感到惊讶:-)

一旦一个破解者在你的代码中找到了正确的位置,他们就可以使用ildasm/ilasm的组合从你的应用程序中删除检查 - 即使代码Reflector生成也不会编译.


试图打败破解者不会起作用,他们每次都会赢.你只想赢得普通人/临时用户.软件行业早就知道了

2> splattne..:

如果源代码是正常编译的,那么反编译.NET程序集非常容易.

您可以使用最初由Lutz Roeder开发的.NET Reflector,现在由Redgate Software提供支持.这个答案的底部有一个截图,让您了解Reflector的作用.

您可以浏览命名空间和类,并查看您喜欢的.NET语言中的源代码和方法.Denis Bauer的FileDisassembler将允许您(或您的情况下的恶意黑客)将其转换为VS解决方案并对程序进行修改.

有一些对策,比如使用代码混淆器来使代码几乎不可读.

关于这个主题,StackOverflow还有一些其他有趣的问题:

你应该混淆商业.Net应用程序吗?

如何将.NET EXE反编译为可读的C#源代码?

最好的.NET混淆工具/策略

用于许可证密钥的.NET加密?

Reflector的屏幕截图:

替代文字



3> Wilka..:

Josh Smith 最近还发布了Crack.NET,它可以用来附加到正在运行的.NET进程,然后在Reflector中打开它- 所以即使磁盘上的程序集以某种方式加密(以避免人们使用Reflector来获取它们) ,他们仍然可以使用内存版本

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有