个人项目中某一部分信息比较敏感,可是.Net程序反编译以后连注释都看获得。须要把exe保护起来,如:代码混淆以后再加壳。安全
Bing到一款.Net混淆工具 ILProtector 做为资深工具党,先"拿来主义"体验体验。本篇主要介绍工具使用函数
1.加密前的exe,反编译以后什么都有工具
2.用ILProtector加密,参考官网介绍 http://www.vgrsoft.net/Products/ILProtector编码
原理是把.Net的中间语言MSIL代码 转换成特殊的代码,只有他本身能够识别,其余工具如 IL DASM, .NET Reflector, ILSpy, dotPeek 不可以识别出来,所以达到防逆向目的。加密
支持 .NET Framework 2.0, 3.0, 3.5, 4, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2
支持 Windows x32/x64 .net
使用也比较简单,直接拖程序到 Assemblies中,3d
这里会生成两个DLL到文件夹中,至于dll的名字无所谓写什么,后面可使用工具合并成一个exeblog
EnableIntegr 设置为True,启动的时候回检测程序是否被人修改,若是别人修改了就不能用了。ip
EncryptStrings 设置为True,不然你的String类型的常量不会被加密get
这里是IDE安装的位置,程序自动检测的。若是有报错,来这里看下是否路径不对
总的来讲是傻瓜化操做,托程序进来,填写输出路径,点Process便可
3.看混淆后的结果
方法已是彻底看不懂了,常量也被加密码了,达到了预期效果。
官网介绍的一些限制条件:
C++/CLI混合编码的程序集、类构造函数、泛型以及__arglist关键字方法 能够考虑编码中避开这些限制。
4.写在最后
世界上没有最锋利的矛,也没有最坚固的盾。靠混淆、加壳等也作不到100%防逆向。客户端只能是经过手段制造逆向的难度。
安全的思路仍是:验证等逻辑放在服务端处理,只返回给客户端验证结果。