欢迎光临散文网 会员登陆 & 注册

【解包教程】下江小春也能看懂的碧蓝档案轻松解包思路【游戏资源提取相关】

2023-03-10 21:51 作者:未定义的Null  | 我要投稿

使用最近版本的AssetStudio(https://github.com/Perfare/AssetStudio/releases/tag/v0.16.47)可以打开最近更新中的的AssetBundles,

例如以下资源:

https://prod-clientpatch.bluearchiveyostar.com/r53_1_29_k9al0rwmplkqmj9cn3ap/Android/assets-_mx-spinecharacters-np0040_spr-_mxdependency-2023-03-03_assets_all_1292436859.bundle

(国际服)如果把一堆东西拖进去,AssetStudio频繁报错,注意检查是不是把zip文件也拖进去了。

日服的报错主要集中在shader等这些用不着的资源(有可能是AssetStudio没适配更新或者其他奇怪的问题,但不像是故意加密),Debug选单取消勾选Show error message。如果执行效率不高(我也一样),可以用Python和UnityPy只提取TextAsset Texture2D Sprite,或者选择性解包(文件名有spinecharacters是角色立绘,spinelobbies是纪念大厅,spinebackground是UI背景的Spine动画)。

AssetStudio不能打开BA的zip资源文件。

如果AssetStudio崩溃了,检查设备配置,这一般不太可能发生。


BA的zip(TableBundles)解压密码是:

  1. 将文件名编码为 UTF-8 字节串
  2. 使用 xxh32_intdigest 函数计算出文件名 UTF-8 字节串的哈希值,作为 Mersenne Twister 算法的种子
  3. 使用 Mersenne Twister 算法生成一个长度为 3*20/4 的随机字节串(其中 20 是 Base64 编码后输出的字符串长度)
  4. 将生成的随机字节串使用 Base64 编码,编码后的结果为压缩包密码

解压后,JSON 文件大部分都是明文(小部分AES加密,具体方法不明确),bytes 是用 FlatBuffers(https://google.github.io/flatbuffers/) 保存的序列化数据,scheme 可能在il2cppdumper的结果里。没有特别完善的读取方法。

(参考了几个GitHub项目,如果我有遗漏,万望不吝赐教)


【解包教程】下江小春也能看懂的碧蓝档案轻松解包思路【游戏资源提取相关】的评论 (共 条)

分享到微博请遵守国家法律