Galgame汉化中的逆向(七):动态汉化分析2_以AZsystem引擎为例
Galgame汉化中的逆向(七):动态汉化分析2_以AZsystem引擎为例好久没发帖了,祝大家新年快乐~
by devseed, 本贴论坛和我的博客同时发布
0x0 前言上节 Galgame汉化中的逆向(六):动态汉化分析_以MAJIROv3引擎为例,我们介绍了动态汉化。动态汉化不用分析封包结构,不用分析opcode,看上去很方便,但是动态汉化解决同步问题会很麻烦,比如说改完文本后backlog文本仍是日文、返回主界面再载入文本没有变动等问题。动态汉化也有可能出现莫名其妙的崩溃bug,且这些bug不容易被调试。
针对动态汉化的上述缺点,本节我们将介绍一种这种半动态汉化的方案。与上节的方法不同,本节不进行文本级替换,而是文件级别的替换。即去hook相关函数,动态将解密后的缓冲区替换为我们汉化后的文件。适合于那种封包与加密特别麻烦或复杂的游戏。
本文将以azsystem为例,来分析:
引擎如何加载游戏脚本,如何定位关键点提取脚本
引擎如何加载图片,如何解压各通道数据,如何将图片数据送入帧缓存渲染
汉化如何用inline hook对加载后的内容进行替换
0x1 脚本文件分析与 ...
【汉化发布】夜廻3_switch
【汉化发布】夜廻3_switch
🍀 前言画风很萌很可爱的游戏,对于夜晚安静祥和的城镇刻画的很不错~
曾经是psv的独占游戏,非常有趣的一款探索解密游戏。❄
🍀 关于汉化
这是我们乙女游戏同好会汉化组首个汉化游戏,距离游戏发售大概一个月搞完~某种意义上讲夜廻3也算是乙女游戏,你可以理解成2D版的零系列。夜廻1是psv上最早的民间汉化游戏,我们把夜廻3作为首个汉化也是在致敬咸鱼汉化组。这个游戏有些地方节奏特别拖沓,而且对话还不能快进,这里特别感谢陈紫灵非常细心的测试,对各个阶段进行的整理和反馈。
另外由于时间有限,本次汉化难免有不足之处,如果发现bug或者翻译问题欢迎反馈。
☘️ 祝大家玩的开心 ~
程序:devseed
翻译:devseed
校对:细细粒
修图:胡里胡涂
测试:陈紫灵
🍀 汉化感言
细细粒:有鬼!快润!!
胡里胡涂: 这游戏图片上的文字,让我动了让上小学的女儿来帮我的念头,还好最后我换了一把烂鼠标成功模拟出了这种效果。回头我带女儿也玩玩这游戏。
陈紫灵: 在这个5月20特殊的时间我为喜欢夜廻的玩家带来一份特殊的礼物【恐 ...
MemoryModule_x86x64_内存加载DLL
MemoryModule x86x64 内存加载DLLby devseed,此篇教程同时发在论坛和我的博客上,完整源码见我的github。
0x0 前言距离上次我写的SimpleDpack教程(为了理解加壳原理自己写的轻量级压缩壳),已经有一年多了。前几天修复x64的IAT载入序号问题,于是想着可以用这个原理自己重写一个解析PE和内存加载DLL的功能。虽然已有类似实现功能,如MemoryModule,但是这个项目还是有点复杂,模块间耦合度有些高,没法作为shellcode附加到EXE来引导DLL。
因此我决定重写一个低耦合,同时支持x86和x64,可以作为shellcode引导”附加到EXE区段上的DLL”的框架 。
0x1 MemoryModule 设计思路(1) usage本框架采取与windows加载DLL相似的名称来设计api,可以实现:
将DLL按照内存对齐模式载入到内存中
动态重定向DLL中的reloc地址,并载入IAT
123456789101112131415161718const char *dllpath = "test.dll";size_ ...
【汉化发布】Flowers3秋_psv
【汉化发布】Flowers3秋_psv
前言Flowers 系列是由 Innocent Grey 出品的,以寄宿制教会女子学院为舞台,描写少女们青春与恋爱的百合游戏。
上次发了夏的汉化移植,因为测试不到位,有几个 bug 开始没有发现,后续又发布了2次更新修复 bug,如果在其他地方下载转载整合的补丁,发现有 CG 缺失和卡死闪退问题,请在下方链接里下载最新版的补丁。
秋篇移植主要还是图片的问题,Flowers 系列目前平均每部有 400+ 行文本内容以图片形式显示,且 PSV 版与 PC 版的图片大小完全不同,不能直接缩放使用,所以全部进行了重做。好在之前夏的工具基本可以直接在秋使用,极大的提升了效率。
这次秋篇经过测试,理论上不会再有闪退等恶性 bug,当然如果有其他问题,请在下方留言。
目前 Flowers 冬篇的 Steam 汉化版还没有发售,且由于我们学业、工作等因素影响,我们至少在其发售两年内不会制作 PSV 冬篇的汉化移植(说不定也可能直接就咕了)。
本系列作品能拥有官方汉化实属不易,希望各位有余力的话可以支持一下Steam官方正版。
PS. 这次修复了春、夏中设置界面的 ...
【汉化发布】Flowers2夏_psv
【汉化发布】Flowers2夏_psv前言祝大家国庆快乐,贴吧先发了是因为被之前帖子被莫名其妙神隐,现在来发到博客里备份。flowers画风很不错,感觉有点像百合。上次发了春的汉化移植,隔了好久终于把夏搞完了,主要是图太多了,匹配工作量很大。上次是在天之少女的发售前发布的春,现在快到秋天了,把夏发布了。后面冬文本导入已经完成,还差图片的匹配,之后会陆续发布(兴许steam官方冬篇汉化出来前秋能弄好)。
关于汉化移植psv版Lucasystem的文本格式解析导入:wetor(@依旧W如此)pc版分析与文本匹配:@develseed字库分析、图片解析导入:@deqxj00变动文本汉化:@栗山同学文本图片的匹配:@鲶鱼,@棒棒鸭文本来源:STEAM官方汉化侵删私信,禁止商用 。
汉化感言deqxj00: 下一部不干了
develseed:这部汉化战线拉得挺长的,中途还重构了一下项目,最终用批处理和符号链接来自动构建,数据和脚本分离。
鲶鱼:木有感言
棒棒鸭:全程摸鱼
栗山同学:我爱二次元
依旧W如此: 以后汉化参与随缘,Github里的东西大概还会维护
LucaSystemTools : ...
Galgame汉化中的逆向(特别篇一)_ArmArm64_ELF中汉化字符串超长修改方法
Galgame汉化中的逆向(特别篇一):ArmArm64_ELF中汉化字符串超长修改方法by devseed, 本贴论坛和我的博客同时发布
0x0 前言之前发的Galgame汉化中的逆向系列,大多是结合具体游戏来谈谈分析思路与汉化方法。大多数主机游戏可执行文件都是魔改的ELF文件(比如说psv,ps4系统内核就是由FreeBSD修改而来的),不同于以x86架构为主的pc平台,主机平台架构可谓是百花齐放:psp,ps2是mips架构,ps3是powerpc架构,ps4是x86架构,psv是arm架构,switch是arm64架构。ps4的x86架构修改方法和pc版类似,powerpc架构的汇编暂时还没研究,mips架构汇编相关的分析,今后有时间可能会更新教程。由于arm指令一般情况下都是4字节定长(还有2字节的thumb指令),mov,ldw等指令的立即数有范围限制,寻址方式多为相对于PC的偏移寻址,这与x86里立即数可以直接写VA地址(如FF 15系列长跳转指令、b8系列的mov)有很大区别。因此这篇作为《galgame汉化中的逆向》系列教程的补充,来聊聊ELF结构、如何对ELF修改、 ...
横浜_花火
好久没有出去了,也有一段时间没有更新游记系列了。今天是奥运会开幕式,想起了18年这个时候第一次去横滨看花火大会的情形。盛夏中,人山人海,在横滨漫步等待着花火大会。由于那次花火大会只进行了录像,这次就来写一篇短的游记,谈谈花火大会前的景色。
傍晚,到达桜木町。可以看到周围很多穿浴衣的,还有老法师在准备拍摄。
漫步在横滨港,朝着红房仓库方向走去。
花火大会前的横滨
沿着红房仓库方向走去,走到中华街,再走到一个高地准备花火大会。傍晚的横滨,花火大会中,非常热闹。
Galgame汉化中的逆向(六):动态汉化分析_以MAJIROv3引擎为例
Galgame汉化中的逆向(六):动态汉化分析_以MAJIROv3引擎为例by devseed, 本贴论坛和我的博客同时发布
0x0 前言之前我们谈论的基本上都是静态汉化。所谓静态汉化,即分析文件结构、二进制脚本opcode,然后进行静态封包等方法。与类似于静态编译的语言类似,在运行前数据类型等已经确定完成,程序运行时按照既定的逻辑执行,静态汉化显示的是我们提前准备好的汉化文本。大部分的主机游戏汉化都是静态汉化,因为权限等问题,主机几乎不可能动态调试(即使有,gdbserver等用起来也挺费劲,也可能有兼容性问题调试失败)。再加上在主机上hook也很麻烦,测试极不方便,所以大部分主机游戏汉化以静态汉化为主,有模拟器的可能会结合一些动态调试辅助分析(不过别指望模拟器的调试有多好用了…)。
静态汉化是基础,对于常见文件结构、二进制脚本、算法等有了一定了解后,我们才能更好地找到关键位置dump、文本注入点等,因此我之前的汉化教程都是以静态汉化为主。与静态汉化相对的是动态汉化,往往不需要进行复杂的文件分析和二进制脚本分析,通常也不用考虑封包问题。动态汉化中,文本显示是程序运行时动态注入和替换的 ...