相关文章推荐
行走的苹果  ·  C# ...·  4 周前    · 
小胡子的皮带  ·  C# 中的ushort - CSDN文库·  4 周前    · 
聪明的海龟  ·  前端react ...·  3 月前    · 
耍酷的回锅肉  ·  SQL ...·  1 年前    · 

1.在编码过程中尽量使用 private/internal 关键词修饰 class、方法和字段名称, 只有内部和私有的才会被重命名

2.编码过程 尽可能少地使用public 修饰class、方法和字段名称, public修饰后混淆编译将不会被重命名

3.避免使用反射和序列化,反序列化操作, 字段被重命名后可能会造成程序执行异常, 反射、序列化和反序列化会执行失败

4.添加生成事件,调用 Dotfuscator 进行代码混淆

if $(ConfigurationName)==Debug "C:/Program Files (x86)/Microsoft Visual Studio 14.0/PreEmptive Solutions/Dotfuscator and Analytics Community Edition/dotfuscator.exe" "$(ProjectDir)/bin/Dotfuscator.xml"

在每次生成成功会自动调用Dotfuscator,点击 生成项目 即可

5.使用打包工具innosetup,自动打包混淆后exe或动态库即可外发给客户或现场使用

混淆后的代码效果如下,全是无意义的字母,基本无法读懂,如果Dotfuscator是专业版的还可以混淆为不可见字符,根本无法编辑和查看

1.在编码过程中尽量使用private/internal关键词修饰class、方法和字段名称2.编码过程尽可能少地使用public修饰class、方法和字段名称3.避免使用反射和序列化,反序列化操作4.添加生成事件,调用Dotfuscator 进行代码混淆if $(ConfigurationName)==Debug "C:/Program Files (x86)/Microsoft Visual Studio 14.0/PreEmptive Solutions/Dotfuscator a
C# 编写的 代码 通过VS编译器生成 dll 或 exe ,很容易被一些 反编译 工具查看到源码或对源码进行修改。为 防止 代码 反编译 或被篡改,我们可以进行一定的防范措施。但不能杜绝,因为DotNet编写 代码 运行必须编译成IL 中间语言,IL是很规则,同时也很好 反编译 反编译 防范措施: 设置项目 代码 反汇编属性 .net是一种建立在虚拟机上执行的语言,它直接生成 MSIL 的中间语言,再由.net编译器 JIT 解释映象为本机 代码 并交付CPU执行。中间语言很容易被 反编译 ,有必要研究下如何保护dll文件。 常见的 反编译 工具有很多,比如DotNetReflector就可以 反编译 IL ( Intermediate Language ,是指.NET包括 C# 在内编译后的中间语言)到 C# 。 纵观文献,常用的 防止 反编译 方法:强签名+混淆+加密。 强签名  强命名程序集,可以确保你的程序集唯一,而不被篡改、..