首页 > Web开发 > 详细

用 dnSpy 反编译调试 .NET 程序

时间:2019-07-13 14:06:58      阅读:139      评论:0      收藏:0      [点我收藏+]

dnSpy 官网下载:https://github.com/0xd4d/dnSpy/releases

运行需要 .NET Framework 4 环境:https://dotnet.microsoft.com/download/visual-studio-sdks

 

具体操作步骤如下所示:

1.添加系统环境变量,COMPLUS_ZapDisable = 1
2.如果需要调试IIS进程,可进入C:\Windows\System32\inetsrv目录执行appcmd list wp 查看对应的应用程序池进程ID
3.打开dnspy,调试-->附加到进程-->选择相应的进程ID-->附加
4.调试-->窗口-->模块-->搜索要调试的程序集-->双击
5.在程序集资源管理器找到要调试的类打开,打断点即可
6.右键要修改的类文件-->编辑类/方法-->修改类-->编译
7.文件-->保存模块-->选择要保存的路径-->保存
8.将保存的重新编译的程序集替换到目标路径即可
9.执行iisreset(若为IIS应用)

cmd 命令

# 设置系统环境变量
setx /M COMPLUS_ZapDisable 1

获取 IIS 应用程序池进程 ID

技术分享图片

附加到进程并打断点

技术分享图片

修改代码,重新编译并保存模块

技术分享图片

关于异常捕捉中断

调试过程中出现的异常,dnSpy默认不会自动中断的,需要自行设置异常中断条件。比如:要捕捉NullReferenceException,那么请打开异常设置窗口(调试->窗口->异常设置)进行设置,如下图所示:
技术分享图片

关于反编译修改代码后无法保存

有时候会因为反编译后某些字段不规范的原因无法保存,这时候可以尝试使用 16 进制编辑保存
技术分享图片

会直接跳转到要光标部分位置,修改后 ctrl + s 保存即可

技术分享图片

 

用 dnSpy 反编译调试 .NET 程序

原文:https://www.cnblogs.com/jhxxb/p/11180290.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!