仓库源文站点原文


tags: [Arcaea, 逆向] title: 解包 Arcaea_NS(二) last_modified_at: 2023-3-18 slug: arcaea-ns-depack-2 redirect_from:


免责声明:本博文相关内容已涉及 lowiro 的实际利益。本博文内容仅用于个人软件安全研究与学习。请勿将博文内容用于商业或者非法用途,如果阁下愿意继续阅读,请您承诺将为自己的全部行为负责。

<small><del>[出处](https://wlt.tql.moe)</del></small>

引入

上一篇博文中,我介绍了解包Arcaea本体的教程

然而,不久后Lowiro就以Update的形式发布了更新,解包Update的方式也略有变化。<del>又能水一篇博文了</del>

开始解包

NSP/XCI(本体) -> TIK

首先,你需要将本体解包,并将其中的TIK文件提取备用,此处参见上一篇博文

NSP/XCI -> NCA

接下来,你需要将Update或包含Update及本体的NSP/XCI文件解包,得到许多NCA文件

多个文件名为十六进制字符串,大小不等的NCA文件

NCA+TIK -> JSON+PACK

再次运行解包工具整合版.bat,选择1(选择NCA文件),然后选择3(更新 (本体 + 补丁)),再选2(转换为 Romfs 文件夹),然后先拖入最大的nca文件(如图中841MB的)(按照上一篇博文提取到的也可以),再拖入第二大的nca文件(如图中169MB的),再拖入第一步得到的的tik文件(md5:547f644e44dd734ba3498a0ff5e4a7d7

输出Saving xxx/arc_0.json, Saving xxx/arc_0.data, Saving xxx/arc_1.json等多行

完成后,NCA-NSP-XCI_TO extract文件夹内会出现一个叫Updated_LayeredFS的文件夹,此文件夹内的romfs文件夹内会有多个文件,分别是arc_?.jsonarc_?.pack,其中?为由0开始递增的数字

你需要分别看每个json文件是不是乱码,如果是就把对应的json和pack文件都删掉,把所留下的不是乱码的文件分别执行下一步(可能执行多次)

JSON+PACK -> 原始文件

将剩下的每组文件分别使用arc_pack_extract.py提取,完事。