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 程序的更多相关文章

  1. .NET 反编译调试神器:dnSpy了解一下

    如果客户环境出了问题,而又无法快速定位问题,可以借助dnSpy进行反编译调试跟踪. 可前往dnSpy官网下载或直接从我的分享链接下载(内置包含.NET Framework 4.7.1,若运行提示需要安 ...

  2. Android反编译调试源码

    Android反编译调试源码 1. 反编译得到源码 直接在windows 命令行下输入命令java -jar apktool_2.0.0.jar d -d 小米运动_1.4.641_1058.apk ...

  3. 使用VS+VisualGDB编译调试Linux程序

    Linux程序开发变得越来越多,越来越多的程序.产品需要跨平台,甚至有些开源项目只支持Linux平台,所以掌握Linux开发变得越来越重要. 但是对于习惯了Windows下的开发,使用了VS这个宇宙第 ...

  4. VS2010 win7 QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序

    下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0 ...

  5. 反编译工具 使用.NET JustDecompile来反编译你的程序代码

    原文地址:http://www.it165.net/pro/html/201310/7383.html 前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序 ...

  6. 亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)

    下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0- ...

  7. 反编译微信小程序

    最近看了个微信小程序古诗词全集,想知道他的前后端是怎么实现的,所以就想到了反编译.小程序安装后会有个wxapkg格式的文件存在/data/data/com.tencent.mm/MicroMsg/** ...

  8. 使用.NET JustDecompile来反编译你的程序代码

    前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序,由于因为是别人写的所以我们并没有原始码可以直接阅读,碰到这种情况我们就需要去反编译这些程序及 DLL ...

  9. 如何反编译微信小程序👻

    如何反编译微信小程序 准备工具: 夜神模拟器(或者你可以自己准备一个安卓模拟器,有root权限.) RE文件管理器(下载地址:https://soft.ucbug.com/uploads/shouji ...

随机推荐

  1. java9 新特征

    Java 平台级模块系统 java模块化解决的问题:减少Java应用和Java核心运行时环境的大小与复杂性 模块化的 JAR 文件都包含一个额外的模块描述器.在这个模块描述器中, 对其它模块的依赖是通 ...

  2. shell中处理参数getopts命令

    一.getopts 简介 由于shell命令行的灵活性,自己编写代码判断时,复杂度会比较高.使用内部命令 getopts 可以很方便地处理命令行参数.一般格式为:getopts optstring n ...

  3. Python编写工具Pycharm破解

    我这边使用的是Pycharm2019.1.3 Pycharm下载地址 官网:https://www.jetbrains.com/pycharm/?fromMenu网盘:链接:https://pan.b ...

  4. 在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法

    如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空.2)对于少于100脚的产品,有2种接法:  2.1)OSC_I ...

  5. 分析bug是前端还是后端的

    如何分析一个bug是前端还是后端的? 平常提bug的时候,前端开发和后端开发总是扯皮,不承认是对方的bug 这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数 ...

  6. zoomeye使用

    简介 ZoomEye是一款针对网络空间的搜索引擎,收录了互联网空间中的设备.网站及其使用的服务或组件等信息. ZoomEye 拥有两大探测引擎:Xmap 和 Wmap,分别针对网络空间中的设备及网站, ...

  7. Linux之vim文本编译器

    Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.和Emacs并列成为类Unix系统用户最喜欢的编辑器. [root@izwz98re ...

  8. 第二章 Vue快速入门--7 讲解v-cloak、v-text、v-html的基本使用

    7 讲解v-cloak.v-text.v-html的基本使用 <!DOCTYPE html> <html lang="en"> <head> & ...

  9. 10分钟搭建Kubernetes容器集群平台(kubeadm)

    官方提供Kubernetes部署3种方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境 ...

  10. mongodb 批量添加、修改和删除

    1.使用MongoTemplate a.批量插入 Insert a Collection of objects into a collection in a single batch write to ...