6.网络游戏逆向分析与漏洞攻防-游戏网络架构逆向分析-通过逆向分析确定游戏明文发送数据过程

内容参考于:易道云信息技术研究院VIP课

上一个内容:测试需求与需求拆解

在开始之前要了解一个小知识,在逆向开始之前要很清楚知道要找的东西是什么,大概长什么样子,只有这样才能看到它第一眼发现它,现在我们要找的是它发送数据的明文函数,如果它要实现这个过程它这个函数是怎样的函数?要提供那些内容?第一明文的数据包肯定要提供,数据包本质上是一块内存,所以它看起来就会是内存的样子,执行过去之后内存里会有数据,数据是明文的,所以里面一定有我们可以辨识的内容,第二光有数据包不行,数据包它就是一块数据,一个指针,这个内存有多次必须要给出来,所以它会有长度,所以要关注两个参数的函数。

不过也有的数据的长度在数据包里,这样的就会只有一个参数。

所以在逆向的时候要关注两个参数的函数,一个参数是指针,一个参数是长度,或者一个参数的函数,参数是指针

首先观察它是用的什么ip,打开x96dbg,在connect、WSAConnect函数上下断点

connect上,下断点

WSAConnect函数上,下断点

然后会发现是通过 connect函数进行与服务器连接的

然后可以在栈里看到ip地址与端口

然后在调用connect函数的位置,调用玩connect函数之后我们就可以获取它的socket,所以记录一下调用connect的位置,0x10617E04

然后再按一次ctrl+f9,再按f8,来到下图位置

然后这个函数它的入参是ip地址与端口,这是一个虚函数,ecx是对象指针,这里记录一下位置0x10617048,这里的ecx的值可能有用也记录一下 0x3696AD00

现在连接的已经知道了,现在看发送的,在send、WSASend函数上下断点

根据函数名跳转的方式,按ctrl+g,然后再弹出的窗口输入函数名,然后点确定就可以了,如下弹框

send函数下断点

WSASend函数下断点

然后它在send函数里断下来的,所以它用的send函数

然后来到调用它的位置

然后下图红框里的代码,esi是一个对象指针,至于为什么不使用ecx而是使用esi,这说明用的不是Visual Studio的编译器编译的代码

然后下图红框位置直接告诉了我们下方是发送失败的处理

然后现在是处在发送的位置,然后往上找就能找到加密的位置了,然后按ctrl+f9再按f8来到上一层,现在位置:0x106180A5

由于现在看不出什么东西,所以再按ctrl+f9,再按f8,来到上一层,然后就来到下图红框位置,可以看出它有两个参数

然后断点看它的参数是什么,参数是一个指针,和一个数字,这个数字太符合长度的样子,然后内容现在看不懂,因为不知道现在是个什么样的数据包

这时需要搞一个我们认识的数据包,比如发送聊天数据,然后就看到了明文,在发送聊天数据时要注意,游戏会有心跳包,发送聊天数据的时候要快点,不要让心跳的数据包触发了断点

然后我们把这个数据更改一下,把2改成了8,然后记录一下这里的位置0x10615B97

然后发送的数据也被改了

然后再刚开始connect哪里有一个指针,但是游戏我退出过,上方的指针变了,所以为了验证猜测重新在connect位置打断点,然后再发送一个数据看看,它俩是不是一个东西

connect:现在是0x368B7C0

send位置:0x368CB7C0,它与connect哪里的ecx一模一样,也就是说它是一个很重要的东西

0x368CB7C0可以通过hook掉 connect哪里的函数也就是hook0x1061704B位置

经过在send函数位置看到的数据包,发现它未加密,数据包中也没有长度,然后数据包最后只拼接了一个EE防止粘包,由此可见这是一个有问题的数据包,现在的客户端应该是一个早期版本,功能不全,但是也不影响我们逆向

下图中备注处理数据的位置是在调用send函数之前,一般加密操作都会这样,但现在的客户端是一个早期版本它并没有加密操作,只把数据拼接到数据然后在最后拼接一个EE,就完了

相关推荐
流浪法师123 小时前
SecProxy - 自动化安全协同平台
运维·安全·自动化
HMS Core3 小时前
鸿蒙版小红书如何让图库访问完全由“你”掌控
安全·华为·harmonyos
lc寒曦3 小时前
我为女儿开发了一个游戏网站
游戏·ai编程·cursor·儿童教育
群联云防护小杜5 小时前
基于AI的Web应用防火墙(AppWall)实战:漏洞拦截与威胁情报集成
前端·分布式·安全·ddos
Codingwiz_Joy6 小时前
Day21 -GitHub监控工具~Github-monitor的配置
安全·github·安全性测试
白猫a٩6 小时前
记一次某网络安全比赛三阶段webserver应急响应解题过程
安全·web安全·网络安全
白山云北诗6 小时前
大型手游 DDoS 攻击怎么防护?游戏盾 SDK 技术解剖实录
游戏·ddos·手游高防 sdk·抗 ddos 方案
小羊在奋斗8 小时前
【经典DP】三步问题 / 整数拆分 / 不同路径II / 过河卒 / 下降路径最小和 / 地下城游戏
游戏·代理模式
QC七哥9 小时前
程序加壳脱壳原理和实现
安全
计算机鬼才~11 小时前
网络安全·第二天·ARP协议安全分析
网络·安全·web安全·arp