目标:游戏找CALL练习实例ONE
记:看这篇找CALL文章,并不是说要学会它的操作步骤,而是学会找步骤的原理,只有懂得原理,才算真正会了.不要因为模拟器的简单 而忽略这篇文章,也不要因为曾经写过这个模拟器的挂 而忽略这篇文章.希望这篇文章能给你带来帮助.
这是一位大牛做的模拟器器,今天就来找这个 模拟器的CALL
用OD 加载 模拟器
然后按F9 运行
下bp send 断点
P:为什么要下 send 断点?
*send 是微软提供的一个API 函数,可以用来发送数据包. 绝大部分游戏都是用这个函数来发包的,其他还有 WSASend sendto WSASendto == send对应的收包函数是 recv WSASend对应的收包函数是 WSARecv
下段 后 这里按 ALT+B 会显示 已经下段的 地址
*当你暂时不想断下来 而又不想删掉 就可以 按 空格 来禁止.
断下来后,我们点下 模拟器的 加血 按钮 OD立马就断了下来
*标题显示 模块- ws2_32 表明 我们还在系统领空
*游戏发送数据包是调用send函数 发送的,掉用以后 程序告诉系统 我要发包了,然后系统就开发发送封包,这个时候断下来后 我们就在 系统发送完封包 后.
按 CTRL+F9 返回
P:为什么要用 CTRL+F9 返回?而不是 前进?
*程序是 一层套着一层的,就像一个箱子 里面 包含一个箱子 ,而里面的箱子里又有一个箱子.而我们断的send 就是在最里面的箱子,所以我们需要返回到 我们所需要的代码层.
我们来看下 堆栈窗口
这里 第一行是 CALL
第二行到第五行 是 CALL的 参数
写成函数就是 send(soket,data,datasize,flags)
这个就是 系统send所需要的参数
DATA 这里存放着 send发送的封包内容
DATASIZE 表示 封包的大小
从MSDN查看一下 函数的参数 我们会 发现 他的参数 跟我们刚刚反汇编的一样.
目标:游戏找CALL练习实例ONE
最新推荐文章于 2023-10-16 15:38:25 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)