欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

unity 从apk包中提取资源

程序员文章站 2022-07-14 22:19:18
...

unity 从apk包中提取资源

前提:使用本方法来提取资源有个前提就是资源没有被加密

(1)打开apk包

首先,将你的apk包重命名为zip或者rar类型的文件,然后进行解压缩,获取下面的文件
  
各个部分的说明如下表:

文件 说明
assets Unity游戏里面的资源和代码
lib arm和x86需要的so文件
META-INF 信息包
res 存放icon等资源
AndroidManifest.xml 清单文件
classes.dex Android Dalvik字节码
resources.arsc 编译后的二进制资源文件

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

(2)提取代码

下载 netreflector 这个不错本人亲测解压安装直接可以用: netreflector下载 里面有详细安装流程就不多说了

安装好之后,双击Reflector.exe,打开该软件可以看到如下画面 ,file 第一步骤解压的文件\assets\bin\Data\Managed\Assembly-CSharp.dll,可以看到

unity 从apk包中提取资源
通过点击右键Assembly-CSharp进行导出,选好导出目录,等待一会,就能得到以下的源代码

(3)提取资源

UnityStudio

这个工具非常牛逼。UnityStudio可以直接在自己的软件上查看图片、shader、文本、还能直接播放音频、甚至还能看场景Hierarchy视图的树状结构;下载 选择v0.10.0以下的版本解压可以看到如下文件,打开软件unity 从apk包中提取资源
file第一步骤下的\assets\bin文件,可以看到:
unity 从apk包中提取资源
这两个一个是场景层级视图,一个是资源文件列表。在资源列表中,右边的大框可以预览资源,可以多选或单选然后用上面的export菜单按钮选择导出方式进行导出。整个过程很简单主要是利用工具。目前来看对2D资源的导出没有问题,对于3D资源还要进一步实验。值得一提的是标题上有一个类似unity版本号的东西,不知道是不是准确识别了app开发时用的unity版本。

选择 asset Lise 然后Export 导出即可。

                                </div>

上面:
使用本方法来提取资源有个前提就是资源没有被加密,这个问题会在后面进行研究。而且这个方式目前是在Windows平台下使用的。
以青蛙旅行这款游戏为例,先准备好其apk包,然后对其进行解压。这里有两种方式,一种是修改apk包后缀为zip然后解压,不过这样似乎会让xml文件呈现乱码显示,如果希望看到xml文件的就不建议这样了,但是如果只想提取资源的话应该不会受到影响。
另一种是使用apk反编译工具。这种方法可以看下面链接中一位博主的文章https://www.cnblogs.com/chen110xi/p/6612437.html
在之后就是要使用另一个工具了https://github.com/Perfare/UnityStudio/releases 这里是下载地址。

链接:https://www.jianshu.com/p/54aad110bbdc

相关标签: android