分类:安卓/Android

拆解阴阳师安卓apk

不得不说阴阳师真的是个肝到死的游戏。
最近在升6星。在有全程白蛋的情况下,依旧攒狗粮攒到死。

1个6星=……=360个2星,不算经验……。
哭了。

附上触乐视频,各位且看一乐。

(因为渣浪没有给video.weibo.com开https支持,因此没法直接嵌入到这个页面里面)
http://video.weibo.com/player/1034:7755106f8dfb556c1e7f2d40b0d52f31/v.swf

今天的正题是如何拆解《阴阳师》的安卓apk。

为了研究一下素材,在红米里面装了一下。不得不说这玩意的优化真是……(虽然红米也很烂就是了),完全卡的跑不动。

我已经事先刷过了Recovery,进到Recovery里面通过USB链接到电脑拷贝出阴阳师全部文件。

这部分参考的帖子主要是:http://nga.178.com/read.php?tid=10187005&rand=993

路径基本没差,小米版的路径后面有个.mi,我用的是网易官方版,所以没有太大区别。

使用安卓安装数据的原因,是因为安装包拆出来的数据包(*.npk)是分段的,这个不太好解决,还是需要程序自己去解压合并。

这时候,我们需要一个这样的程序:

QuickBMS
by Luigi Auriemma
e-mail: me@aluigi.org
web: aluigi.org
home: http://quickbms.aluigi.org
help: http://zenhax.com

官网下载在上面。

配合这样一个脚本,脚本来自于某个技术论坛里解压网易另外一个使用 Neox 引擎的游戏所给出的脚本。


# NXPK (script 0.1.1)
# script for QuickBMS http://quickbms.aluigi.org

idstring "NXPK"
get FILES long
get OFFSET asize
xmath OFFSET "OFFSET - (FILES * 0x1c)"
goto OFFSET
for i = 0 < FILES
    get NAME_CRC long
    get OFFSET long
    get ZSIZE long
    get SIZE long
    get ZCRC long
    get CRC long
    get FLAGS long
    if FLAGS == 2
        comtype lz4
    else    # 0
        comtype zlib
    endif
    if SIZE == ZSIZE
        log "" OFFSET SIZE
    else
        clog "" OFFSET ZSIZE SIZE
    endif
next i   

将res.npk使用这个脚本即可解压。

可以看出,这个包基本就是对已有压缩包进行了额外的封包。
还挺好玩的。