mov [esi+00000254],ecx 红色加亮的这句,(+00000254也就是血量的偏移量了)
可以看到,是把ECX的值写入ESI+00000254这个内存地址中,所以,我们记下下面的ESI地址:ESI=05C0B548,再回到CE主界面,搜"05C0B548"这个数(选中HEX,用十六进制四字节方式搜)
[img]http://files.jb51.net/upload/20090718162112504.jpg[/img]
得到26个地址都含有这个数,好的,把最前面的三个数保存到下栏里,然后,小退一下(回到人物选择界面,再进入游戏),就可以看到,三个地址的数值都有变化了.好,再重新执行上面的找血量地址,得到ESI的值,记下来,对比刚保存 下来的三个地址内的数,呵呵,发现
010AEAE4里的值刚好等于ESI,这就可以肯定,010AEAE4一定二级基址了,好,我们监视010AEAE4,"Find out what writes to this address".好,再次小退一下,再进入游戏,这时监视窗口有东东了,如下图
[img]http://files.jb51.net/upload/20090718162113589.jpg[/img]
得到:mov [esi+24],0000000
记下ESI的值,010AEAC0,再回到CE主界面,用十六进制的方法找010AEACO
得到N个数,反复搜几次,好,得到下图
[img]http://files.jb51.net/upload/20090718162113538.jpg[/img]
按CE教程说的,一般最是地址最小的就是正确的,呵呵,有点那个啊,~~~~~~~~~~~~
选第一个008BE594,加到下面的栏里,完全退出游戏,再进入游戏
重复,最后还是得到008BE594,这样就可以肯定,008BE594就是一级基址了
得出公式如下
一级基址:008BE594
008BE594地址里面保存的数值+24的偏移=二级基址
二级基址里面保存的地址数+254的偏移得到血量的地址
[/b]