本文Python代码与文章内容遵循MIT协议
Copyright <2025> <Kinotern>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
仅供逆向汉化学习参考,不得用于其他非法用途
本文重点在于制作映射表格以快速对CXDECExtracter提取的游戏文件分类重命名
本文参考:
https://www.kungal.com/topic/2670
使用项目:
HXNames.lst
https://github.com/MLChinoo/hxv4_deobf_tools
Steamless:
https://github.com/atom0s/Steamless
撞库程序源码:
https://github.com/YuriSizuku/GalgameReverse/blob/master/project/krkr/src/krkr_hxv4_dumphash.cpp
Steam的KrKr游戏处理
所需的文件在
https://github.com/Kinotern/CXDECNameRipper/tree/main/Steam去除drm
Steam版本的游戏提取需去除DRM后使用
如果不想这么麻烦可以选择下HF商城的官中
Steamless脱壳
Steamless打开游戏exe

选1257项
点Unpack File
出现绿色字,提取成功
游戏目录会有一个叫SabbatOfTheWitch.exe.unpacked.exe
替换api
将steamapi.dll覆盖过去
Dracu-Riot的也是,不要用steamapi64.dll来提取

覆盖后报错直接是正常的

然后出现弹窗Malformed exe/dll detected或无法找到入口
原因是没绕过程序startup.tjs的if link fail逻辑
本小工具优化了一些修改startup.tjs的方法
并测试了魔女的夜宴,星光咖啡馆,病弱妹,DR,LLLJ这几个游戏都可以patch掉
其他若失败请提出issue
https://github.com/Kinotern/CXDECNameRipper/tree/main/去除MFD弹窗
提取XP3内容
接下来使用CxdecExtractor拿到加密的文件夹映射表
https://github.com/Kinotern/KrkrExtractForCxdecV3.3Extra
将处理好的游戏程序拖到CxdecExtractor.exe上放松开即可
然后有这个窗口
点击add files,把所有XP3选中打开
或者把xp3拖拽到弹出窗口以创建任务队列

选择打开后会立马开始任务队列处理等待即可

完成后关闭游戏再重新拖到提取程序打开
然后点第二个加载字符串Hash
实时dump与运行时顺带找到名字恢复请看如下
https://github.com/Kinotern/KrkrExtractForCxdecV2Extra
使用hxv4_deobf_tools制作补充表格
我稍微魔改了一下改成GUI形式我懒得在代码文件指定路径这么难受了
直接打开选择文件夹就可以干活了,不过在这之前要准备一些些文件
KirikiriTools动态提取文件
批量提取Scn剧情脚本
吐游戏scn
https://github.com/Kinotern/CXDECNameRipper/tree/main/指定文件提取/吐游戏Scn
第一种让游戏自己吐出来
在使用之前确保以下文件
Version.dll
unencrypted.xp3
patch.xp3
不要出现在目录中,如果你下的是汉化版记得把汉化补丁移到别的目录
启动时候不要启动汉化版exe请启动原版日版exe
第二种解包汉化补丁xp3
garbro2解包汉化补丁中的Scn到指定目录即可
撞库提取记载表
创建一个files.txt
里头写入如下字段
简单无日文的文件名编码建议为utf-16le
若进行更复杂的文件撞库一定要保存为utf-16le不带Bom!
base.stage
cglist.csv
soundlist.csv
charvoice.csv
imagediffmap.csv
savelist.csv
scenelist.csv
replay.ks
_chthum_index.pbd
将version.dll(切记不要与kirikiritools的dll混在一起二者注入的东西不一样)复制到游戏目录
打开游戏
然后打开游戏后出现这个弹窗就是在撞库了
等待一会后
[src/krkr_hxv4_dumphash.cpp,216,calc_thread,I] try to calc names in dirs.txt [src/krkr_hxv4_dumphash.cpp,218,calc_thread,I] calculate finish, results in files_match.txt, dirs_match.txt
直接关掉命令窗口就可以快速关掉游戏了
即可在游戏目录找到files_match.txt与dirs_match.txt
里头记载着撞库得到的信息

大佬我是少东西了吗?为啥说tee不是命令?

更改了version.dll好像无法运行游戏了#
files_match.txt只有60条是正常的吗
dirs_match.txt里面是空的
这些都是正常的吗?~
它却显示
目前是文件夹名已经还原状态
但似乎文件还在加密,是哪里出了问题吗?