翱翔.Net

释放.Net的力量
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

用OD和CE结合跟踪查找基址

Posted on 2008-07-01 22:32  Hover  阅读(18175)  评论(3编辑  收藏  举报

以前看过的教程是用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程序这里都放一起了。游戏的程序不是这样的。

 

一般都需要往上跟。可以看寄存器的值看哪里改变他了再找相应的汇编代码