【游戏解包】初音岛5_D.C.5_cxdec_hxv4 (附图包下载)

閑聊逆嚮專案逆向解包krkrzcxcrypthxv4
2025-02-10 - 11:13
devseed
2025-02-10 - 11:13

好久没发帖了, 今天来谈谈初音岛~

devseed-1739185758560-dc5ph2jpg

以前一直没怎么研究过krkr引擎,因为感觉开源的, 研究的人挺多的, 应该难度不大。 因为非常喜欢初音岛系列, 想着自己解包一下, 结果发现这个hxv4版本的cxcrypt还是挺复杂的,也是分析了一段时间。

这个难度在于封包里面只有哈希值,没有文件名。所以只能通过边玩边dump, 或者只解密资源而不恢复文件名。 这两种方法分别对应Krkrdump和KrkrExtractForCxdecV2, 于是我就想着构造字符串去进行哈希碰撞来恢复文件名。 于是决定结合折两种方案, Krkrdump来初步dump一下看看有没有文件列表相关的, 然后构建字符串表格计算哈希用于恢复KrkrExtractForCxdecV2的文件名。

这个cxdec是运行时候解压到临时随机路径, 导致调试起来很麻烦, 好在有rtti,去定位函数还算相对容易, 然后就是看构造函数来猜结构体了。 分析后大概长这样, 看了一下有6个以上计算哈希的函数, 纯静态搬算法还是很麻烦的。

devseed-1739185780958-dc5phhxv4pathhashpng

于是决定动态调用这个函数来计算哈希值了, 这里注意一下要v2link bind一下exporter才能用。 代码开源在我的github上面, 可以批量计算file或者dir的哈希值。https://github.com/YuriSizuku/GalgameReverse/blob/master/project/krkr

devseed-1739185809558-dc5phhxv4dumphashpng

折腾了一下, 基本上所有文件都能完美还原了, 原版krkrz顺利运行。(就差个别语音了, 这些也可能游戏里根本没有引用) [img]

dc5ph1.jpg

最后附完整版图包下载

s/190nhidPMOMMRAbAuk9vwKA cc7u

話題狀態:正常
507
Dir-A

Dir-A

1063

=> devseed
回復給 @ devseed

推!

2025-02-10 - 16:13

bfloat16
=> devseed
回復給 @ devseed

推!

2025-02-11 - 08:04

kohaku