用户头像

小刻也能看懂的明日方舟游戏解包教程

图片出自鹰角网络手游《明日方舟》活动 "See You Soon"


⚠️ 提示 ​

  • 本文讲的"解包"仅限于提取游戏中已实装的美术素材(立绘、模型、贴图等),供同人创作参考使用,不涉及dps,兔头拉表和游戏逻辑数据的挖掘。
  • 不鼓励把官方美术素材用于商业用途,解出的素材版权归原厂商所有,请尊重版权方权益。
  • 本方法截至2026年7月验证可用,游戏版本更新后资源格式可能变化,届时方法未必仍然有效,请自行判断。
  • 二次創作ガイドラインが公開されているか事前に確認を。あと迷惑行為はやめましょう

必备工具 ​

  • 明日方舟客户端(PC、安卓、模拟器皆可)
  • 本文接下来提供的解包工具
  • 不知道为什么会出现在这里的苹果乐

资源获取 ​

“游戏解包一定要有包。” ——将军

明日方舟是基于 Unity 游戏引擎开发的游戏,相关资源会打包在一种 AssetBundle 文件中(以下简称AB文件)。解包就是在从AB文件中提取立绘/音乐/文本等原素材。

接下来会介绍安卓端和PC端各自获取游戏资源的方法:

安卓设备(含模拟器)

Android系统上的明日方舟AB文件分两部分,一部分在apk安装包里,一部分是由热更新提供

1.从官网或者应用商店将安装包下载到本地之后,用解压工具打开(如果遇到问题,可以尝试把后缀改为zip后解压)。然后提取里面的 assets/AB/Android 文件夹

2.更新游戏到最新版本并在线下载全部游戏资源,然后找到手机存储的 Android/data/com.hypergryph.arknights/files/Bundles 文件夹

3.将步骤2操作的文件夹内容复制到步骤1里面的目录下,同名文件选择覆盖,此时得到的是完整的游戏资源

4.对于模拟器,可以使用 MT管理器 将上述文件复制到模拟器提供的共享文件夹中,这个操作将windows中的某块目录借给了模拟器沙盒,使得模拟器获得向磁盘写入文件的权限,获取AB文件的执行步骤和上文一致。如果有多次解包需求也推荐使用ADB(Android Debug Bridge,安卓调试桥)工具。

PC设备

1.下载游戏并完成所有热更新(可以启动游戏验证不再需要下载更多内容,已可游玩)。

2.关闭游戏,点击鹰角启动器右下角“开始游戏”旁边的菜单键(以防你不知道,图表是三条小横线)。点击“游戏设置”,然后点击“打开文件目录”

3.打开 Arknights_Data 文件夹,其中 StreamingAssets/AB/Windows 是 PC 端游戏的初始资源,PersistentData/Bundles 是热更新资源

4.复制两个文件夹到桌面,把热更新资源拷贝到初始资源目录下,同名文件选择覆盖,此时得到的是完整的游戏资源

解包工具使用 ​

开发者日志 ​

计划与架构 ​

关于笔者为什么要做这样一个工具,其实有一段很有意思的小故事,但是由于个人隐私原因在这里不做赘述

整体计划分为8步,在实际过程中有大量AI辅助的理解和开发。接下来完全是出于个人的兴趣爱好,会把整个开发过程的所有问题讲一遍

P0:解密层 ​

明日方舟的AB包采用变种LZ4压缩

LZ4的优势在于极高的解压速度(接近内存总线带宽极限)和较低CPU开销。它的基本压缩原理是 滑动窗口字典匹配 和 哈希表加速,前者继承自LZ77。使用LZ4压缩时会扫描数据流并通过哈希表快速匹配当前4字节的内容,若在64KB窗口内(滑动回溯窗口的最大长度)找到历史匹配,就尽可能向后延展匹配长度,并且将该段替换为 向前偏移 offset 字节,复制 length 字节的引用,未匹配的散落字节会作为字面量保留原样并输出。

在这种格式下,数据被划分为一串串连续的Sequence,每个Sequence都包括Token,LiteralData,Offset,变种LZ4算法的意思是把token的高低4位互换,偏移量的2字节位置互换

这一层只是弱混淆,为通用解包工具产生一点阻碍,就像黑流树海的大狗伪装一样