当先锋百科网

首页 1 2 3 4 5 6 7

0.准备工作

下载dnspy
https://github.com/dnSpy/dnSpy/releases

根据游戏是32位还是64位选择dnspy,不是根据自己电脑位数(其实32位还是64位都可以反编译看代码,但是位数不对,则不能进行调试)
在这里插入图片描述
下载完成后解压即可

1.简单使用(查看unity游戏源码)

1.1 打开dnspy

1.2 找到游戏位置

一般在游戏目录下的 游戏名_Data/Managed下
在这里插入图片描述

1.3 将Assembly-CSharp.dll拖入dnspy中

之后即可看到反编译的各个类
在这里插入图片描述

2.调试运行游戏

2.1 备份整个游戏

2.2 下载调试版本mono.dll

根据运行exe的信息判断unity版本
在这里插入图片描述
下载:
Unity-debugging-5.x.zip

2.3 替换mono.dll

根据unity版本不同mono.dll的位置不同,可能在以下位置

<root>\<GAME>_Data\Mono\mono.dll
<root>\<GAME>_Data\Mono\EmbedRuntime\mono.dll
<root>\<GAME>_Data\MonoBleedingEdge\EmbedRuntime\mono-2.0-bdwgc.dll
<root>\Mono\EmbedRuntime\mono.dll
<root>\MonoBleedingEdge\EmbedRuntime\mono-2.0-bdwgc.dll

根据游戏位数选择替换的mono.dll(如果错误的话unity项目将无法运行)

2.4 添加环境变量

DNSPY_UNITY_DBG:
--debugger-agent=transport=dt_socket,server=y,address=127.0.0.1:55555,defer=y,no-hide-debugger
DNSPY_UNITY_DBG2:
--debugger-agent=transport=dt_socket,server=y,address=127.0.0.1:55555,suspend=n,no-hide-debugger

2.5 打开游戏对应位数的dnspy

2.6 打断点

2.7 开始调试

选择调试引擎unity和运行程序,即可调试
在这里插入图片描述

3.调试正在运行的程序

前面同上面的流程到2.6

3.1 运行游戏

3.2 调试

选择unity(连接)
在这里插入图片描述

4.注意点

如果调试不了可能是dnspy位数不对。