0%

关于ガルパ的资源提取

对于Bangdream的资源拆解差不多还是去年这时候的事情了。当时手游内开始实装MV,录屏实在是不够pro的选择,碰巧遇到朋友需要其中的资源,那就顺便拿来试着拆了一下。

※这里仅仅作为ガルパ音乐的解包流程记录,使用的都是现有的轮子。其它部分例如MV可以使用类似的方法进行处理。

预先准备

需要一些关于 unity / criware 资源提取相关的工具。

获取源数据包

首先需要从手机缓存中找到对应的源数据包。

Android下的路径:/storage/emulated/0/Android/data/jp.co.craftegg.band/files/data/

因为数据包名称没有特征(没有花心思去研究数据包名称和内容的对应列表),建议依靠下载时间以及数据包大小来判断是什么数据。例如游戏内音乐大约在3-5M左右,而MV会达到数十M,在游戏内刚好读条的内容一定是最近修改云云。

这里使用以下数据包举例:

1
2
3
名称:296adb1ba4e3e6b6f2c4b67614ba4f3b2ac65dc94a923a777d39893c2379af91
大小:3.43MB
对应:歌曲「MOON PRIDE」

解出.acb文件并合并

.acb是criware压缩媒体的中间件。这里使用AssetStudio工具进行提取,获取unity资源包内的.acb文件。

使用AssetStudio或者其它unity解包工具打开,File→Load file→选择文件
打开后如下图所示:

Bgm050被拆分成了36个分段
选中所有的.acb片段,Export→Selected assets→选择文件夹 将全部分段解出。

打开TextAsset文件夹,是一串txt文件。

新建一个空文件1.bin,在该文件夹下打开命令提示符,输入【for %a in (*.txt) do copy /b 1.bin+%a 1.bin】并回车,将分段合并到1.bin内。合并后的1.bin文件大小3.42MB

获取加密的.hca

.hca是criware压缩的音频文件,包含在中间件内。

使用AFS2展开工具,将1.bin拖到【先頭をカットして展開.bat】上,跳出来的命令行窗口关闭即可。会新建一个文件夹,里面是00000.hca。

.hca解密至wav

hca媒体是否加密完全看开发方的心情。好在作为大热门的手游Bangdream已经有现成的密钥可以使用。可以看到在[HCA解密&编码转换]项目中也已经提供了一些其它手游的密钥;

1
2
3
4
5
6
7
8
9
10
11
//復号鍵リスト.txt

CF222F1FE0748978 : デフォルト鍵
CC55463930DBE1AB : ファンタシースターオンライン2
……
……
FDAE531AAB414BA1 : Tokyo 7th シスターズ ※未確認
0000000000000978 : アイドルコネクト
00000000012EBCCA : ダービースタリオンマスターズ
0000000002B99F1A : ららマジ
00000000000022CE : バンドリ! ガールズバンドパーティ! ←ここ

如果有独自研究其他游戏密钥的想法,或许可以参考这篇文章 → MLTD 逆向实录:提取 HCA 密钥

先打开復号化.bat,修改开头的默认密钥
rem set X_K=CF222F1FE0748978修改为rem set X_K=00000000000022CE

1
2
3
4
5
6
7
8
rem ********************************************************************************
rem * デフォルト値設定 *
rem * *
rem * 復号鍵 (16進数16桁で指定) *
rem set X_K=00000000000022CE
rem * *
rem * *
rem ********************************************************************************

保存后,将00000.hca拖到復号化.bat上。

因为默认密钥就是bangdream的,不用输入,直接回车

此时.hca已经解密,将00000.hca拖到hca.exe上,即可获得.wav。

欢迎在Weibo和Twitter关注我