-
-
[求助]生化危机三字符编码方式求解!
-
发表于:
2012-11-11 12:05
4523
-
小弟最近在研究生化危机三中的字符编码方式,实在没明白,求解。
描述:原以为生化危机三游戏的字符显示是贴图,如:提示任务,显示物品属性等(分析时在内存在查找不到相关文字),后来跟踪物品显示时发现,好像发现是复杂的处理查表得到文字。
如显示物品属性(对物品代码下访问断点,找到相关处理函数,物品地址:00B050A4的第一个BYTE是第一个物品代码)代码在0042E5A0 (是佣兵游戏模式)处理完成后,游戏即显示相关文字,如武器为“自动步枪”,物品代码为0x0F,该段代码会访问地址:0051B73D的一段内存。
初步分析情况为:
1、0051B73D这段内存以0xF7为结束符;
2、每个BYTE如果小于0x63为可显的ASCII字符(该BYTE要加0x20),如字符"1",内存中为0x11,直接取值;如果当前BYTE大于等于0x81,则取下一个BYTE一起运算,如当前和下一个BYTE为:0x81,0xc2,则运算为1c2取值;
3、以第二步的取值查表(最初以为是区位码,现在看来不是);
4、就不知道做什么了....
5、0x63代表汉字“啊”,0x64代表汉字“阿”....,0x8101,代表汉字“单”....
如果要还原游戏文字,从0x63到0x84fe分别代表上千个汉字,不可能一一建表查询,想请教游戏是怎样还原得到汉字的(可以在借鉴在程序中对抗字符串查找哟)!
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!