9、进到反汇编窗口,如下图,绿色那条是访问我们找到地址的命令,上面第一个红框内是我们发现的共同点。担心有人不了解汇编指令,我简单翻译一下这几个命令,其实很简单的。
mov eax,[RA3_1.12.game+8D8CE4] 将“RA3_1.12.game+8D8CE4”地址的值,传给eax(像eax,ecx这些都 是寄存器,可以把它当做一个容器,用来保存数值)
mov eax,[eax+50] 将eax中的地址+50得到一个新地址,再将这个地址中的值传给eax
cmp ecx,eax 将ecx和eax做比较
jae RA3_1.12.game+2F7184 如果ecx >= eax 就跳转到RA3_1.12.game+2F7184,否则继续执行
sub eax,ecx eax = eax - ecx
add [esi+3C],eax esi+3c的数值+=eax

10、看上面的代码,我们发现,eax的值很关键,它修改了我们找到的那个地址的值(绿色那条命令),从绿色命令往上看,我们发现最开始eax是由[RA3_1.12.game+8D8CE4]赋予的,然后又在其地址上+50,那么这个地址肯定是关键地址。我们手动添加这个地址。


11、得到了一长串数值,这是十进制,我们看一下它的十六进制是什么样子。

12、是个地址,按照汇编指令里的【eax+50】,我们要在这个地址上+50才能得到后面的eax的值。

13、加上50后,OK,看看我们发现了什么,一个不断增长的数值!现在切回游戏,新建一个建筑,再切回CE,把这个值加500,再回到游戏,建筑瞬间建好了!不过这并不是我们最想要的,每次建建筑都要改这个值也挺麻烦的,而且比较尴尬的是,如果你的队友或者对手是苏联,人家也是秒建,这显然不是我们想要的效果。
