dnSpy

dnSpy

大小: 79.50 MB
日期: 26-10-09
语言: 简体中文
分类: 编程工具
平台: Windows

软件介绍

 dnSpy是一款开源免费的.NET程序集调试器与编辑器,专门用来对付手头只剩.dll和.exe、没有源码可看的局面。它内置ILSpy反编译引擎,把中间语言还原成可读的C#或VB代码,同时把断点调试、变量监视和程序集改写合并在同一个窗口里;改完的代码能直接编译回程序集保存。


dnSpy软件功能


程序集反编译‌:拖入.exe或.dll,自动列出命名空间、类型、字段与方法,双击即出C#(或VB.NET)源码。
‌无源码断点调试‌:F9设断点、F10逐过程、F11逐语句,配合局部变量、监视、调用堆栈几个窗口用。
‌附加到运行中的进程‌:程序已经跑起来了也能挂上去,不必为了排查而重启服务。
‌方法级代码编辑‌:右键"编辑方法(C#)"改逻辑,编辑器带补全,改完点编译即刻生效。
‌IL指令编辑‌:需要抠性能或做精细控制的场合,直接到中间语言层面插入、替换指令。
‌元数据与资源管理‌:类型名、方法名、特性可以改,图标、字符串表、内嵌XML等资源也能导出取用。
‌全局检索定位‌:按方法名、报错文案、字符串常量或某个API调用去找,跨程序集把关键代码揪出来。
‌导出为C#工程‌:整个程序集转成能用IDE打开的解决方案,当成缺失源码的技术参考文档留存。

ScreenShot_2026-10-08_171028_137.jpg


dnSpy安装步骤


1、留够地方
工具本体不大,但你拖进去分析的 DLL、导出的源码项目会越堆越多。目标盘留 1GB 以上比较从容。
2、想好放哪儿(这一步影响后续所有操作)
找个纯英文、无空格、层级浅的目录,比如 D:\Tools\dnSpy\。原因有两个:一是少数程序集路径解析会受中文和空格干扰;二是你以后可能要在这个目录下改文件、写脚本,路径干净能少很多麻烦。

ScreenShot_2026-10-08_171045_788.jpg


3、进 dnSpyEx 仓库 → 翻到最新 Release → 展开 Assets → 挑对应架构的 zip。

ScreenShot_2026-10-08_170936_962.jpg


4、(右键→属性→常规页底部“安全:此文件来自其他计算机,可能被阻止”,勾选【解除锁定】→确定)

ScreenShot_2026-10-08_171012_266.jpg


5、右键 zip → 解压到当前文件夹 / 指定文件夹。别直接双击进压缩包里找 exe 运行——临时目录一清,你的配置、插件、符号缓存全没了。
6、双击即可。若你要修改并保存程序集、附加到系统进程,建议右键→以管理员身份运行,否则“保存模块”那一步大概率报权限不足。

ScreenShot_2026-10-08_171020_837.jpg


7、逆向类工具被报毒属于行业常态。确认是从官方 Release 下的之后,去隔离区恢复并加信任白名单。不放心的话,拿哈希值跟 Release 页核对一遍。(主窗口完整画面:标题栏显示 dnSpy v6.x.x (64-bit, .NET)、左侧程序集资源管理器、中央代码区)
标题栏的版本号对上你下的那个 Release,就说明跑的是正版,没被替换。


dnSpy常见问题


反编译时提示“NullableContext”或“Nullable”警告导致编译失败?
这是缺少目标程序集依赖的运行库所致。将所有被引用的程序集(含前置mod、系统库)一并拖入dnSpy加载区。确保dnSpy已识别所有依赖模块后再执行编译操作,否则编译器无法解析类型引用。
附加到进程后找不到目标DLL模块?
通常是IIS应用池尚未加载程序集,或dnSpy未显示所有会话的进程。先触发一次HTTP请求让模块完成加载,附加时勾选“显示所有用户的进程”和“显示所有会话的进程”。附加后等待5至10秒再刷新模块列表。
断点设置后从不触发,程序正常运行不中断?
检查目标程序是否以Release模式编译并启用了JIT优化。Release模式的方法内联和死代码消除会导致断点无法绑定到实际执行地址。尝试在未优化的简单方法中测试断点,或确认PDB符号文件已正确加载。

dnSpy更新日志:

1.修改用户提交bug

2.添加新功能

小编推荐:告别垃圾软件,dnSpy是一款绿色安全的软件,小编亲鉴!我们{zhandian}用心为大家服务,本站还有{recommendWords},供您下载!