原帖由世说新语于2005-06-07, 15:33:17发表
又及,一个更弱但我真的无法解决得问题:
为什么我用UltraEdit编辑exe文件,按置顶大虾们的粗略指使,换了兵种名称后,
exe文件为什么变成不可用的win32程序?
我看了一下,好像是因为所有“00”(右边显示为..)都在我修改兵种名称后变成“20”(右边显示为空格)了,这是为什么?
于是我将新兵种名称的代码记下来,重新打开EXE,在右边的代码处进行替换。
看上去一切正常,为什么保存之后exe文件还是变成不可用的win32程序?
我要吐血了……
你看得或者理解的不够
简单点的
不改变跳转表的情况下
--兵种名称的起始地址保持不变,意思着你对兵种的新命名必然遵守现有给定的长度
长度=相邻兵种名起始地址之差-1
假设长度为7
那么你可以最多输入三个汉字加一个半角字符
尾部加一个chr(0),也就是你看到的00 ,这是ANSI字符串的终止符