dnSpy是一款专业级的.NET 反编译调试神器,该项目包含了反编译器,调试器和汇编编辑器等功能组件,而且可以通过自己编写扩展插件的形式轻松实现扩展。该项目使用 dnlib 读取和写入程序集,以便处理有混淆代码的程序(比如恶意程序)而不会崩溃。有需要的小伙伴欢迎来西西下载体验。
还记得 Spy++ 吗?在 Win32 时代,这个软件对于我们分析一个陌生软件的设计思路可谓立下汗马功劳。在如今的 .NET 时代,Reflector 又成为每个严肃的 .NET 开发人员工具箱中必不可少的精髓工具之一。怎么样,请赶紧试锋吧。
同时界面采用 VS 2015 的风格,重点是开源的,可以随便进行 DIY。代码高亮酷炫,实在是逆向神器。
1、程序集编辑
2、反编译器
3、调试工具
4、Tabs及tabs分组
5、提供多主题
.net 反编译工具 Dnspy 开发人员可以使用它反编译 .NET 代码,以了解它是如何工作的,学习或指导.NET语言的复杂性,提供一个更好的替代库的文档,恢复丢失或不可用的源代码,定位性能问题,分析依赖关系,检查混淆
支持.NET1.0, 2.0,.NET 3.5,.NET 4.0等
添加系统环境变量,COMPLUS_ZapDisable = 1
如果需要调试IIS进程,可进入C:WindowsSystem32inetsrv目录执行appcmd list wp 查看对应的应用程序池进程ID
打开dnspy,调试-->附加到进程-->选择相应的进程ID-->附加
调试-->窗口-->模块-->搜索要调试的程序集-->双击
在程序集资源管理器找到要调试的类打开,打断点即可
右键要修改的类文件-->编辑类/方法-->修改类-->编译
文件-->保存模块-->选择要保存的路径-->保存
将保存的重新编译的程序集替换到目标路径即可
执行iisreset(若为IIS应用)
配置环境变量
获取IIS应用程序池进程ID
附加到进程并打断点
修改代码,重新编译并保存模块
关于异常捕捉中断
调试过程中出现的异常,dnSpy默认不会自动中断的,需要自行设置异常中断条件。比如:要捕捉NullReferenceException,那么请打开异常设置窗口(调试->窗口->异常设置)进行设置。