选怪call就是指鼠标左键点中怪物准备攻击的动作,看别人教程非常容易找,分分钟的事情,自己实践起来还是费了一番功夫,做个总结希望下次再找的话可以更迅速点。

1.      先用CE找到怪物表示,无论是怪物ID也好,指针也罢,总之先找到选中不同怪物之后的标识,步骤如下:

A, 选中一个怪物,搜索未知量

B, 选中其他怪物,搜索改变的值

C, 循环步骤B,最终仅剩下怪物标识

71541应该是怪物ID,我们选择旁边其他的怪物数字大小差不远

2.      将怪物标识地址拉到下面,右键查看谁改写可这个地址的值,选中其他怪物,看到改写的代码。

3.      打开OD,附加到游戏进程,找到改地址,F2下断点,选中其他怪物,游戏断到断点处,接下来我们有三种方法回溯跟踪

A, CTRL+F9法逐步回溯,找call

B, 右下角的堆栈记录,只观察“返回到***”

C, 快捷键栏点击字母“K”,也可以看到堆栈记录

值得注意的是方法C容易堆栈记录不全,方法B堆栈记录有可能和方法A实际单步跟踪的返回地址有出入,所以个人还是推荐方法A

4.      给回溯找到call加上注释,第一次返回编号1,第二次编号2,…回溯5-6层,每层call处下断点,让游戏跑起来,选择其他怪物,毫无疑问OD会断下,F9键跑,观察注释的编号是否和实际跑的结果一样,以及这些call断下的次数,正常的话应该都是一次,如果出现call被循环调用,毫无疑问的这个call不是我们想找的call,并且call之后回溯的call都不是我们想找的。

5.      这么多call总不能一个一个用注入工具测试吧,有一定排除方式的,首先我们选怪,怪物是不同的,肯定要传进call里面的,无论是压栈还是用寄存器存,其次传的值会跟随选的怪物不同而不同,从第一次回溯到的call我们开始观察,我们选中一个怪物,记录下参数的值,选中另一个怪物,再次观察参数的值,比较两次参数是否全都一样,如果全都一样毫无疑问这个call不是我们想要的,如果有不同的参数那么接下来就可以用代码注入工具测试了。测试失败的话我们再测试第二次回溯到的call,一次地推

最终我们找选怪call.

1081DB8A   6A 00           PUSH 0
1081DB8C   6A 01           PUSH 1
1081DB8E   56              PUSH ESI
1081DB8F   8BCF            MOV ECX,EDI
1081DB91   E8 3AC2FEFF     CALLem_temp2.10809DD0                   ; 3

第三个参数一个是怪物的对象的指针(怪物死后这个值变为0),至于这个值该怎么寻找我们接下来继续先研究如何遍历地图上的怪物吧。

外挂学习之路(6)--- 选怪call相关推荐

  1. 外挂学习之路(8)--- 释放技能call

    首先以寻找 所有对怪物释放技能的call为主题 首先理一下编程者如何编写释放技能的流程, 1.      游戏玩家释放技能 2.      获取当前选中怪物ID或者指针或者标识一类的总之能标识释放对象 ...

  2. 外挂辅助技术研究-分析选怪功能

    目标: 1.分析选怪功能 选怪变量=数据 //怪物对象ID //怪物对象地址 0049F902 - 89 45 F0  - mov [ebp-10],eax 0049F905 - 53 - push ...

  3. 外挂学习之路(1)--- bp send 回溯寻找关键call

    先废话一下----好久没有更新博客了,更新一下.学习外挂也有几年时间了,零零散散没有学习到什么东西,更没有做出什么有用的项目,也没有什么总结文档,从头再来吧,人不立志难以成事. 以下文字都是自己的感悟 ...

  4. 外挂学习之路(15)---lua语言的使用,

    必学,,, =========================以下10:19 2018/8/21更新============================== Lua详细学习请看:https://b ...

  5. 外挂学习之路(2)--- 老生常谈“基地址”

    万恶的csdn编辑器,编写博客粘贴图片依然是那么麻烦! 以植物大战僵尸为例找阳光基地址 1.先用CE找到直接地址:0X13E155D8 2.查看谁接触了这个地址(一般不需要更改阳光值就可以找到相关代码 ...

  6. 外挂学习之路(14)--- 游戏中的二叉树

    最近有点懒了,两个月前就准备总结地传说中的二叉树在游戏逆向里是怎么回事,一直拖到现在,今天还是不能完成(慢慢知道自己最终不能成就什么大事的原因了, ,做什么事都不能持持之以恒),不过得先写下辩题提醒自 ...

  7. 外挂学习之路(12)--- 用CE搜索字符串和搜索字符数组的区别

    用VS2008写个小工程做测试,得到如下一些结论 代码如下: TCHAR test[50] = TEXT("你好啊"); void CasciiDlg::OnBnClickedBu ...

  8. 外挂学习之路(11)--- 背包数据的遍历

    查找数据主要包括:背包数据遍历.NPC数据遍历.怪物数据遍历.地面物品数据遍历.技能列表遍历.周围玩家数据遍历.地图数据的查找.人物信息的查找等等. 本次只讨论需要遍历的数据 为什么要遍历数据? 一般 ...

  9. 外挂学习之路(5)--- 写测试call的注意事项

    找到常量call之后要先找个代码注入工具测试一下是不是想要找的call,一般用CodeinEX这个工具.说下写测试call的时候要注意到的细节,当然在写代码的时候也需要同样的注意. 1.      p ...

最新文章

  1. java modbus通讯协议_物联通讯协议一(Modbus)
  2. 数据挖掘系列(4)使用weka做关联规则挖掘
  3. python怎么引用多行输入_python调用shell返回两行第二行需要输入密码怎么办?import os os.syst...
  4. headroom.js插件使用方法
  5. row number函数_Hive排名函数ROW_NUMBER,RANK 和 DENSE_RANK的区别
  6. 经典排序算法(7)——堆排序算法详解
  7. Linux 下清空或删除大文件内容的 5 种方法
  8. 从714里连续减去6减几次得0_数学干货 | 小学数学1—6年级基础知识整理 ,预习复习都能用...
  9. 浅谈python使用多态跟不用多态的区别_python 多态和 super 用法
  10. 百度网盘直接解析高速下载文件源码
  11. 【Cli下在vue.config.js配置configureWebpack/resolve/alias之无效 - 】
  12. 网易java笔试题_网易笔试题详细解答(Java)
  13. node-js由浅入深教程
  14. [js方法pk]之instanceof() vs isPrototypeOf() hasOwnProperty() vs propertyIsEnumerable()
  15. Linux中write函数
  16. 做个什么网站可以赚钱,这6种网站最好赚钱!
  17. ES6模块化的引入和暴漏本质
  18. 第31章 TIM—基本定时器—零死角玩转STM32-F429系列
  19. 如何将自适应设计理论及韧性结构体系技术应用于穿越活动断裂带的隧道建设
  20. arcgis10动态地图的制作

热门文章

  1. Log4j的FileAppender配置
  2. 数据库-聚合函数-max函数
  3. 静态static关键字概述
  4. 手动使用cglib代理(了解)
  5. h3c服务器 raid 型号,H3C服务器创建Raid
  6. fputc会覆盖吗_墨粉寿命和打印的文件有关系吗?
  7. java cmd找不到文件_cmd中输入java找不到文件解决方法
  8. c语言如何获取按键,c语言获得键盘的按键
  9. Nginx 搭建图片缓存服务器-转
  10. 短期目标[Till 2011-08-05]