dnSpy反编译Unity Apk

引子

我发现网上有些人做的Unity游戏很不错,想要一份源码来研究,于是去找到了一些游戏的APK,我用dnSpy软件将apk反编译了一下,拿到了Unity游戏的源码(包括资源和代码)

资源准备

dnSpy

dnspy GItHub下载地址

Unity APK

准备一个你想要反编译的Apk

下载dnSpy

打开dnSpy的GitHub下载地址,如下图所示

dnSpy反编译Unity Apk_第1张图片

如下图所示:这是下载后的dnSpy文件夹

dnSpy反编译Unity Apk_第2张图片

反编译Unity Apk

1. 准备一个Unity Apk

如下图所示:

dnSpy反编译Unity Apk_第3张图片

2. 修改文件格式

将Apk文件的后缀名 .apk 改为 .rar 或者 .zip格式,如下图所示:

dnSpy反编译Unity Apk_第4张图片

3. 解压文件

如下图所示,这是解压后的文件夹结构目录

dnSpy反编译Unity Apk_第5张图片

4. 文件夹作用分析

assets Unity项目里面的资源文件和代码文件
lib

arm和x86所需要的so文件

META-INF 信息包
res 存放资源图片例如Icon等
AndroidMainifest.xml 清单文件
classes.dex Android Dalvik字节码
resources.arsc 编译后的二进制资源文件

这篇文章小编主要关注的是assets文件目录,里面有我想要的资源和代码

5. 查看源码

如下图进行操作,如果打开后找不到Assembly-CSharp.dll,有可能这个Unity Apk是以IL2CPP方式构建出来的,并非Mono方式

dnSpy反编译Unity Apk_第6张图片

如下图进行操作

dnSpy反编译Unity Apk_第7张图片

反编译Apk效果图

dnSpy反编译Unity Apk_第8张图片

总结

unity游戏太容易被分析出来了,如果项目十分重要,那代码混淆、加密等工作还是十分重要的

当然,除了贴图,像音频文件、xml文件、着色器等都能查看到,不过模型目测不能提取出来(这就要用disunity了)

你可能感兴趣的:(unity,游戏引擎)