FreeObfuscator.NET protection

.NET · C# · DLL · EXE

用正确发布映射解码 .NET 混淆异常堆栈

让重命名映射与具体 DLL 版本一一对应,区分名称恢复和源代码行号恢复。

打开混淆工具

文件上传、账户和付款流程目前使用英文界面。

把映射与受保护版本成对保存

一起记录输入输出 SHA256、保护选项、程序集身份和映射文件。映射会泄露原始名称,应保存在访问受限的发布存储中。另一构建的映射可能给出看似合理却错误的名字,仅凭文件扩展名或产品版本标签相同并不能证明配对正确。

复现一条自己认识的异常

在测试副本中触发既有的可控错误,捕获不含客户秘密的堆栈。用准确映射在解码页面处理,检查预期内部类型和方法名是否恢复,同时保留原始堆栈并对比未改动帧。不要为了演示而公开私有映射或生产异常详情。

理解空映射和部分恢复

当没有可改名符号时,没有重命名条目的导出映射可能完全有效;解码器应保持堆栈不变,而不是虚构名称。格式错误文件与有效空映射是两件事。部分帧不变可能来自公共成员、外部依赖、生成代码或版本不匹配,应先核实构建对应关系。

恢复名称不等于恢复行号

重命名映射不会自动还原源文件和行号。符号化还需要相应程序集与兼容调试符号,优化也会影响堆栈中可见的帧。按保留策略保存诊断材料,在发布前演练流程。除非明确接受泄露原名称,不要把映射文件默认分发给所有客户端。

Get-FileHash ./MyLibrary.obfuscated.dll -Algorithm SHA256
Get-FileHash ./MyLibrary.map.txt -Algorithm SHA256
# Record these with the release ID and protection options.

程序集保护指南