第3天: dnspy逆向unity游戏 |
您所在的位置:网站首页 › unity游戏保存为exe › 第3天: dnspy逆向unity游戏 |
调试Unity游戏 dnSpy可以调试Unity调试版本和发布版本。发布版本需要修改的文件是mono-2.0-bdwgc.dll / mono.dll。也可以将发布版本转换为调试版本(还不会)。 调试发行版先备份游戏,然后进行调试。 调试就需要对mono-2.0-bdwgc.dll / mono.dll进行打补丁,有现成的,需要调试,直接替换文件即可。 首先需要知道Unity的版本号,直接看游戏主程序的属性即可。 版本号是2018.3.8 我们需要找到mono-2.0-bdwgc.dll / mono.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文件复制到游戏中,覆盖其文件。 可以在下方下载补丁文件。 https://github.com/0xd4d/dnSpy/releases 现在转到debug->start debugging并选择Unity debug engine。如果游戏崩溃,您可能使用了错误的版本,或者在游戏为64位时使用了32位文件,反之亦然。 可以看到,我们动态调试成功了。 静态分析用一道题看看静态吧。 dnspy载入Assembly-CSharp.dll,找到输出flag的源码: 可以看出,要得到flag,必须得到redList,blueList,Moon的坐标,Cloud的坐标,hp,score。 可以猜到,hp,score是要爆破的,拿坐标怎么拿呢? 可以通过修改代码,让输出的flag为我们需要的变量,像这样: 运行游戏会得到如下输出,说明s3=17. 继续修改变量,得到所有的未知变量。 然后写爆破脚本就可以了。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |