找游戏关键CALL入门

用OD启动游戏
为了实习找死亡回城函数,大家建个小号,先弄死它
我们转回OD
在OD的左下角可以打入命令 bp send 回车
之后立即回到游戏,点游戏里的<回到附近城市>,
这时OD断在71A2428A > 8BFF MOV EDI,EDI
这是发包函数的入口,属于ws2_32.dll的一个函数
游戏是要和服务器保持连接的。你一打bpsend 就断了那不是断到回城的调用上
一直接f9直到游戏正常
按过返城后,那个断才有用!
71A2428A > 8BFF MOV EDI,EDI
断到这后,按ctrl+f9 就执行到这个函数的末尾
71A24310 C2 1000 RETN 10
执行到这
再按f8就回到了函数主体中
005706C9 . 8B0D 4CEC8C00 MOV ECX,DWORD PTR DS:[8CEC4C]
005706CF . 6A 00 PUSH 0 ; /Flags =
0005706D1 . 6A 01 PUSH 1 ; DataSize = 1
005706D3 . 68 005A8C00 PUSH elementc.008C5A00 ; Data = http://blog.soso.com/qz.q/elementc.008C5A00
005706D8 . 51 PUSH ECX ; Socket =>100
005706D9 . E8 28031D00 CALL <JMP.&WS2_32.#19> ; /send
005706DE . EB 07 JMP SHORT elementc.005706E7在这里
005706D9 . E8 28031D00 CALL <JMP.&WS2_32.#19> ; /send从这里看到,这就是调用send 参数有四个
其它有两个比较重要,一个是datasize 一个是data
这两个一个是包长,一个是包首地址
Data = http://blog.soso.com/qz.q/elementc.008C5A00
这里的data大家可以跟一下,恳定是加密的数据,一般没什么规律的。
然后继续ctrl+f9 又执行到末尾 00570721 /. C2 0C00 RETN 0C
再f8就回到上一层调用
(不死游戏也可以下断。但是断后,往回找,是找不到有用的东西的)
按f800568825 . 8B5424 08 MOV EDX,DWORD PTR SS:[ESP+8]
00568829 . 52 PUSH EDX ; /Arg3
0056882A . 8B5424 08 MOV EDX,DWORD PTR SS:[ESP+8] ;
0056882E . 52 PUSH EDX ; Arg2
0056882F . 50 PUSH EAX ; Arg1
00568830 . E8 2B7D0000 CALL elementc.00570560 ; /elementc.00570560
00568835 . C2 0800 RETN 8
回到这样一个调用 有三个参数 这三个参数不知道是什么,
要想看,就需要在00568830 . E8 2B7D0000 CALL elementc.00570560 ;/elementc.00570560去下断。
因为现在游戏已经停了。要按f9才能继续
50的游戏有个事,就是OD停了过久,就会当掉。所以我们不按f9继续ctrl+f9 再按f8
停在0058CB46 . A1 44638C00 MOV EAX,DWORD PTR DS:[8C6344]
0058CB4B . 6A 02 PUSH 2 ; /Arg2 =00000002
0058CB4D . 56 PUSH ESI ; Arg1
0058CB4E . 8B48 20 MOV ECX,DWORD PTR DS:[EAX+20] ;
0058CB51 . E8 0AE1FDFF CALL elementc.0056AC60 ;/elementc.0056AC60
0058CB56 . 56 PUSH ESI
这里大家可以发现,有一个相当熟悉的 地址 是的8C6344这就是目前50的一级基址
CALL elementc.0056AC60 从这个函数看来,是一个可以调用的函数了
它有三个参数,两个是显示的,一个是隐式的 隐式的是ecx ecx=[一级base]+20 取值
这个函数先分析到这。我们继续按ctrl+f9 ,再按f8
00565C56 . C700 00000000 MOV DWORD PTR DS:[EAX],0
00565C5C . E8 CF6E0200 CALL elementc.0058CB30
00565C61 > 83C4 0C ADD ESP,0C
这个调用更简单了。 给eax附值0,并调用.0058CB30
可以试着调用一下。也许这个就是死亡回城函数
刚才的断点有作记录吧
重新启动游戏后,可以直接断在刚才分析的地方了。就可以进行分析了
所有的函数操作,都是这个找法 经过一定的动作分析后,发现停在
0058CB46 . A1 44638C00 MOV EAX,DWORD PTR DS:[8C6344]
0058CB4B . 6A 02 PUSH 2 ;/Arg2=00000002
0058CB4D . 56 PUSH ESI ; Arg1
0058CB4E . 8B48 20 MOV ECX,DWORD PTR DS:[EAX+20] ;
0058CB51 . E8 0AE1FDFF CALL elementc.0056AC60 ; /elementc.0056AC60
0058CB56 . 56 PUSH ESI明文发包函数
0012F400 10FC4450 Arg1 = 10FC4450
0012F404 00000002 /Arg2 = 00000002看明文发包,死亡回城就里的参数是上面这样的 10FC4450数据区里的数 是10FC4450 04 00
说明给明文发包函数传 0400 这个命令就可以死亡回城了 (记录失败的话)你可以断在0058CB30这里。继续ctrl+f9 ,f8回到上一城
回到上一层,是这样的一个函数
004FB000 . E8 BBB5FAFF CALL elementc.004A65C0
004FB005 . 8D88 EC000000 LEA ECX,DWORD PTR DS:[EAX+EC]
004FB00B . E8 10AC0600 CALL elementc.00565C20这个便是我们最终找到的死亡回城函数了
00466707 . 8B4C24 2C MOV ECX,DWORD PTR SS:[ESP+2C]
046670B . 51 PUSH ECX
0046670C . 50 PUSH EAX
0046670D . E8 4E791200 CALL elementc.0058E060买东西了。
07BE2BA8 BD 06 00 00 00 00 00 00 10 00 00 00 ?...... ....发送数据为物类别ID,在NPC中格子的位置 数量
要买卖东西 ,要熟知包果中的物品的位置,类加ID,和数量
买东西,要知道NPC中包的物品类别ID,位置,和购买数量
写给对找call一片茫然的兄弟
我本人是一个菜鸟,学外挂不久,在做出了简单的显红蓝人物信息,通过前台按键模拟挂机的外挂后小满足了一段时间(汗,大概2小时左右的样子)我性质勃勃的开始进入了菜鸟学call的队伍中。
中间遇到很多问题。也去不少地方发帖求助,但……没有人愿意或者说没有高手有时间来指点下
坚持,放弃,不死心,郁闷,终于在今天摸到一点头绪,这里发出来希望对广大的菜鸟兄弟们有一点帮助。
我不想直接帖出如何找call,而是一步步的进行,总结我在call的道路上遇到的问题,于大家共同学习,不对的地方肯定有,希望大家多指正,少口水,谢谢。
好了,废话不多说了,开始吧。
1:首先讲为什么要学call
我这里是因为开始时候做出的简单挂只能前台模拟按键,游戏窗口最小化或者切换当前窗口就会……呵呵,大家都知道,我见了很多和我一样的菜鸟卡在这里满世界发帖求助。
所以开始找可以后台按键的方法,到处找资料逛论坛之后发现2个可能实现方法。
(1)用call(2)winio,这个还正在学习中,具体情况还不清楚
我选择了call,因为高手们手里的这个武器对我来说很神秘的说哦
2: 既然要学call,总要搞明白什么是call吧,这里我摘抄以前一些老大的帖子内容,希望大家看后能对call有一个大概的理解
(1)call就是程序调用。熟悉VB的朋友,应该熟悉调用函数call add(a, b)的方法。
在任何程序的编写中都有很多call。如何找到正确的call是比较难的事情。
上面这句话讲的其实蛮简单的,但对我很有帮助。
这里我说下自己的理解。
为什么要call?游戏程序中有很多函数,游戏内部的程序会调来调去的说,当然函数有自己的函数名称。比如说游戏中打坐的函数,我们可以想象下有一个函数。名字叫"打坐",只要一调用这个函数,人物就会执行这个动作。这个是简单的无参数的函数,所以我拿它来举例子。
现在我们需要做的就是用自己的小挂去调用这个名字叫"打坐"的函数,让人物执行动作。当然不会有人直接告诉你这个函数名字叫什么,等等这些具体的信息(突然想想MS有人告诉我好象我也不知道怎么用,呵呵。菜鸟一只)。所以我们需要在游戏运行时找到这个函数的内存地址,好象也叫入口(我们是菜鸟,不管它那么多),找这个函数的内存地址就叫做找call。而call或者说call的地址其实也就是说这个函数的内存地址。
不知道我这样说大家明白没,个人理解,可能有蛮大问题,希望高手指正。
明白了我们就继续,既然知道call能干什么,我们就开始找call吧。
3:如何找call
很多高手碰到这样的问题都很郁闷,因为这个问题范围太大了,确实也不知道该怎么讲。涉及问题太多。
这大概就是我们求助时候没人理会的原因吧。汗一个,我也追着不少人问这个问题
找call其实最低要求能看懂汇编代码,但这个要求对我一个小菜鸟来说实在太高。以前学的汇编都离开学校后都还给老师了。当然我们这里不去看什么汇编,直接开始找。但也要提前了解些东西,比如什么是汇编,内存地址什么的。OD这个工具很好,也要基本掌握使用,这些对大家来说应该不难吧。
好了,我们开始找call。
这里我们用最新的诛仙95还是99来找。
首先用OD打开游戏,登陆。
然后bp send下断(这个我那时候还没搞清楚断点怎么设,要感谢恶魔天尊老大告诉我这个小白,呵呵)
其实就是在这里输入bp send然后回车,就设置了一个断点,大家最好还是看看OD的使用教程吧,不要象我一样。
查看断点在OD里的快捷键是ALT+B,因为我们后面要用到所以这里说一下。
稍微等一下游戏就会中断下来
看这里
我们先不管它,按F9继续一直到游戏运行。
这里说下为什么要这样做。
因为游戏和服务器一直会保持通信,所以这里的中断和我们没关系,放过它吧,阿门。
等游戏正常运行后我们切换到游戏里按7(打坐),然后OD马上又会断下来。这次我们就要开始工作了,找call,哈哈
先按CTRL+F9组合键3次,这个蛮多教程里都有写,我一直没搞明白为什么是3次而不是5次8次的。
这里我解释一下,刚才说过游戏和服务器是持续保持连接的,当然就会有信息来回的发送,这些不是我们关注的。
所以按CTRL+F9组合键跳过。至于为什么是3次,这里其他的教程很多都说是经验什么的,后来我搞了很久有点明白了,但不知道是不是正确。
大家看这里
上面有写模块-WS2_32什么的,系统消息。所以我们不去理它,继续再按一次CTRL+F9,直到变成了
看到不同了么?呵呵。不过直接按3次也不会错,毕竟前人的经验要比我们丰富很多。这里大家看下就好
3次执行后我们按第4次,然后按ALT+K,这里把第一行保存下来
继续按CTRL+F9,然后ALT+K,同样保存下来
一般搞3次就可以了(网上不少教程中都有说到一般正确的CALL在4-7层之间,算下我们的,前面3次直接跳过,然后这里取3个结果,恩。6层,也差不多拉),然后ALT+B把断点先禁止,按F9让游戏正常运行,如果你中间速度比较慢一点游戏会断开,没关系,再用OD打开来一次。我这里发2个图。
这里就是call的地址了,但我们保存了3个,不知道是哪个,没关系,我们大概分析下
前面说了打坐是无参数函数,看第一张图,有2个参数,arg1和arg2,这个大概不是
第二张,恩,没有参数,我们把它记录下来,005A8260,第三张同样对待,现在我们可能记录了2-3个call的地址,ok。
我们来测试一下看看。
下面是测试call的代码,易语言的哦
上面的数字就是005A8260转为10进制后的值。
登陆游戏,打开你的小挂,点打坐按纽,看看,是不是真的打坐了?哈哈。是不是有点成就感了
(如果call不正确游戏可能会异常退出,我们再登陆游戏换另一个试下就好)
恩,别急,我们趁热打铁再找一个,普通攻击的call
好了,OD附加游戏,断点,然后游戏被断下,执行到正常运行,然后按1(普通攻击,这里要注意把你游戏人物站到怪近一点的地方,选中怪物后再按,要不然你找的可能是走路的call或者选怪的哦)。断下来了,我们这次不再记录多个值了,直接按5次CTRL+F9(问我为什么?因为刚才打坐的CALL我们是在第5层找到的,这个当然也一样拉,就不花时间去每个记录了),然后ALT+K,看图
直接拿去试试吧,5A7C20,哈哈。记得要选中一个怪再点攻击哦。
到这里我们不去关注汇编代码不去看其他资料成功的找到了打坐和攻击的call,呵呵。去完善你的小挂吧,HOHO,做出来别忘记发给我用用哦
另外强调,这里我们是找到了CALL,但如果你想继续深入的学习,相关的内容还是要学习的,投机不是长久之计哦

找游戏关键CALL入门相关推荐

  1. 游戏引擎与游戏引擎开发入门

    早想写一点游戏设计的文章与大家交流,一是经验的问题,二是公司正在紧张的游戏制作期,实在抽不出多少时间,一直没有动手,今天忽然头脑发热,写了一段,以后准备陆续写一些游戏创意,策划,制作,流程管理,和制作 ...

  2. 视频教程-X64位游戏软件安全逆向入门-其他

    X64位游戏软件安全逆向入门 在职教师,从事it行业多年.兼职培训10余年,主要是反外挂数据分析和游戏数据分析.有明文封包分析系列等多部教程. 曾辉新 ¥600.00 立即订阅 扫码下载「CSDN程序 ...

  3. OUYA游戏开发快速入门教程

     OUYA游戏开发快速入门教程 试读地址:http://pan.baidu.com/s/1o63a3W2 本教程是国内唯一OUYA游戏开发教程.本教程基于Unity全面讲解OUYA游戏开发方式.内容包 ...

  4. python游戏编程入门书籍推荐-游戏编程入门书籍推荐:想要游戏编程尽快入门这些书不要错过...

    游戏编程一直都是编程之中的一大热点,这也是由于游戏本身的火热造成的结果,所以每年都有很多人在关注着游戏编程.介于此小编今天就来将一些好的游戏编程入门书籍推荐给大家,希望对想要了解和学习游戏编程的朋友能 ...

  5. Windows游戏编程快速入门方法

    Windows游戏编程快速入门方法 Easideao(简单思路) 序言: 从2001年到2005年,在不知不觉中我已经渡过了4年的职业游戏开发生涯.在这4年里经常会有些网友向我询问编程的入门有没有捷径 ...

  6. 虚幻引擎5(UE5)实时VFX游戏特效制作入门到精通

    UE5 Niagara学习教程  课程获取:虚幻引擎5(UE5)实时VFX游戏特效制作入门到精通-云桥网 你会学到什么 我将通过创建各种各样的实时效果来教你虚幻引擎中强大的粒子系统. 我们将从简单的基 ...

  7. 游戏风格化角色创建入门指南视频教程

    游戏风格化角色创建入门指南视频教程 时间 33小时 包括项目文件 1920X1080 MP4 语言:英语+中文字幕(根据原英文字幕机译更准确)+原英文字幕 游戏中的风格化角色创建入门指南  百度一下 ...

  8. 游戏控制杆OUYA游戏开发快速入门教程

    游戏控制杆OUYA游戏开发快速入门教程 1.2.2  游戏控制杆 游戏控制杆各个角度的视图,如图1-4所示,它的硬件规格是本文选自OUYA游戏开发快速入门教程大学霸: 图1-4  游戏控制杆各个角度的 ...

  9. Transform组件C#游戏开发快速入门

    orm组件C#游戏开发快速入门大学霸 Transform组件C#游戏开发快速入门 组件(Component)可以看作是一类属性的总称.而属性是指游戏对象上一切可设置.调节的选项,如图2-8所示.本文选 ...

最新文章

  1. Android开发--AsyncTask异步任务(一)
  2. 转用特征码秒杀各程序语言按钮事件
  3. JDBC的CRUD操作之PreparedStatement的修改操作
  4. 你已经是一个成熟的地图了,该学会帮我...
  5. mysql cluster 宕机 恢复_mysql cluster 集群恢复不起来,还请大神赐教?报错-问答-阿里云开发者社区-阿里云...
  6. 不同表结构数据迁移_C语言:数据结构-广义表的存储结构
  7. Ubuntu18.04截屏编辑工具flameshot
  8. 使用jQuery的load方法实现div局部刷新
  9. cad文件管理服务器,CAD文件管理(ZT)
  10. 自制jlink ob stm32f072 版本。带串口
  11. 通过jclasslib修改class文件
  12. tera term串口文本匹配打印时间脚本
  13. 值得关注的18支基金
  14. 金融知识图谱有什么?
  15. 手机怎么设置腾达路由器后显示远端服务器,教你如何用手机快速设置腾达路由器...
  16. ThinkPHP3.1.3 { Fast Simple OOP PHP Framework } — [ WE CAN DO IT JUST THINK ] 报错解决办法。...
  17. android studio + ndk + cmake + jna +sqlite c层报错SQLITE_CANTOPEN(14),SQLITE_MISUSE(21)问题
  18. MOS管开关使用方法
  19. keyboard ios 虚拟键盘 删除键的响应
  20. 一种将pkl转成excel的弯道[可以实现有点奇怪,以防excel显示不全]

热门文章

  1. 水清冷冷:PSCC2019/PSCC2020安装教程和学习技巧(附工具)
  2. 小萝莉偷菜机器人(QQ农场辅助程序)0.3F4 新年版 -2010年1月17日更新
  3. python 加速度_MicroPython动手做(20)——掌控板之三轴加速度
  4. 盘点那些免费视频网址到底有多爽
  5. 两个有序链表合并成一个有序的单链表
  6. 树莓派 zero 通过 max31865 连接 PT100 热电阻 测量温度
  7. 锐龙r74800h和i710750h差距大吗 r74800h和i710750h对比
  8. L2-009 抢红包 排序+模拟
  9. 重要通知丨涂鸦安防SaaS产品 新版本发布!
  10. 用PyQt5+Caffe+Opencv搭建一个人脸识别登录界面