2017-9-29更新:

今天有人发现hca中文文件名乱码问题,还好vgm是用c#写的能够方便修改代码,扫了遍代码后发现是编码问题,把vgmtutil.dll里的Encoding改成Encoding.UTF8就解决了,代码和成品都已经更新,需要的人重下即可。

正文

眼看这个月都快要过了我还是没有东西写,只好随便写个东西滥竽充数一下啦,另外有些人想要这个游戏修改方法的话可以去隔壁友链看看哦~

碧蓝有两个版本的音频,前一个版本用的assetbundle+FSB,具体方法看碧蓝航线r吧的贴子就好了,这次说的是新版的格式。

从手机拖出整个cue文件夹,用文本模式随便打开一个.b文件找特征,可以很明显的看到“ACB Format”字样,看来又是criware那套,这东西非常简单,就两步

       VGMToolbox               HCA Decoder
acb ——————–> hca ———————–> wav

唯一需要操作的地方只有HCA Decoder的时候需要key,在libcri_ware_unity.so的函数criWareUnity_SetDecryptionKey下断点即可,查看r0,r1的值就好了

key就是0x95356C72和0x0002354E

接下来就提取啦,因为VGMToolbox的操作有点复杂,所以打算自己再撸个程序批量提取,刚好VGMToolbox是用c#写的HCA Decoder也是开源的,所以就从VGMToolbox拖出format.dll和vgmtutil.dll,加上HCA Decoder的c++源码,用C++/CLI随便撸个程序就ok啦

程序+源码

百度云

使用方法:
BlhxCueDecoder.exe sourceDirectory destinationDirectory

程序运行需要
.NET Framework 4.0
Microsoft Visual C++ 2015 Redistributable

使用云服务器和云手机运行AzurLaneAutoScript

更新日志: 2023-5-24 添加frp 2023-4-7 添加Tailscale 2022-8-1 添加WireGuard 起因 某日趁着某家云手机厂商打折的时候换了台新的...

阅读全文

【2019-6-14】碧蓝航线Live2D提取

程序已过时,请使用UnityLive2DExtractor 2019-6-14 v1.3 大量改进 2018-10-27 v1.2 完善4种Segment 2018-10-23 v1.1 修复易拉罐等SteppedSegment问题 正文 ...

阅读全文

碧蓝航线1.5相关

Salt.dll解密 关键函数libmono.so下mono_set_data,此函数已加密,直接选择附加调试,F5 照抄一份c# var bytes = File.ReadAllBytes("Salt.dll");...

阅读全文

72 条评论

  1. 佬,我这里解包出来的文件很神奇的有哈曼2的语音,却唯独没有拉菲的语音,(我已经检查过了资源包的完整性),这有什么说法吗,难道是拉菲的语音正好被放到别的文件夹里了吗?

  2. 为啥软件会闪退啊,.NET Framework 4.0本身计算机就有,然后Microsoft Visual C++ 2015 Redistributable没有 但是有Microsoft Visual C++ 2019的版本不行吗 运行BlhxCueDecoder.exe就闪退 :?:

  3. 大佬,我想问下现在的游戏,比如碧蓝或其他unity游戏,libcri_ware_unity.so 里面在IDA打开的左边的函数窗口中并没有criWareUnity_SetDecryptionKey这个函数,是我打开的方法不对么,还是说使用了新的技术。

  4. 大佬,我想请问一下剧情文本和人物台词怎么提取出来啊,我用AssetStudioGUI提取出根目录下的所有文件并导出后TextAsset文件夹里只有一些骨骼绑定的文本文档没有剧情文本以及人物台词之类的,其他文件夹里也只有UI界面的一些文本文档,是我哪里做错了吗,还是说剧情文本要换其他方式提取

    1. 具体游戏要具体分析,游戏文本不一定存储在TextAsset里,也有可能在MonoBehaviour里,或者游戏用自己设定的格式

  5. 重建wiki语音用到大佬的工具 ,感谢贡献(3年没换加密秘钥的勇士)

  6. 大佬,如果在libcri_ware_unity.so里没有找到criWareUnity_SetDecryptionKey这个函数,那么要如何找到hca秘钥呢?

  7. 大佬,可以帮忙解下东方大炮弹的acb和awb音频吗?VGMToolbox转不出hac来 :neutral:

    1. VGMToolbox转出来的是bin,不是hac,请教下有什么方法
      链接:https://pan.baidu.com/s/1CcUCHxsOewl2VHxs6c5Tww
      提取码:e4mv

  8. 补充一下..我推测(注意只是推测),cv开头文件夹名后面的编号和舰娘的编号是一致的,可以这样推测出是谁的语音(因为我听出来001是紫布里…)

    1. 应该不是这里面的编号,能代的编号显示322,cue里没有带322名字的文件,不过或许能从wiki上扒音频下来

  9. 可能有百度进来的萌新不知道使用方法,我说明一下
    不知道你们怎么处理的,我是创建一个快捷方式,然后目标改成BlhxCueDecoder.exe 你要转换的音频文件所在的文件夹 转换完成后输出的目标文件夹
    搞定,双击快捷方式,然后如果你是把源文件夹设置成cue文件夹的话,接下来的cmd窗口会一直跳出代码,等到人类毁灭(划掉)窗口自动关闭就可以了,在输出文件夹里拿走你的wav文件,至于输出的是谁的语音…文件名自己看我怎么知道…

    1. 补充:dalao原文上写的使用方法意思是在cmd中按照 BlhxCueDecoder.exe (素材文件夹) (输出文件夹)这样的格式输入命令

    2. 大佬能具体在说明一点吗 电脑小白不是很懂 :?: 到底要怎么从 BlhxCueDecoder.exe (素材文件夹) (输出文件夹)这样输出结果 :?:

  10. 虽然看了评论,已经有人做到了,但是作为电脑小白,想请教一下,需要学习什么才能够做到教程。

  11. 看完这篇文章确实成功提取出了碧蓝的音频,听起来也没任何问题,然后 想用一样的方法提取BanG Dream的音频,可是卡在的key上,对于大大是如何在libcri_ware_unity.so的criWareUnity_SetDecryptionKey下断出r0r1的,还是一脸茫然,现在离提取出正确音频彷如一墙之隔又如万重大山_(:з」∠)_气哭

  12. dalao,为什么我尝试了你的方法之后提取出的wav是充满杂音的啊。

    1. 未经处理的异常: System.IO.FileNotFoundException: 未能加载文件或程序集“format, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。
      在 main(String[] args)
      在 mainCRTStartupStrArray(String[] arguments)

      这个怎么解决啊

    1. 未经处理的异常: System.IO.FileNotFoundException: 未能加载文件或程序集“format, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。
      在 main(String[] args)
      在 mainCRTStartupStrArray(String[] arguments)

      这个怎么解决啊

  13. 还是搞个简单的cmd用吧。在BlhxCueDecoder.exe所在文件夹里新建个文本文档。把下面的命令复制到文本文档里,然后修改文档扩展名为cmd,最后点击运行即可。

    set /p a=请拖入需要转换的文件所在的文件夹:
    cls
    set /p b=请拖入输出文件的目标文件夹:
    cls
    CueDecoder.exe %a% %b%
    cls
    mshta vbscript:msgbox(“转换完成!”,64,”提示”)(window.close)
    exit

    1. 不知道你们解出来是做什么的。我是配合Live2dviewerEX使用的。在软件里点上传的那个按钮,就会有编辑选项,手游玩家的动手能力一般都挺强的,自己稍微摸索一下就知道怎么用了。我也不是给这个软件打广告,只是如果有这方面需要的可以试一下。

  14. 我在Play商店下载了一个同步音律喵赛克,解压到的acb也提取出了hca文件。想问一下断点和key都是怎么得到的呀?

  15. 大佬,最近少女前线这个游戏出了live2d,看着还行就去解包了,结果UnityStudio只解出了1个没加密的,剩下的骨骼文件跟动作文件的txt都加密了……是不是理论上也得用ida从.so文件里找加密方式_(:3」∠)_?

  16. dalao,请教一下,我最近在玩《姬魔恋战纪》,发现他的立绘是文件名.lihui@pkg,这是什么文件呀?应该怎么去解?

  17. 大佬,请问一下运行了程序跳了个窗口然后没了是怎么回事,哪步做错了么?

    1. 实在没懂 是百度云下载的exe可以直接提取cue文件夹里的文件吗? 还麻烦大佬详细说下 :cry:

  18. 膜拜dalao,之前偶然在安装包文件里找到过key,但提取步骤麻烦得多。另外想请问下dalao对于诺亚幻想和料理次元这两个游戏的立绘加密有没有破解打算?

欢迎留言

7 + 8 =