【Unity】DnSpy断点调试Unity已发行游戏的dll

前言

DnSpy是本人一直在用的反编译软件,很好用,今天闲来无事的时候用DnSpy的调试功能断点调试了一下Unity的游戏【发行版】,很好用,于是想着要分享给大家。

前期准备

DnSpy下载
Unity调试教程(英文教程)

使用方法【仅针对发行版】

本方法仅针对发行版,即已经写好并且发布的游戏。

1. 查看游戏开发的Unity版本

查看游戏是用哪一个版本的Unity开发的可以通过AssetStudio【一款专门查看Unity游戏的资源文件的软件】查看,当然这是比较复杂的,不过一定是可以查询出来的。
这里介绍一个简单的方法,找到你要打开的游戏的EXE可执行文件,【右键属性-详细信息】就可以看到。
【Unity】DnSpy断点调试Unity已发行游戏的dll_第1张图片
可以看到,我这边开发使用的Unity版本就是5.2.4,记住这个版本号。

2.Mono.dll下载

Mono文件下载
下载页面找到Unity那些文件,根据自己的版本下载对应的压缩包。
【Unity】DnSpy断点调试Unity已发行游戏的dll_第2张图片
我这边因为版本为5.2.4,所以这里下载5.x版本。
不同的Unity版本使用不同的mono.dll文件名。较旧的Unity游戏使用.NET 2.0-3.5程序集并使用mono.dll,而较旧的Unity游戏使用.NET 4.x程序集mono-2.0-bdwgc.dll。此文件存储在不同的位置,具体取决于Unity版本,一般的话就是以下几个位置:

 \  _Data \ Mono \ mono.dll
 \  _Data \ Mono \ EmbedRuntime \ mono.dll
 \  _Data \ MonoBleedingEdge \ EmbedRuntime \ mono-2.0-bdwgc.dll
 \ Mono \ EmbedRuntime \ mono.dll
 \ MonoBleedingEdge \ EmbedRuntime \ mono-2.0-bdwgc.dll

将dnSpy的补丁mono.dll/ mono-2.0-bdwgc.dll找到对应版本后将文件复制到游戏中,覆盖其文件。

3. DnSpy调试

在我们想要调试的地方打上断点【快捷键:F9
【Unity】DnSpy断点调试Unity已发行游戏的dll_第3张图片
然后点击【调试-启动调试】
【Unity】DnSpy断点调试Unity已发行游戏的dll_第4张图片
然后配置如下,基本上选定要运行的EXE文件和启动目录之后(默认会选定好),然后选择自己喜欢的端口(一定要没有被占用),然后点击OK就可以开始调试了。
【Unity】DnSpy断点调试Unity已发行游戏的dll_第5张图片

最后

最后和大家说一点,一般用来查看局部变量或者堆栈什么的还是很有效的【对方混淆了dll的前提下】,如果没有混淆dll的话其实直接用dnspy大部分逻辑就可以看清楚。
最后,最好不要用在修改破解上,算了,这就当我放屁 ,不要用在非法的事情上啊!!!

你可能感兴趣的:(【Unity】DnSpy断点调试Unity已发行游戏的dll)