出售域名 11365.com.cn
有需要请联系 16826375@qq.com
在手机上浏览
在手机上浏览

反编译调试利器dnSpy

发布日期:2020-09-05

dnSpy是一款反编译软件,可以帮助我们对exe、dll进行编译和调试。

下载地址:https://github.com/0xd4d/dnSpy/releases

下载完成后直接解压缩,dnSpy分为.net framework版和.net core版,点击程序“dnSpy.exe”打开(要使用管理员权限打开)。

 

一、反编译

.net的反编译软件,以前也经常用net.reflector。

它们之间的区别在于,dnSpy不仅可以反编译而且还可以修改代码并覆盖。是不是很神奇,并不要你用VS重新生成了。

下面我们通过一个web项目讲解一下,修改dll代码并不要密码来登录会员。

随便输入密码,提示密码错误:

启动dnSpy,打开web项目下面的登录验证模块(如SinGooCMS.Application),找到UserService类的Login方法

这里需要把operateResult.ret设置成ResultType.Success就可以了。在此方法体内右键选择“编辑方法(C#)”。

在打开的编辑窗口,添加“operateResult.ret = ResultType.Success;”,表示登录成功,然后保存。

然后保存,此时如果此时web项目正在运行,会提示dll正被其它进程调用,关闭web项目(IIS停止站点),再保存即可。

再启用IIS,打开web项目会员登录,随便输入密码就可以登录了。

 

二、调试

dnSpy可以调试生产环境的程序,解决了生产环境出现了bug而头疼的事情。

点击菜单:“调试”->“附加到进程”,双击选择中“w3wp.exe”。

然后点击菜单“文件”->“打开”,打开需要调试的模块,比如“SinGooCMS.Application.dll”。定位到登录方法,运行项目就能捕获断点了。

另,几个要注意的地方,当附加进程到asp.net网站的w3wp.exe进程时,需要加载模板,而不是bin目录下的文件