Disunity_V0.5.0 提取Unity生成的Apk的资源

首先说明一点,我最后并没有成功,仅供大家参考。

我做这个是因为,我的Unity工程中的Scene0.unity场景文件损坏了,我就想着应该这个文件在生成的APK里边,就想把它给解出来用。

步骤,

1.解压APK

将APK文件后缀改为rar/zip之类的直接解压得到下面的文件:

这就是个中规中矩的安卓APK的内部了。

2.寻找资源文件

喏~在这儿了

Managed中是所有引用的dll,以及自己的脚本文件组成的dll,听说在这个里边:Assembly-UnityScript.dll,不过这个不关我的事,我还要找.unity场景文件!!!!!

当然,我也想要资源文件,因为觊觎其他游戏的资源文件很久了,嘿嘿~

3.学习使用disunity_v0.5.0工具

你解压这个工具后,里边就有个读我,就是说明书了

来我们来初步读下

看起来是不是很牛逼,支持 2~5的反解。不过它又说,由于只支持原生文件的读写,这些文件呢不含任何对象反序列化,(这句我没懂,还得请教大家)。不过后面那句我是懂了,就是说反正不能直接解出来Assert了。

底下是操作说明。

用法是:disunity <command> [options] <file>

就是说disunity 加必写命令,加可选说明,加必写文件地址

再底下说命令分两组,一组是用来解assert的,另外一组用来解bundle的。

我关注Assert这组,

asset unpack      | Unpacks raw data blocks from a file. Could be useful for manual extraction.

                             解压文件原生数据块,这个或许对手动解压有用哦

|asset blocks      | List data block offsets and sizes. Could be useful for manual extraction.

                             列出数据块的偏移和大小,这个当然对手动解压有用哦

(呀,我写到这里,突然发现我应该把这个asert blocks好好用用,或许能进一步解决问题。)

4.操作

好,有了这两个命令,可以开张了。

先用assert unpack来解压。

方法是:CMD定位到disunity_v0.5.0目录中,然后写

disunity assert unpack C:\Assert\bin\Data\*.*

回车后,发现一大堆无法识别split1/split2/... ... 的错误。

5.症结所在

问题出来了,我需要的其实就是.assert,然而这里是.assert.split*

至于怎么把这些分割包合并起来,尚无对策。


************************************************************************************************************************************************************************************************

***************************************************************华丽的分割线******************************************************************************************************************

上面一节研究就完了,然后我猛然想起来,我可以试试Unity生成的exe文件的反解密

没错,这个就是exe的数据包了,其中sharedassets0.assets就是了,没有分割啊,多好的,然后我就如上面步骤一样的把这个东西成功解压了,解压后如下:

得到了这个东西,这个呢,就是上面提到过的blocks了,至于这个再怎么解压,我也没办法了,不过上面有个命令是assert blocks或许有用,我有时间再研究研究吧




你可能感兴趣的:(UNITY3D游戏开发)