• 生活小妙招免费各类生活中的小问题知识以及音乐简谱等,是你了解世界未知知识的好地方。

net C#开发的软件,用什么方法防止反编译?

十万个为什么 空空 2024-3-22 20:50:08 8次浏览

关于问题net C#开发的软件,用什么方法防止反编译?一共有 5 位热心网友为你解答:

【1】、来自网友【编程乐趣】的最佳回答:

主要 3 中方法,混淆加密、核心代码用 C++编写、结合服务端验证。刚好最近分享 2 篇,这方面的内容,有关反编译、加密、开源加密工具的。

1、

2、

【2】、来自网友【sajuk】的最佳回答:

首先模块生成一定要签名保护。我是在程序的启动器部分,登陆验证模块,加了很多混乱的多层跳转迷惑代码。然后用 RedGate 的混淆器(需要用到混淆对象的签名),变量名用非打印字符,开启字符串加密,流程混淆,IL 代码保护。 混淆后再用 ILSpy 和 JB 的反编译器测试,登录部分无法反编译出来,其他部分变量名不可读,字符串都加密了,达到了预期的目标。 最近两年没太关注代码保护这方面,这个需要经验,总之就是混淆工具配合反编译工具,慢慢调试,如果能反编译出来就改关键代码,多加一些深层迷惑跳转。

【3】、来自网友【huzibbs】的最佳回答:

.net 是中间语言,刚开始出来的时候,比较流行混淆方式让破解者增加破解难度,但是由于.net 写的程序代码是直接交给托管程序去解析的,所以你混淆也没多大意义了,因为你再怎么混淆最终执行的时候也得让托管程序能识别,现在的流行方式是把重要代码和加密算法结合起来,并且将主要代码放多个虚拟机里执行,或者主要代码放服务器上,只有注册并且解密成功后才返回正确的代码。注意做注册机制的时候,不要只单纯的验证注册码是不是正确。最好是能把注册码和加密算法关联起来。这样即使破解者爆破了你的程序,由于没有成功解密主要数据,等于也没有破解成功。

【4】、来自网友【兔莫队长】的最佳回答:

使用随机想出来的东西做方法名和变量名字,代码不需要逻辑性。这样就算是你自己想看懂也要好久,害怕反编译?

【5】、来自网友【ConsoleLog】的最佳回答:

我专治《防止.net 反编译》各种不服。IL 代码层直接干。

以上就是关于问题【net C#开发的软件,用什么方法防止反编译?】的全部回答,希望能对大家有所帮助,内容收集于网络仅供参考,如要实行请慎重,任何后果与本站无关!

喜欢 (0)