.NET 程序集包含 IL 指令和丰富的元数据。ILSpy 等反编译器可以据此恢复可读代码,其中常保留大量原始类型和成员名称。重命名内部符号,可以减少这些名称暴露的信息。
重点检查依赖名称的契约:反射、序列化、依赖注入与配置中的类型名。保留一份对照构建,并把依赖程序集与混淆结果一起测试。混淆不是把整个程序加密,也不是阻止所有反编译。
混淆与验证步骤
- 以 Release 配置编译项目,保留原始程序集、调试符号和配置文件作为对照。
- 上传含托管代码的 .NET DLL 或 EXE。请使用未签名构建,不要上传私钥。
- 下载结果,在测试环境替换程序集,运行与混淆前相同的功能测试,再决定是否发布。
免费版包含什么
免费版无需注册,支持一个不超过 1 MB 的文件。符号重命名会降低内部名称的可读性;Block ILDasm 主要针对旧版反汇编工具,不能阻止所有反编译器。Pro 提供字符串加密、控制流混淆等选项。具体额度和当前价格请查看套餐页。
怎样证明混淆有效
用 ILSpy 对比原文件和输出文件,检查内部类型、方法名称是否改变;启用字符串加密时,再检查相应字符串。随后实际运行程序,比较输出和关键业务行为。能够加载程序集不等于所有代码路径都正确。混淆提高的是分析成本,不能让客户端内置的密钥变得安全。