Unity3D提取Apk包的代码与资源


Unity3D提取Apk包的代码与资源

https://www.cnblogs.com/programmer-kaima/p/5847429.html

  1. 打开apk包

我们主要关注的是assets目录,里面有我们想要的资源和代码。

  1. 提取资源

需要用到Unity Studio,可在Github上下载 https://github.com/Perfare/UnityStudio/releases

AssetStudio.x64.v0.12.58.zip

打开Unity Studio,点File/Load folder,选中assets\bin\Data该目录,然后就能得到

其中Scene Hierarchy可以查看游戏里面场景的分布情况,而Asset List可以查看资源。

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

  1. 提取代码

Unity把我们大部分的代码都放到了 “Assembly-CSharp.dll” 这个dll文件中。(当然还有其他代码放到了first-pass之类的代码,但不是主要的)

我们可以在assets\bin\Data\Managed这个路径下找到所有需要的dll文件。

要解析dll文件,我用到了“.NET Reflector 8.5.0.179”这个软件(自行百度下载),用该软件打开”Assembly-CSharp.dll”得到以下

通过点击右键选择该软件中打开的”Assembly-CSharp”,选择“Export Source Code”进行导出,选好导出目录,等待一会,就能得到源代码

完全和写的一模一样,一点不变地导出来了。(由此可见代码混淆和加密的重要性了)

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