Galgame解包

Galgame解包

ALZT02 Lv3

前言

注意:本篇教程仅供参考学习,学习后请于24小时内删除学习成果。禁止传播学习文件,本文作者不负任何可能的法律责任。解包行为可能违反游戏 EULA 和著作权法,获取的资源仅限于个人学习研究严禁分享、传播或用于任何商业用途,否则后果自负。本文面向技术小白,仅涉及解包,不涉及回包封包。另,作者实质上不懂任何技术,本文只是整合与经验分享,可以看做是教程。

请尽量购买原作支持。

本文教程适用于YuzuSoft的所有作品(截至2026.4.30,dr重置版可以解包)。教程仅适用于含.xp3的galgame的解包。

本文含有主观性言论,文笔也不怎么样,还请见谅。后文出现的多个近义词实际上是同一词汇,我文笔不行就只能写成那样了。

工具包

  • 请注意: 本文提供的工具包集合了多位开发者的成果。如果您需要再次分发此工具包本身,请遵守各工具原作者的许可协议(通常包含在工具包内或项目主页),再次强调,严禁传播利用这些工具解包获得的游戏原始资源文件。如果你认为这个工具包内的exe文件不值得被信任,用解压出目录下的 各个工具源文件地址.txt 自行下载。本工具包不保证时效性,但防破解技术的迭代也需要时间。还请自己根据 各个工具源文件地址.txt 下载更新。github下载加速: https://gh-proxy.com/ (工具包最后更新日期26.5.2)

下载链接 https://1839731366.share.123865.com/123pan/CkJ2Td-4pIAh?pwd=0721# 提取码:0721

或者 https://pan.moe/s/57OZfG 提取码0721

下载后需要按照以下方式解压

  1. 修改后缀名为.7z

  2. 输入密码 0721 解压

  3. 将解压出的压缩包文件再次解压即可

部分教程已经详细地写在工具包里了,游戏本体资源自行去搜。

最好把游戏置于全英文目录下再进行解包

什么是“包”与“解包”?

包含个人理解 众所周知,游戏厂商做游戏的根本目的是为了赚钱。倘若直接公开游戏内部文件如源码,音频,图片等资源,则会动资本的蛋糕,影响赚钱。各大游戏厂商为了防止自己游戏的源文件泄露给自己造成损失,于是在整合游戏资源的同时进行了一定的加密。被整合的文件整体被称作”包”,而拆解这个包,得到游戏源文件的过程叫做”拆包”或”解包“。通常情况下,拆包需要解密,而解密需要密钥。那么密钥该如何获取呢?

游戏厂家肯定把游戏密钥储存在游戏内。若储存在线上则更容易被抓包爬虫获取。通过程序注入游戏进程进行动态捕捉即可捕获密钥。所以拆包的核心在于获取密钥。有些游戏没有官中,于是伟大的汉化组自己拆包,汉化,组合,加密手段也会随之改变,我们则需要新的密钥。

所以我提供的工具最重要的作用就是获取密钥XP3Viewer是暴力破解密钥,旧krkr自带的加密在XP3Viewer前不堪一击。但需要注意的是,仅仅限于古早作品,对于民间汉化游戏大概率没用。但尝试总是可贵的,万一有小厂家加密手段很薄弱呢?KrkrExtractGARbro是通过历代大佬积累的密钥和解包手段汇集而成的,对游戏原版文件有奇效,但对汉化组的加密就不行了。KrKrDump是人挡杀人,佛挡杀佛,直接根据游戏进程捕获内存密钥解包,遇到什么解什么,理论上可以全部解包(前提是跑完整个游戏流程,语音的提取需要跑完整条语音,极大可能无法提取op与ed)。最后是krkrz,详情见目录7。

在galgame厂商中使用最广泛的游戏制作引擎是unity和krkr。unity的好说,AssetStudio一下子就能全解开。而使用krkr的就比较麻烦了。本文主要讲关于krkr的解包方式。

那么如何确认自己的galgame是krkr游戏呢?很简单,打开游戏目录,含有.xp3文件的就是使用krkr引擎制作的游戏了

通用解包流程

1.确认游戏会社,检查资源完整性

先对比md5检查资源完整性,再自行百度作品,找到游戏会社。若游戏会社规模较小,可直接尝试使用XP3Viewer解包。老游戏(发布日期小于2016)的也可使用。若会社规模较大如YuzuSoft,尝试使用GARbro和KrkrExtract解包。以上手段都不行再使用KrKrDump。

对于汉化组汉化的游戏或者经过代理(发行,本地化)商(比如株式会社 HIKARI FIELD)二次加密的游戏,无视以上所有规则,直接使用KrKrDump。

若游戏目录没有adult.xp3或patch.xp3(r18内容),或者你需要汉化.破解等内容,可自行前往 https://www.moyu.moe/https://patches.nekonyansoft.com/ 下载补丁,解压后置于游戏目录。

对于需要注入游戏进程的工具(如 KrkrExtract 和 KrkrDump),强烈建议不要使用 Steam 正版游戏。Steam会干扰程序注入,导致失败或游戏异常,所以推荐使用免安装/破解的版本(别忘了补票)。对于静态分析工具(GARbro, XP3Viewer),可以尝试直接分析 Steam 游戏目录下的 .xp3 文件,但请注意 Steam 版本的文件结构或加密方式可能与破解版不同,也有很大可能导致解包失败。

2.进行简单解包

正如上文所提,老游戏或小游戏会社游戏尝试使用XP3Viewer解包,再按照GARbro-KrkrExtract-KrKrDump的顺序依次尝试,直至成功。

  • xp3viewer

将xp3viewer.exe和xp3viewer.dll同置于游戏根目录,将游戏的.exe文件拖到xp3viewer.exe上。若成功,将会出现两个窗口,一是游戏窗口,二是xp3viewer的窗口。对于某些游戏会自动解包,对于另外的游戏需要拖.xp3文件到这个窗口上。在游戏根目录下会出现新的文件夹,即解包内容。若只出现一个窗口或解压出乱码文件,则失败。

  • GARbro

这里是浅显的教学,garbro实际上能打开很多gal(不止krkr)的档案并进行提取。注意,仅仅适用于无二次加密或汉化组的游戏,最后更新时间为2019年,以后的游戏有概率解不开,但其解密引擎仍能处理一些新游戏的加密,对于使用标准Krkr加密的游戏依然有效,但遇到定制化加密(如汉化组修改)可能失败,这时需要用到github上的第三方维护版,在此不多赘述。打开garbro,切换到对应游戏目录。这里以亚托莉-我挚爱的时光-为例

一些文件在data.xp3内。也有很多文件被分到其他.xp3文件。双击data.xp3

若可能有加密,选择恰当的加密(这里没有加密)。根据游戏名(可自行百度英文名)选择加密手段,点击确定。

出现类似这个界面即为成功。若出现乱码则为失败。

进入想要提取的文件夹,右击提取。若提示无效的文件格式,则需要刷新后选择恰当的加密,实在不行解密失败。

  • KrkrExtract

(KrkrExtract.Lite可能有问题,建议去使用KrkrExtract,自行下载。作者正在开发针对krkrz的工具,但目前似乎无望)将KrkrExtract.Lite.exe和KrkrExtract.Core.dll和KrkrExtract.UI.dll同置于游戏根目录。这里以亚托莉-我挚爱的时光-为例

将游戏的.exe文件拖到KrkrExtract.Lite.exe上。若成功,将会出现两个窗口,一是游戏窗口,二是KrkrExtract的窗口。可能需要等待一段时间窗口才出现。

勾选PSB Package内的 full unpack,将需要解包的.xp3文件拖到此窗口,点击!!Dump!!,等待跑条完成。

可见出现KrkrExtract_Output文件夹,内存解包文件。同样的,主要文件在data.xp3内。也有文件被分到其他.xp3文件。

若点击!!Dump!!,下面的小窗口内出现乱码文件即解包失败。

  • KrKrDump

将KrkrDumpLoader.exe和KrkrDump.dll同置于游戏根目录。在游戏根目录下创建KrKrDump.json文件并编辑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"loglevel": 1,
"enableExtract": true,
"outputDirectory": "F:\\game\\sanoba witch\\dump",
"rules": [
"file://\\./.+?\\.xp3>(.+?\\..+$)",
"archive://./(.+)",
"arc://./(.+)",
"bres://./(.+)"
],
"includeExtensions": [],
"excludeExtensions": [
".ogg"
],
"decryptSimpleCrypt": true
}

其中”outputDirectory”:后的引号中替换为你的实际游戏路径,注意保留双反斜线和dump(dump可自定义)。”includeExtensions””excludeExtensions”根据需求填写,一般无需改动。”enableExtract”是是否启用解密。修改完成后保存并退出。

将游戏的.exe文件拖到KrkrDumpLoader.exe上。若成功,将会出现两个窗口,一是游戏窗口,二是KrkrDumpLoader.exe的cmd全黑窗口。这时进入游戏开始游玩。开启autoplay模式,挂后台等待几小时。遇到选项就选,需要什么线路的资源就推什么线。KrkrDump 会在游戏加载资源(图片、音频、脚本等)到内存时实时捕获和解密它们。

可见游戏根目录下出现dump文件夹。一定要将游戏在后台跑完才能保证资源的完整。该方法支持续拆。该方法不太可能失败(若有预期的文件未被解包,检查某些陌生格式的文件。若不符合你的需求,修改excludeExtensions以自定义排除项)。

另,极有可能解不出op与ed。

3.资源文件的深入提取与转换

  • .tlg文件

.tlg文件是储存立绘或者其他图片的文件。使用garbro将.tlg文件转换成普通图像格式。

单击文件,按住鼠标左键不要松手,拖到你想转换的最后一个文件。(拖拽选择多个文件)

点击右键,选择转换多媒体文件,点击。按照提示选择目标文件类型和目标文件夹,点击确定即可转换。或者你可以使用通配符来进行快捷选择: 通配符用来模糊匹配,星号*代表任意多个字符,比如 *.txt 匹配所有 txt 文件;问号?代表一个字符,比如 ?.doc 匹配 a.doc;方括号[ ]匹配括号内任意一个字符,比如 [0-9].mp4 匹配 0.mp4 到 9.mp4,很方便。关于新型的文件头TLGmux详见下文7.3。

  • .mtn文件

.mtn文件是储存SD Q版小人,或者logo等的文件。使用garbro将.mtn文件转换(拆分)成普通图像格式。同上。但需要注意,一份.mtn文件内储存多个图像。这种方式无法拆分规则文件。也可以使用下文的FreeMoteViewer。方法同下。

  • .pimg文件

.pimg文件是储存CG的文件。使用FreeMoteViewer将.pimg文件转换成普通图像格式。需要注意,一份.pimg文件内储存多个图像。

先将.pimg文件置于独立目录,再将.pimg文件拖到FreeMoteViewer目录下的PsbDecompile.exe上。

黑色窗口消失后,可见独立目录下拆分出两个规则文件和一个文件夹。文件夹内即为cg文件。

4.CG图像的合成

旧游戏比如夏空彼方源文件就是整合好的,而现代大部分游戏会只使用一张CG的底图,其余为表情差分。若你会PS或懂得利用规则文件合成CG,那当我没说下面的话。若你都不会,那么使用AutoCGAligner整合CG。

打开AutoCGAligner,点击批量合成。将背景或底图拖到左侧白框并点一下,将所有差分拖到右侧白框。选择精确模式,选择好保存路径,点击开始合成。耐心等待进度条跑完。跑的很慢,但成果特别好。

以下是图片示例,来自魔女的夜宴HF版。

5.立绘图像的合成

旧游戏比如夏空彼方的表情没有抠图抠地很好,立绘规则是.csv的明文文件或者源文件就整合好了。自行探寻。

5.1.对于KrkrExtract能够直接解密的立绘拼接

5.1.1.利用KrkrExtract解密的立绘合成

在解包出.tlg文件,转换成正常图片格式后,大部分人会发现图片并不完整。有的只有表情,有的只有底图。在勾选PBD选项框内的json后,一般地,在fgimagine目录下的子目录内有xxx.stand和xxxa_info.txt和xxxb_info.txt或xxxa.txt和xxxb.txt,xxx为人名。(txt一般是json,除非原游戏没给这些文件加密)如茉子a.txt。这些类似的文件即立绘拼接的规则文件。

若你会PS,或者懂得利用规则文件合成立绘,你可以不用看此步骤。若你都不会,那么使用krkrFgiEditor整合立绘。和AutoCGAligner是同一个作者。

在开始之前,自行使用游戏内的立绘鉴赏功能判断xxxa_info.txt和xxxb_info.txt分别是哪个姿势。一般有正身和侧身。

打开krkrFgiEditor.exe,见到如上界面。

选择打开文件,找到你的规则文件并单击。程序会自动加载图片。

点击批量合成,出现以上窗口。单击添加组,左侧白框出现(none)。这个图层是鬓。点击图层后选项卡的小箭头,选择鬓。把右侧白框中除了鬓的内容全部按退格键删除。

图层组选择none,点击新建中间栏的新建,左侧白框出现group1,点击后点击上移。点击图层后选项卡的小箭头,选择底图,点击添加(一次一个)。点击图层组后选项卡的小箭头,选择表情,点击添加组。左侧白框出现表情,点击后点击上移,使左侧白框自上而下的顺序分别是group1-表情-(none)。表情一组可能不全,一次合成后删掉表情换组再来。

选择保存路径,点击开始合成。

(可能的示例格式)

关于脸红或者黑脸的图层自行探索,详情见工具krkrFgiEditor目录下的README.md。

立绘的图层储存因人而异,最好先自己探索。

以下是一张示例立绘,来自千恋万花HF版。注意鬓覆盖住了眼睛,即为成功。有更多关于图层的问题,也见工具krkrFgiEditor目录下的README.md。

5.2.对于KrkrExtract不能够直接解密的立绘拼接

5.2.1.利用体验版资源的立绘合成方案

有的读者会发现在使用KrkrExtract解密时仅仅出现乱码,而使用KrKrDump或GARbro又不能解密立绘规则文件。很令人头疼。我在冥思苦想翻阅B站后,在 《天使騒々RE-BOOT!》解包及CG、立绘合成浅谈 - 哔哩哔哩 中找到了答案。这位作者想了个很骚的方法,既然完整版不行,那么就去找体验版吧。

经过我的实际测试,柚子社体验版的整个.xp3文件加密措施不严密且立绘规则文件较为完整(不完整的自行重命名规则文件内的东西,详见上方链接)。

那么接下来使用KrkrExtract解密体验版的.xp3文件,流程见目录 2.1 的KrkrExtract。需要注意,在解包前勾选PSB Package内的full unpack和PBD内的json和TLG image内的system(png)。 在进行下一步之前你可以使用体验版的图像来测试测试,流程见目录 5.1 的对于KrkrExtract能够直接解密的立绘拼接。确认无误后,使用KrKrDump解包完整版的.xp3文件,按照目录 3.进一步的拆包 转换.tlg图像格式,把使用体验版解包的立绘规则文件置于完整版立绘图像目录,接下来就可以按照目录 5.1.对于KrkrExtract能够直接解密的立绘拼接 的流程继续了。

体验版的文件还请自行搜寻。

5.2.2.利用pbd2json的立绘合成方案

在25.11.2,我找到了很久都没能找到的pbd2json工具。工具来源 站在前人的肩膀上对柚子社新作《Limelight Lemonade Jam》进行CG以及立绘合成 - 哔哩哔哩 原作者链接Github链接(不可用) 。5.2.1.利用体验版资源的立绘合成方案 作为本方案不生效时的代替方案。


在使用krkrdump或者KrkrExtract或garbro解包出.pbd文件后,与pbd2json.exe与pbd2json.pdb同置于独立目录,将.pbd文件拖到pbd2json.exe,同目录下出现.json文件。此时可以按照目录 5.1.对于KrkrExtract能够直接解密的立绘拼接 的步骤继续。如果报错,尝试给.pbd文件更换目录。我的更换目录就不报错了,很邪门。

6.剧本文件的拆解

某些时候我们需要修改或获取剧本文件。

在补丁(patch+数字或adult+数字或upgrade+数字)的.xp3文件解包后(这里面的一般最全,其余的会删掉成人内容)找到的.ks或.ks.scn文件内储存剧本文件,掌管文本显示和立绘的表情等。.ks可以直接打开,.ks.scn需要FreeMoteViewer目录下的PsbDecompile.exe来解密。流程同.pimg文件。

出现.json文件。.ks.resx.json文件是规则文件,ks.json是解密后的剧本。

使用我提供的工具的剧本提取目录下的脚本,便于提取文本。带有重名.bat文件的运行.bat文件,配置同样在.bat文件里配置。所有脚本和配置文件需要放在需要的根目录下运行。需要Python环境,使用cmd的python xxx.py执行。parser.py是最核心的提取根本剧本的脚本,由于每个游戏的脚本格式不同,因此不适用于某些游戏,这种情况需要你自己观察剧本文件的规律然后重写脚本。

关于汉化,详细修改和二次封装见Krkr引擎工具合集(二)——脚本、编码、文字 - 哔哩哔哩,这位大佬的文章一定对你有所启发。

7.关于krkrz特异性解包

嫌krkrdump耗时久?最近新出dr重置版不太好解包?krkrz是较新的引擎,无法使用xp3viewer.KrkrExtract.GARbro(除非你有HxNames.lst)进行解包?那么就没有办法了吗?

你可以永远相信gal论坛与github。某gal论坛与本博文的评论为我提供了思路(很快就见不到了,因为leancloud暴毙,本博客的评论要换成基于githubdiscussion的)。在这里提供两种办法。

7.1.使用KrkrExtractForCxdecV2+hxv4_deobf_tools进行解包

KrkrExtractForCxdecV2可以解包出所有文件,不过文件名全是哈希值。将游戏主进程拖到CxdecExtractorLoader.exe上(dr拖dracuriot.exe而不是64位的,否则失败)。

点击 加载解包模块

挨个把.xp3文件拖进去解包,未响应就等待。

可见出现Extractor_Output文件夹。不过里面全是不可阅的哈希值文件名,该怎么办呢?

我们先退出程序,使用krkrdump解包一下。只需要进行剧情的几句台词即可。关掉进程,在游戏目录下找到 KrkrDump-2026-xx-xx.log 日志,记住路径。

打开hxv4_deobf_tools-master目录,使用文本编辑工具打开main.py。

在第13行更改配置,是上面解出的Extractor_Output文件夹路径。

取消第46行 .from_krkrdump_logs 的注释,把后文路径换成KrkrDump日志的路径,不要文件名;取消第36行 .from_unobfuscated_directory 的注释,把后文路径换成KrkrDump输出解包文件的路径,然后保存,使用cmd运行main.py。

我们看到原本的哈希值文件有的恢复了原样。接着,我们根据恢复的文件名继续添加第36到55行的字典,记得取消注释,然后运行main.py。重复该步骤直到所有字典均已添加,解包完毕。虽然不能解出所有文件名,但够用了。

如果你很懒,不想手动改路径,那么使用 https://github.com/2778995958/gal_tachie_ai/blob/main/krkr/auto_deobf.py 脚本,放到hxv4_deobf_tools-master文件夹下,在更改了main.py第13行配置的前提下使用cmd运行auto_deobf.py脚本,实现自动化。

遇到脚本卡住问的问题,耐心等待并时刻叉掉弹出的报错窗口。实在受不了,看在哪里卡住就注释哪里,跳过某一步。如果多次尝试无果,那么试试下面的方案。

7.2.借助其他大佬的HxNames.lst进行解包

有些大佬nb的智慧不是我们能比的。他们可以用hxv4_deobf_tools还原出绝大多数文件名,并整合成HxNames.lst供我们使用。HxNames.lst可以放到garbro以及hxv4_deobf_tools里使用。

去github里搜索对应游戏的HxNames.lst。重命名为HxNames.lst放到hxv4_deobf_tools-master目录下,更改main.py第13行配置,注释掉所有的字典,然后运行main.py。

可以看到绝大多数文件恢复文件名。

对了,目录都7.2了,那么为了对我们的0d00柚子社自发电大师表示尊敬,特意为她开一个0.7.2.1目录。

0.7.2.1.绫地宁宁CG

7.3.TLGmux的解法

常规的.tlg文件头是TLG5,而在dr中的立绘底图使用了新的tlg格式,文件头是TLGmux,这种格式无法被garbro转换。

https://github.com/2778995958/gal_tachie_ai/blob/main/yuzu/tlgqoi_mux_ref/batch_decode.py 这个脚本可以解出正常图片。在立绘文件夹下打开cmd,

1
python 路径/batch_decode.py 

即可。

8.常见问题与故障排除

首先想想是否严格按照我的说明进行了步骤,再想想是不是资源问题。

在使用KrkrExtract时会出现一些奇怪的bug。内存不足(insufficient memory)无法被解决,只能更换体验版资源解包。乱码说明加密措施过于严密,程序无法解包。解到一半程序不响应然后闪退说明你勾选的选项太多了,或者资源的某部分文件格式的转换有问题,只要把关键的资源解出来就行。

关于krkrdump关于找不到.dll文件的情况,首先检查.dll文件是否确实放在和.exe同一级目录里,再修改游戏目录和游戏名为字母和数字而非日文或中文。

关于pbd2json报错的原因,检查是否置于同一目录且文件未被占用。我的莉莉子pbd立绘文件报错,单独换了个文件夹就好了。就很邪门。

关于krkrFgiEditor内存不足的报错,检查解密的图片是否与解密的pbd文件在同一个文件夹内。注意,二者一定都要解密后才能使用。部分/重名文件不能读取,换个名就好了。如果不齐,检查图层、分辨率是否对得上。

本文包含我关于krkr游戏解包的全部知识,就算另有bug或疑问,我大概也无法解答了。最后,衷心感谢所有相关工具开发者和技术分享者的贡献,他们的工作为Kirikiri引擎资源的解包与分析奠定了基础。

参考文献(不分先后)

关于以krkr为引擎的galgame解包经验分享 - 哔哩哔哩

Kirikiri引擎通用拆包方法 - 哔哩哔哩

Krkr引擎工具合集(二)——脚本、编码、文字 - 哔哩哔哩

https://zimingyuan.github.io/html/krkr%E5%BC%95%E6%93%8E%E8%A7%A3%E5%8C%85%E5%B7%A5%E5%85%B7%E4%BB%8B%E7%BB%8D.html

Krkr引擎工具合集(一)——解包封包 - 哔哩哔哩

GAL解包的那些事儿 - 哔哩哔哩

《天使騒々RE-BOOT!》解包及CG、立绘合成浅谈 - 哔哩哔哩

站在前人的肩膀上对柚子社新作《Limelight Lemonade Jam》进行CG以及立绘合成 - 哔哩哔哩

我找到了HF的DR立绘解包方法 来自github大佬(极简版) - 鲲 Galgame 论坛 🐳 开源 Galgame 网站

GitHub - 2778995958/gal_tachie_ai: 只是用ai寫合拼生成立繪的紀錄 · GitHub

最后特别感谢一下 https://977958.xyz/ 的站主芹香serika和゚゚゚bilibili的松坂砂糖 ,芹香serika为我提供了体验版文件以便验证体验版立绘规则文件可被用于正式版立绘的合成,゚゚゚松坂砂糖提供了pbd2json工具。


更新: 2026.5.2

首次发布:2025.7.10


好了,以上就是全部教程,希望能够帮到你。若你觉得文章有用,在评论区多多评论吧!或者你可以评论数字1-4,分别对应下图蕾娜的表情。

1 没啥用… 2 哈哈哈,从未见过如此搞笑的文章! 3 哇,真有用,好惊讶 4 哇,写的真好!

评论1和2的去吃蕾娜的Salmiakki糖去!

  • 标题: Galgame解包
  • 作者: ALZT02
  • 创建于 : 2025-07-17 00:00:00
  • 更新于 : 2026-05-02 09:28:41
  • 链接: https://alzt02n.github.io/2025/07/17/部分gal的解包/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论