以前看过的教程是用CE找武林的一级基址。如果游戏都那样的就按他的方法很好找了。用OD跟踪也很块就定位真正的基址。
用CE搜索血值后。一般都能定位到有几个。最好的是只有一个。多了直接用第1个的地址。
用OD附近游戏。来到他的内存区(左下角) 转到地址输入刚才第一个的地址。
然后在此下内存断点。
这里有两种断点 写断点 访问断点 按字面理解
不管下哪种断点最终根据汇编代码都是可以跟到基址的。
切到游戏OD中断后。
都是类似的代码mov [esi+2d8],EAX
这时要去找谁给ESI赋值了。在CE中是要接着下断点。在OD里需要往上找看谁给ESI附值了。
就拿CE的第8步说吧。
按上面显示的是1291.搜索只有一个值。。如果有多个可以点一下change value改变看哪个变。
00D65318 地址处存放着1291
用OD附加此程序
转到00D65318地址后下内存断点。回到程序点change value
OD中断后的汇编代码
0045662B A1 20CC4500 MOV EAX,DWORD PTR DS:[45CC20]
00456630 8B40 0C MOV EAX,DWORD PTR DS:[EAX+C]
00456633 8B40 14 MOV EAX,DWORD PTR DS:[EAX+14]
00456636 8B00 MOV EAX,DWORD PTR DS:[EAX]
00456638 8970 18 MOV DWORD PTR DS:[EAX+18],ESI
直接看汇编代码就能知道45CC20是基址 +偏移最后才放着这个1291
这是CE的这个Cheat Engine tutorial程序这里都放一起了。游戏的程序不是这样的。
一般都需要往上跟。可以看寄存器的值看哪里改变他了再找相应的汇编代码