29.x86游戏实战-XXX发包函数

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

本次游戏没法给

内容参考于:微尘网络安全

工具下载:

链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3

提取码:6tw3

复制这段内容后打开百度网盘手机App,操作更方便哦

上一个内容:28.x86游戏实战-初探XXX发包

上一个内容中最后游戏弹出了一个弹框然后它就崩溃了,这原因就是返回的太外层了,让游戏执行检测了,检测的代码还都是vm,vm的代码一般在最外层,最外层执行的不频繁,如果把vm代码放到发包的公共call里那么游戏性能会变差体验会变差,所以vm代码不会写到频繁执行的位置,一般vm代码都在最外层,有了这种情况就有办法绕过vm了

首先在MessageBoxW和MessageBoxA函数上打断点,看一看这个检测

CTRL+G然后输入MessageBoxW

然后就跳转到了MessageBoxW函数里了

在函数ret位置打断点

然后再在MessageBoxA函数里ret位置也打断点

打完断点就完了,然后开始分析这个游戏发包(分析发包过程中会触发检测的,上方打好断点下面分析发包时触发检测再看它检测的代码)

上一个内容,知道了它在xxdl模块里实现了发包,所以就要先来到xxdl里,然后现在来到WSASend函数里的调用WSPSend函数的位置上

然后打断点,断点住以后按F7进入到WSPSend里

然后就在WSPSend函数头打断点,断点住以后取消断点,按CTRL+F9,这样一直重复直到进入到xxdl(游戏自己实现的发包函数里),也就来到下图位置

然后一直按ctrl+f9

上图按完CTRL+F9就到了游戏模块了

到了这第十层,再按CTRL+ F9之后,下图的线程都会挂起状态

然后点Resume All Threads让线程变为激活状态

线程激活之后它弹框了,如下图

刚开始在MessageBoxA和MessageBoxW函数的ret位置都打了断点,这时点了弹框里的确定就会卡主

然后取消断点,按f8,就来到了下图位置

看到下图红框位置的代码就不是正常的代码,这就是VM代码,这些VM代码就是检测的代码

然后往上滑,代码也不正常,现在过这个检测就很麻烦,现在不过它,只要再第十层不按CTRL+F9游戏就不会卡死,先这样搞,后面会写怎么去绕过这个检测

然后重启游戏回到d10,开始找游戏发包的公共call,游戏会经常闪退,所以最好记录一下这些地址(地址要记模块加偏移,内存地址不是固定的)如果不记录就要重新找

来到d10打断点

发现它会频繁断下来

然后来到d9打断点,它断下来的频率就不高了

切换地图的时候d9会断下来,走路不会断、切换装备也不会断,然后来到d8位置打断点

d8位置走路会断、切换装备会断、切换地图也会断

然后在d8位置断点住之后按CTRL+F8,看看切换装备、走路还会不会执行相同的函数,下图是通过切换装备触发,这里一路CTRL+F8

最终它也会到d10位置

通过切换装备触发d8一路按CTRL+F9的时候写了q开头的注释,如下图,q1到q9,到了q9再按CTRL+F9会来到d10

然后回到d8,这次通过走路触发

到这就可以肯定了d8就是公共call,也就是下图红框里的东西

然后d8函数的函数头0x1127EC0,到这就把公共call找到了

然后,这个游戏中恰好调用了WSASend函数,然后WSASend函数里调用了WSPSend,那游戏并没有调用WSASend、send、sendto这三个函数,那WSPSend函数怎么找?如果游戏没有调用WSASend、send、sendto这三个函数那就去找别的软件,只要是发送网络数据包的软件基本就可以,应用软件一般不会自己写send函数(发送数据包函数)目前应用软件没有安全监测随便就能搞(实在不行就自己写一个控制台程序调用一个send函数),在应用软件里的WSASend、send、sendto这三个函数分别打断点,然后再找WSPSend(找法与上方写的一样,WSASend、send、sendto这三个函数里往下滑看到WSP然后下一行是call 寄存器),WSPSend函数是Windows操作系统的,内存地址是不会变的,也就是说Windows操作系统开机了WSPSend地址就固定了,所有程序、游戏等它们的WSPSend函数地址都是一样的


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值