用 dnSpy 反编译调试 .NET 程序
2024-08-21 00:30:32
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 保存即可
最新文章
- php操作mongodb
- LR测试登陆后进行的操作时 绕过登录
- The future of programming languages
- Hibernate初级
- 我的第一个Servlet
- [转载]PHP检测一个元素是否存在于数组中
- 查看apk签名信息
- orangepi one AP模式配置
- JS—ajax及async和defer的区别
- SQL Server 2016新特性:Live Query Statistics
- ArcGIS Server缓存清理
- python第五十四天--第十周作业
- Javascript 面向对象编程(一):封装 作者:yuan一峰
- vue-12-渲染函数 &; JSX
- 如何在CentOS7上安装Python3及对应问题
- JavaScript--事件入门(24)
- Spring Boot -Shiro配置多Realm
- day17作业
- flask中secret_key的作用
- 03-树2. List Leaves (25) 二叉树的层序遍历
热门文章
- shiro权限控制配置
- 把json1赋值给json2,修改json2的属性,json1的属性也一起变化
- Idea格式化快捷键无效,没反应
- swift学习网址
- shell中$(( ))、$( )、``与${ }的区别详解
- apache启动错误 AH00072: make_sock: could not bind to address [::]:443 windows系统端口/进程查看
- 【获取url 问号后参数】防中文乱码
- PAT乙级1018
- CSS如何水平垂直居中?
- 给零基础的小白从0到1的react-naitve电商app——简单易学!