超级HOOK技术无需分析基址

在我们读取游戏中各种数据时候,都是要找游戏的基址和相关偏移量来读取数据的,

而有的游戏找数据的基址是会比较繁琐和难的,那怎么办呢?

新手对复杂的游戏的数据结构不知道如何分析基址,

就读取不到想要的数据,就无法制作外挂程序相关的功能,难道就没办法了吗?

当然不是,GAME-EC 模块里的 类_超级HOOK 可以完成这点,不需要找到游戏数据的基址和偏移量,

超级HOOK是在2011-12-12 03:00 时间开发出来的功能,是中国网络上易语言最早的创造出这功能的,

凡是时间 2011-12-12 03:00 之后其他网站出的超级HOOK都是山寨的不稳定。

这个功能可以做很多事情,也可以截取游戏各种数据信息,

超级HOOK的原理是:
在HOOK指定地址,拦截经过该地址的所有寄存器数据信息,
然后传递一份给我们自己的程序,就好比安装了个窃听器一样,对方经过这个地方时候,所有的寄存器信息数据我们都会被监听到

下面就举个例子演示下超级HOOK的功能使用
先找到游戏里指定数据的正确内存地址,这里用 亮剑 游戏示范,
其他游戏也是一样的思路,只是数据地址找法不一样而已,

首选用CE搜索游戏坐标值,找到关联的内存地址即可
在这里插入图片描述

找到数据的内存地址后,我们加入到下面地址列表去,然后鼠标右键查看第一条地址的代码:
在这里插入图片描述
进入游戏走动一下,
出现了 mov 指令数据传送的代码即可,然后选择一条 mov 指令的汇编代码 (最好是有+偏移量的),
如图:
在这里插入图片描述

我们选择一条mov的代码
比如: mov 寄存器,[寄存器+偏移量] 这样的代码最好
当然如果实在没有偏移量的话,也可以,比如上例中的
009D210C - 89 47 14 - mov [edi+14],eax <<
形式是 mov [寄存器+偏移量],寄存器 或 mov 寄存器,寄存器 的都可以,我们只需根据HOOK的汇编代码的形式来写代码即可
那么有偏移的mov指令代码就优先选择,这里我们就选择:
009D7A72 - 8B 46 14 - mov eax,[esi+14] << 这条代码HOOK
但是这条代码只有 3个字节( 8B 46 14 ),我们的超级HOOK必须HOOK 至少5个字节的代码,
否则会HOOK失败奔溃!

像我们示范的游戏这种时候需要注意了,
如果HOOK的地址的汇编代码不够5个字节,我们就可以找下它上面或下面的一条代码或两条代码,
凑够5个字节或5个字节以上即可,
比如我们现在HOOK的地址 009D7A72 这句汇编代码不够5个字节,我们就可以把它下一行的代码也HOOK进来
009D7A6A - 84 C0 - test al,al
009D7A6C - 0F84 73010000 - je cHelpZipFile::GetKBpS+5ACA05
009D7A72 - 8B 46 14 - mov eax,[esi+14] <<
009D7A75 - 8B 4E 18 - mov ecx,[esi+18]
009D7A78 - 57 - push edi

HOOK 009D7A72 的代码3个字节 + 下面的一行代码 3个字节 就是:8B 46 14 8B 4E 18 就有6个字节了,满足HOOK条件
那么总结这个游戏的X坐标数据HOOK信息是:
HOOK的地址:009D7A72
HOOK的长度:6
HOOK的起始代码:mov eax,[esi+14]
下面我们就来写超级HOOK代码 来截取X数据显示到我们的小外挂里面:
在这里插入图片描述 在这里插入图片描述

运行后,效果:
在这里插入图片描述

运行后,成功拦截到了游戏的指定数据,然后读取显示在我们的外挂程序里面,
这样就不需要去辛苦分析游戏的基址和偏移量来读取游戏的数据信息了,
提醒:我们做外挂程序,思维别太死板,只要我们能读取到游戏的数据信息,不管用什么方式去读取到的数据,能用就行!
因为我们要的是数据信息来执行操作游戏的相关,

当然有的学员可能会说,超级HOOK 截取到的游戏数据信息,
换台电脑后是不是也可以正确读取数据, 我在这里告诉大家:这是当然可以的,依然可以读取到哦

超级HOOK的数据截取读取 与 通过数据的 基址 + 偏移量 读取来的数据一样稳定,
编译后,换电脑一样可以读取到数据,因为它截取的不是动态内存地址里面的数据,而是截取游戏进程的汇编代码的数据信息!

另外超级HOOK,还可以对指定进程你的API函数HOOK噢,来获取指定进程API执行的信息,达到监视的效果!

源码下载:http://bbs.dult.cn/thread-10417-1-1.html

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值