当前位置: 首页 > news >正文

32.第二阶段x64游戏实战-封包-公共call

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

本次游戏没法给

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

上一个内容:31.第二阶段x64游戏实战-封包-线程发包

上一个内容,通过对ws2_32.send函数设置断点,知道了这个游戏是使用线程发包,然后通过对ws2_32.send第二个参数也就是数据包的内容设置硬件写入断点,通过激活窗口来到了一个新地方,然后硬件断点没办法设置条件,所以要解决激活窗口发送数据包的问题

下面开始,来到下图红框位置,也就是通过对数据包设置硬件写入断点,再通过激活窗口触发硬件写入断点来到的(别忘了删除硬件写入断点)

先说一下情况

这章的标题是封包公共call,意思是不管走路、释放技能、发送聊天消息、激活窗口等发送的数据包,都会有组装数据包(明文包、非加密数据)、加密、发送数据包,这三个步骤,发送数据包就是ws2_32.send函数之前找过了,然后找加密和组织数据包的代码的过程中在ws2_32.send发现线程发包和激活窗口发包这两个问题,然后激活窗口发包通过条件断点进行了跳过,然后通过对数据包的内存地址设置硬件写入断点解决的线程发包,然后硬件断点没办法设置条件,所以只能先通过激活窗口发的包触发写入断点,从而再找条件,上图是通过激活窗口触发硬件写入断点来到的,也就是说现在解决了线程发包问题,还剩下激活窗口发包的问题,解决了激活窗口发包就可以找组装数据包的函数了(加密的我们看不懂没法用,所以肯定要找非加密的明文包)

解决激活窗口问题

首先删除硬件断点

然后按CTRL+F9再按F8来到下图位置

然后继续按CTRL+F9再按F8来到下图位置

然后继续按CTRL+F9再按F8来到下图位置

然后继续按CTRL+F9再按F8来到下图位置,然后按F9让代码运行起来,每按一次CTRL+F9再按F8都会写一个注释,一会要用到,至于按几次CTRL+F9再按F8,根据经验大约按五六次就可以,多了也没事

然后再次对数据包设置硬件写入断点

然后再次通过激活窗口触发硬件断点,来到下图红框位置,这里的代码就是把rdx的值放到r10里(r10是ws2_32.send第二个参数),然后这一层就分析完了

然后在下图红框位置设置断点

通过断点发现 rcx是ws2_32.send第二个参数(下图的内存地址和上面的不一样了,是因为游戏闪退了重新打开导致的),但是它有个问题

然后按F9,可以发现rcx的值再增加

然后继续按F9,可以发现rcx的值再增加

然后继续按F9,可以发现rcx的值再增加

然后继续按F9,可以发现rcx的值再增加

然后继续按F9,可以发现rcx的值再增加,rdx的值也再变化,rdx的值是数据包的数据,这说明当前断点位置在一个循环里,我们现在正在解决激活窗口发送数据包问题,解决这个问题要找一个固定的值做判断,所在现在断点的位置不是很合适,需要继续找

rdx的值,激活窗口发送的数据包也是0x0555

然后如下图来到第三层继续观察

然后如下图通过断点观察,现在的rcx不是ws2_32.send第二个参数,但rdx的值还是数据包的数据

然后按F8,可以看到rcx的值变成了ws2_32.send第二个参数,然后数据包的数据也写进去了,这个位置就感觉很符合条件断点

如下图设置条件断点,Word(rcx)!=0x0555,Word(rcx)的意思是读rcx两个字节的数据,到这就解决了激活窗口的数据包问题,然后接下来找公共call

然后下图是通过发送聊天数据触发的断点

然后按CTRL+F9再按F8

然后继续按CTRL+F9再按F8,可以发现在第四层按了CTRL+F9再按F8之后来到的位置和通过激活窗口跳到的位置不一样了,这说明第四层就是公共call,然后按F9让代码运行起来

然后鼠标左键单机下图红框位置,然后按回车键(Enter键)

然后就来到下图红框位置,也就是第四层函数的头部,到这公共call也就找好了

这里可以换一个激活窗口的条件判断,如下图通过激活窗口触发断点,然后下图红框位置是函数第一行,所以栈里的第一个数据就是返回地址,这个返回地址是返回到激活窗口的功能里,所以可以通过判断栈第一个数据来过滤激活窗口

下图是通过激活窗口触发的断点,0x00007FF663213A65是激活窗口代码的地址,通过上面的分析第四层是分界线,所以写 [rsp]!=0x00007FF663213A65 可以用来做过滤激活窗口

总结:

通过对ws2_32.send第二个参数设置硬件写入断点,然后通过激活窗口触发硬件写入断点,然后通过多次CTRL+F9再按F8,找到了激活窗口调用函数路线,然后在通过发送聊天数据触发断点也找到了聊天调用的函数路线,通过激活窗口路线和聊天路线的对比找到了公共call,通过对公共call设置 [rsp]!=0x00007FF663213A65 条件断点解决了激活窗口发送数据包问题


img

相关文章:

  • [yolov11改进系列]基于yolov11引入感受野注意力卷积RFAConv的python源码+训练源码
  • 【刷题】数组拼接(超聚变暑期实习笔试)
  • GitCode镜像仓库批量下载开发实录
  • 一,关键字class和typename的区别
  • 线代第四章线性方程组第二节:线性方程组有解判断
  • 模型协同构建智能流程体
  • linux kernel 内存回收水位线调整方法
  • 《独立开发工具 • 半月刊》 第 003 期
  • java每日精进 5.27【分布式锁】
  • [网页五子棋][用户模块]客户端开发(登录功能和注册功能)
  • 《计算机组成原理》第 3 章 - 系统总线
  • 2025年- H54-Lc162--437. 路径总和 III(递归[回溯]OR深搜)--Java版
  • 24 数组基础与应用详解:定义(静态/VLA)、初始化、访问(有效/越界/内存调试)、遍历、大小端字节序
  • C++23:关键特性与最新进展深度解析
  • DAY9 热力图和箱线图的绘制
  • 翻转二叉树
  • 【基于STM32的新能源汽车智能循迹系统开发全解析】
  • React---day2
  • 软件同步机制-Peterson解决方案 简单讲解
  • day38 python Dataset和Dataloader
  • 网站和域名的区别/广告营销案例分析
  • 气象网站建设管理的不足/软文营销网
  • 有没有做美食的小视频网站/网盘搜索引擎
  • wordpress怎么加滑块/关键词排名优化怎么样
  • 做网站公司/哪个公司做网站推广最好
  • 网站重构案例/网站seo在线优化