好久的帖子,今天有空,自学一下 OllyDBG 调试来尝试解决这个问题,终于成功,现介绍方法如下:
1、看到楼主说 &Save State 菜单无法超长写入,就先用 UE 查一下这个字串,发现它是与下一个字串 &Load State 用“.”连接在一起的。
2、用非标宏(也可以用其它工具)提取,找到该字串的引用地址和代码为:
引用代码 FC224E00
引用地址 8566,72389
3、用 cao_cong 汉化的 OllyDBG v1.1 汉化第二版载入,右键菜单 > 查找 > 二进制字串,输入引用代码,找到 &Save State.&Load State 的调用处:
由上可知,程序只读入 12 个字节即结束读入,而且 &Save State 和 &Load State 虽然连在一起,但是按“.” 号,分二部分读入的。故可以断定,&Save State.&Load State 可以拆分为二个字串,即“.”号的十六进制代码 2E 可以改为 00。
4、将 &Save State.&Load State 拆分为二个字串,用非标宏移位写入翻译到新增节,运行效果为:
字串可以移位,但是一级菜单中的翻译被截断显示,二级菜单显示完整。
5、按照图 2 中的二级菜单处理方式,修改这二个一级菜单的处理方式如下:
用 OllyDBG 右键菜单:复制到可执行文件 > 所有修改,然后在弹出的对话框中,右键菜单中选择保存文件。
6、修改成功,运行测试的效果如下: