NET程序源码级动态调试工具-dnspy最新版(2020.12.08)不能启动的解决方法

Dnspy是一个能直接反编译未混淆的net程序,并能动态调试、不用编译,直接可以修改调试NET程序的工具,有点像WINXP的OD、WIN7以上的X64DBG,有X86和X64两个版本,有点可惜的是,作者现在不更新了,最新的版本停留在2020.12.08这个版本上,而且作者做了只读存档,之前的版本都没了,只有最后一个版本。

2d6a7ca89df74adc9724c2b38a364934.png

最近想在VM虚拟机上的WIN7 X86调试下某个net程序,想起这个软件,就去翻Github(https://github.com/dnSpy/dnSpy),这个软件是绿色版的编译文件(https://github.com/dnSpy/dnSpy/releases/tag/v6.1.8),因为我的系统是X86的所以需下载WIN32的版本(https://github.com/dnSpy/dnSpy/releases/download/v6.1.8/dnSpy-net-win32.zip),X64位的同学点这个(https://github.com/dnSpy/dnSpy/releases/download/v6.1.8/dnSpy-net-win64.zip),下载后直接解压,运行根目录的主程序dnSpy.exe

dc383a4d10864483989268eaa5411bf3.png

 发现并没有任何反应,程序并没有启动。碰到程序运行无反应或者错误,我们第一反应,应该去查看下window系统日志,打开方式如下:

 1.右击桌面上的计算机,点击管理菜单

ae7d58f1178542cca1a593f8f0c7c3c6.png

2. 点击事件查看器,可以看到中间的错误日志消息中有一个.NET Runtime的错误(这个错误日志可能会和我们的dnSpy有关,先双击点进去看看情况)

f77987dacf0e4374b308d109a40b60c6.png

3. 我们可以看到这个错误日志确实是我们的dnSpy引起的,具体原因是hostfxr.dll未加载成功,并给出了解决方法和链接,我们打开链接看看。

4a82b9b757ab4a47b4ff530c138c66fc.png

4.链接中有.NET6和.NET7可选,既然我们的WIN7 X86不满足.NET7的要求,就用.NET6吧

2f2a0106e6084e708df8edd2d2b5eb7f.pngd1b9b2d2bc774a9086d5fdc20830f71b.png5.把页面往上拉,找到如下页面,或直接打开如下链接

(https://dotnet.microsoft.com/zh-cn/download/dotnet)

d6a61d5733284232a3c27852971025f6.png

 6.点击我们需要的.NET6(https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0)

755976535d4d47308464b038fd5639e8.png

 7.下载".NET6的桌面运行时"即可,有X86和X64版本按需下载。

X86链接:https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/runtime-desktop-6.0.24-windows-x86-installer

X64链接:https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/runtime-desktop-6.0.24-windows-x64-installer

a361a603a4b4445fa873b51f5e0781c9.png8.可能你认为完了,其实安装完.NET6 Runtime还是打不开dnSpy,是要安装.NET7吗?其实不然,.NET7是新的.NET,而我们的dnSpy在2020年底就停止更新了,显然不会使用.NET7, 那问题出在哪里,其实还是刚刚日志中的链接(https://go.microsoft.com/fwlink/?linkid=798306) 给了我们答案,只是我们没仔细看,打开链接稍微下拉一点点就可以看到如下的页面。

0d78cfe8e9c84fce898bcf774b40bf40.png

我们看下edge浏览器的怎么翻译的

1675411deb47470eb045420f5e9e536e.png

显然这个KB3063858的32位补丁就是我们的治病良药。我把下载链接直接放下面给大家下载。

KB3063858的32位补丁链接:https://www.microsoft.com/download/details.aspx?id=47409

KB3063858的64位补丁链接:https://aka.ms/vs/16/release/vc_redist.x64.exe

至于这个32位补丁怎么下载,如果不知道可以看下面。

(PS:通过上面的翻译截图我们看到,微软也给出了如WIN8.1、WIN2012服务器版本的C++运行库依赖,请大家依葫芦画瓢,自行按需下载)

36ec657174414cf4957616c60f6aa4e5.png

9.然后我们运行此补丁(我的WIN7是虚拟机所以复制到虚拟机系统里),双击运行。

a9df44c44c5949f99256cdb572204f6e.png

点击是,确认安装。

a9ac2facc0f34729af6d8ddba8c8fde1.png

最后点击 立即重新启动即可。 

7bb8733aa872409fbe3ab65c72d5af6d.png

 重启后,马上打开我们的dnSpy程序试试吧!

f8b5eab5221244c3a72d4b445d263c79.png

如果说你还是没有打开dnspy,可能需要安装在补丁上面一行的c++ 2015-2019运行库合集,应该就没什么问题了。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虫鸣@蝶舞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值