.NET程序集编辑器/调试器 dnSpy 使用介绍
创始人
2024-11-21 18:05:25
0

原文链接:https://www.cnblogs.com/zhaotianff/p/17352882.html

dnSpy

dnSpy是一个.NET程序集调试器和编辑器。它可以用它来编辑和调试程序集,即使在没有源码的情况下。

主要功能:

调试.NET和Unity程序集
编辑.NET和Unity程序集
 

项目地址:

https://github.com/dnSpy/dnSpy

直接下载Release即可。

完整的功能介绍可以参考 项目下的README

这玩意儿简直就是神器啊,像平常win32程序,反汇编出来,只能通过修改汇编代码来达到修改程序的目的。

dnSpy除了具备了.NET Reflector、ILSpy等工具的反编译功能外,还具备了调试和编辑程序集的功能。

在最初我接触这个还是为了修改程序集里的资源文本,后面在论坛看到使用dnSpy修改程序集达到破解的目的。这里就系统的学习一下dnSpy,并做个总结。

反编译功能

直接通过文件菜单,打开本地程序集或者GAC程序集,就可以对程序集进行反编译。

对于.NET自带程序集里InternalXXX或XXXInternal的函数,可以参考https://www.cnblogs.com/zhaotianff/p/16555734.html

如何修改程序集资源

如果程序集里定义了字符串资源,在没有源码的情况下,可以利用dnSpy修改程序集资源

最初我用dnSpy也是修改程序集里多语言翻译的字符串

创建一个WPF工程,增加一条字符串资源 

然后在界面上增加一个按钮,在按钮事件里使用消息框输出这条字符串

然后使用dnSpy打开,找到这条字符串资源,可以直接编辑

编辑完成后,再运行程序,结果如下

说明:

dnSpy不支持修改XAML,所以定义在XAML里的字符串是无法修改的

如何调试程序集

使用dnSpy打开需要调试的程序集

找到需要调试的代码段,添加断点

点击启动

按钮,

如果调试的是DLL,需要在可执行程序这里选择调用这个DLL的程序。

中断于这里可以根据这里需求进行选择,如果想直接跳到自己设置的断点处开始调试,可以选择不要中断

单击确定,即可开始调试程序。

说明:

1.dnSpy的调试和Visual Studio调试差不多,这里就不做详细介绍了。快捷键啥的也和Visual Studio基本上差不多,如添加断点可以按F9,F10逐过程,F11逐语句等。

2.对于已经混淆过的代码,可以使用de4dot进行还原。https://www.cnblogs.com/zhaotianff/p/17229625.html。

开始调试后,在局部变量这里可以看到实时变量信息

如何修改方法/类

在没有源码的情况下,可以使用dnSpy修改方法/类的代码。

这里还是以前面的代码为例

假设我们要修改按钮点击事件的处理代码,直接在函数上右键,选择编辑方法

添加一行,然后点编译按钮

说明:如果模块的依赖库没有在dnSpy中打开,会报类型找不到,类似下面这样。

 在左下角添加类型引用即可(如果是.Net Framwork自带的类,从GAC中打开就可以)

编译通过后,打开文件菜单,选择保存模块

单击确定,就可以将刚才修改的内容保存到模块中去。此时我们再运行,点击 按钮,就会弹出Modified by dnSpy,再弹出HelloWorld

 dnSpy还提供了其它几种编辑类型,跟上面的操作大同小异,可以自行尝试。

说明:

如果要修改已经混淆过,而且不能还原的代码,可以

1.寻找能通过编译的函数进行修改,这种方式不一定能达到预期效果,因为有可能取不到自己所需要的变量值。

2.直接修改IL代码,对于不懂IL的人来说这种方式有点困难。不过可以先模仿编写C#代码,再获取IL代码。

对于异步代码,目前还需要研究async/await的实现原理,后面再更新。

到这里,已经可以使用dnSpy对一般的程序集进行调试和修改了。复杂的情况,我目前也在摸索中。

相关内容

热门资讯

透视黑科技!wepoker透视... 透视黑科技!wepoker透视方法(透视)竟然有挂,2025版教程(有挂新版)-哔哩哔哩wepoke...
2分钟透视!大菠萝免费辅助器(... 2分钟透视!大菠萝免费辅助器(透视)原来真的是有挂,必胜教程(详细教程)-哔哩哔哩大菠萝免费辅助器辅...
透视科技!德州局透视脚本下载安... 透视科技!德州局透视脚本下载安装最新版本,wpk辅助插件,学习教程(有挂神器)-哔哩哔哩1、德州局透...
透视实锤!wepoker透视脚... 透视实锤!wepoker透视脚本免费(透视)确实真的是有挂,wepoke教程(有挂开挂)-哔哩哔哩1...
四分钟分享!wepoker辅助... 四分钟分享!wepoker辅助是真的假的(透视)都是真的有挂,大神讲解(真的有挂)-哔哩哔哩1、打开...
透视计算!德普之星辅助软件,德... 透视计算!德普之星辅助软件,德普辅助软件,课程教程(有挂解密)-哔哩哔哩一、德普之星辅助软件AI软件...
透视美元局!竞技联盟透视(透视... 透视美元局!竞技联盟透视(透视)确实是有挂,辅助教程(有挂苹果)-哔哩哔哩竞技联盟透视软件透明挂微扑...
透视工具!hhpoker必备开... 透视工具!hhpoker必备开挂,智星菠萝辅助,方案教程(有挂技巧)-哔哩哔哩1、用户打开应用后不用...
9分钟专业!wepoker透视... 9分钟专业!wepoker透视器免费(透视)竟然是真的挂,透视教程(有挂技术)-哔哩哔哩1、每一步都...
透视软件!黑侠破解wepoke... 透视软件!黑侠破解wepoker(透视)都是真的是有挂,实用技巧(有挂黑科技)-哔哩哔哩亲,关键说明...