无源码如何去调试程序。.NET 反编译调试神器,你值得拥有(转)

好玩意必须收藏了。图片是转发者自个加上去的

原文:https://mp.weixin.qq.com/s?__biz=MzIwMDM3MjcxOQ==&mid=2458772998&idx=1&sn=0165aad1862a0450df404d9c5e6b174e&chksm=81877e86b6f0f7905c9470d723688ef448ea90fd6e2b961a2081e7d3d035e1698ff9ec388614&mpshare=1&scene=23&srcid=0118H2TprFnviUrUSQTdDOA4#rd

可前往[dnSpy官网下载:https://github.com/0xd4d/dnSpy]或直接从我的[分享链接:https://1drv.ms/u/s!Ag9J9FrcQ96Zg-hU64GPaM-GtASMCA]下载(内置包含.NET Framework 4.7.1,若运行提示需要安装,可解压找到 .NETFramework4.7.1-x86-x64-AllOS-ENU.exe安装)。

具体操作步骤如下所示:

  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应用)

图一:配置环境变量

 

 

图二:获取IIS站点对应的进程ID

 

 

图三:如何附加进程并找到要调试的程序集

转发者打开的是32位的dnSpy.exe。若找不到进程,可以试试打开64位的dnSpy.exe

图四:如何修改代码重新编译并导出程序集

步骤:打开需要修改的程序集——右击(修改类/方法)——修改完成后编译——左上角菜单的文件——保存模块

 

posted @ 2020-11-03 17:53  兮去  阅读(27)  评论(0编辑  收藏  举报