397 字
2 分钟
碧蓝航线CPK文件解包记录

CAUTION本文仅作记录和学习交流使用,阅读本文即视为您已认识到并理解解包游戏文件属于侵权和违法行为,由此产生的一切后果本文、本文作者、本站点不承担任何责任。
本文不适用于
CC BY-NC-SA
许可,禁止转载。
0x00
因为觉得愚人节的登录背景(即本文封面)挺好看的想摸出来做壁纸,摸索了一会于是有了这篇文章,仅作记录,说不定有人或者未来的自己还能用上。这个文件在游戏资源的原始名称为loginbg_230401.cpk
,下文均以此为例。
0x01
cpk文件位于/sdcard/Android/data/com.bilibili.azurlane/files/AssetBundles/originsource/cpk
.
cpk文件是 CRIWARE SDK 的封装格式。如果没有CRIWARE SDK,可以使用这个开源工具YACpkTool(当然这只是个方便调用其dll的介面)。 最基本的操作只需要一个参数,即要解包的cpk文件。
> YACpktool.exe .\loginbg_230401.cpk100% extracted...Status = Complete
Process finished (hopefully) without issues!> ls .\loginbg_230401\
Directory: E:\AzurLaneL2D\unpacked\burin\loginbg_230401
Mode LastWriteTime Length Name---- ------------- ------ -----a--- 2023/3/29 11:09 9397088 loginbg_230401.bytes
0x02
上一步的结果是一个.bytes文件,这是一个纯二进制文件,光靠猜是猜不出这是个什么玩意的。如果使用file
工具,它会说这是个Scaleform video
。
但是嘛,这个文件还是经过HCA加密的,解码可以使用这个开源工具CRID-usm-Decrypter.
关于HCA的加密密钥,可以通过调试 libcri_ware_unity.so
的 criWareUnity_SetDecryptionKey
函数获取。其值见下面的命令
> CRID-umd-Decrypter.exe -a 95356C72 -b 0002354E -o .\loginbg_230401\ .\loginbg_230401\loginbg_230401.bytes
然后就得到了原始的资源文件。
碧蓝航线CPK文件解包记录
https://blog.a33.su/posts/azur-lane-cpk-unpack/