• 4005阅读
  • 9回复

003-实战游戏,寻找众神选中怪物功能 [复制链接]

上一主题 下一主题
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2013-07-28
— 本帖被 太阳的味道 执行置顶操作(2013-08-08) —
003-实战游戏,寻找众神选中怪物功能
用CE通过选择不同的怪得到存放怪物ID的动态地址,选中怪的动态地址,选是什么改写了这个地址:这个较像,因为在开始把地址清零,选中先清零,再赋怪物地址,更安全点。

打开OD,按ctrl+g,转到表达式 : 491e91.


esi+20=[1573e60]+20这个为存放选中怪物的ID

首先在地址491E91处下F2断点,然后再游戏里换怪,发现游戏断下来,说明选怪的操作,和这个段代码有关系,说明我们找对了。esi+20为怪物的地址,我们向上找ES的来源,单击头部,

挨个看上层的调用
第一个中发现有ESI=[157360],但是这个CALL,下断后,重新选怪游戏断不下来,说明不是选怪CALL。


对找到的这个地址[157360] 进行DD查看内存发现:找到了ESI的地址为 [1573E60].在内存窗口中 dd [1573E60]

发现这个地址为一个对象或者说是一个基址,这个比较重要,说明很多东西都是通过基址加偏移来实现的。点右键用文本查看,发现自己的名字。

自己的名字,说明这个地址竟然是自己的对象基址。然后用龙龙内存遍历工具查出如下地址。[1573e60]        人物基址
            +480  游戏账号
            +25c  人物名称
            +2bc  人物 当前血
           +2E4   人物最大血
           +2c0   人物当前蓝
           +2e8    人物最大蓝
通过分析发现其中这个call可以让选怪后,游戏断下了,说明为选怪CALL

==================================================
选怪CALL
mov esi,[1573e60]                                //人物基址
mov edi,  esi +20                       //怪物的id
call 00491e80
===================================================
其中esi+20即=[157360]+20为选中怪的ID,需要遍历怪物数组,才能选取任意怪物。用CE添加地址[157360]+20得到动态地址(选中怪的ID)为
需要找出怪物数组,得到怪物ID,才能选择CALL时,选择任意怪物。老师没讲,我也没找到,以后慢慢找吧,有找到的同学可以添加,要带步骤哦。



1条评分小风币+5
啊冲 小风币 +5 原创奖励 2013-07-28
QQ: 16650802 欢迎交流
离线啊冲

只看该作者 沙发  发表于: 2013-07-28
学习这么认真啊

当没当上组长呢?
善者 慈悲心常在 无怨无恨 以苦为乐
默认压缩密码www.hifyl.com
文件分享密码问题:http://www.hifyl.com/read-htm-tid-4444.html
离线bokzylt212

只看该作者 板凳  发表于: 2013-07-28
谢谢楼主分享图文并茂的学习心得,等下把第三课看完了在看一次

只看该作者 地板  发表于: 2013-07-30
没当上组长,组员。。。。。。。
QQ: 16650802 欢迎交流
离线南北桥

只看该作者 4楼 发表于: 2013-08-03
向你学习啊!
离线koodoo

只看该作者 5楼 发表于: 2013-08-04
学习了,好学生
离线fjk

只看该作者 6楼 发表于: 2013-08-21
东西不错 我在头部下段怎么 老跳飞 我郁闷的
离线ljkna

只看该作者 7楼 发表于: 2014-06-19
用户被禁言,该主题自动屏蔽!
离线engliuo

只看该作者 8楼 发表于: 2015-09-15
牛牛牛
离线26011602001

只看该作者 9楼 发表于: 2017-07-02
  
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个