Chinaunix首页 | 论坛 | 博客
  • 博客访问: 245803
  • 博文数量: 65
  • 博客积分: 2758
  • 博客等级: 少校
  • 技术积分: 725
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-25 00:23
文章分类

全部博文(65)

文章存档

2011年(4)

2010年(1)

2009年(60)

我的朋友

分类: 系统运维

2009-11-12 16:17:55

找内存call要清楚游戏功能函数的调用过程:
call1(call2(call3(。。。)))其中call*就有个是发包函数(bp send或bp WSASend断点位置)
找call的几种方法:

1、从发包函数下断(bp sendbp WSASend)后,往回找(ctrl+f9,或者是alt+k查看所有过程)
 
2、从用OD的string串找(这个方法只能是碰运气,大部分的游戏根本就没有

3、从触发一个内存地址数值变化的过程往回找(原理和发包函数下断基本一样)
如:自动走路函数,可能你要可以先找内存数据(目的坐标的内存地址),然后找出改变这个数据的函数过程;然后往上找,或往下找。需要注意的是,这个方法有个局限性:数据操作在发包(也是在功能函数)之前;例如查找补血的,如果你根据血量来查找的话是行不通的,道理很简单:流程(功能函数--发包函数 |--| 收包函数--修改血量)这样你找的函数是修改血量的函数,可能只是个简单的减少药瓶,光效显示。并不是补血函数
想bp send按几次CRTL+F9在很多游戏上是行不通的

找call不比找内存数据地址,更多的需要耐心,需要了解游戏的函数调用机制,多实践多想想才能触类旁通。我个人觉得没什么办法是通用的
阅读(5443) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~