上一篇修改so增加字符串长度的方法是让附近的字符串挤一挤,但是如果原本就是那么“挤”,
没有多余的空呢?像下面,我想将“Game Over”修改为“GAME is OVER”:
未修改的程序界面:
直接用原来的方法一定不行,换一种思维模式,上一篇我们是这样操作的:
所以我们将改动的字符串放在哪里都是可以的(得保证在字符串堆里),只要保证调用时的指针相对正确就行。
本文介绍了在字符串资源紧张的情况下,如何在SO文件中找到空闲空间填充新的汉化字符串,并通过调整相对偏移实现汉化。通过示例详细讲解了在00518390处插入'GAME is OVER',并使用IDA确定原字符串相对偏移,最后通过WinHex修改十六进制数据完成汉化的过程。
上一篇修改so增加字符串长度的方法是让附近的字符串挤一挤,但是如果原本就是那么“挤”,
没有多余的空呢?像下面,我想将“Game Over”修改为“GAME is OVER”:
未修改的程序界面:
直接用原来的方法一定不行,换一种思维模式,上一篇我们是这样操作的:
所以我们将改动的字符串放在哪里都是可以的(得保证在字符串堆里),只要保证调用时的指针相对正确就行。

被折叠的 条评论
为什么被折叠?