99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析

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

上一个内容:定位明文发送数据的关键函数

首先来到下图位置,查看edi的值是怎样来的

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第1张图片

然后使用高亮模式查看edi,看看谁给edi赋过值

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第2张图片

首先是下图红框位置,mov ecx, edi也就是edi是一个类,这个类调用了它的成员函数,这个操作是可以修改edi的值的,所以需要记录一下0x914C1C

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第3张图片

然后还有下图红框位置,0x914B96

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第4张图片

然后下图红框位置,0x914B37

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第5张图片

第一次修改edi,这个数据看不懂

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第6张图片

第二个修改edi,这个数据相似,创建了一个数据包头,或者说一个空的数据包

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第7张图片

它的参数是 7025 和 0,

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第8张图片

移动时也会触发,它的参数是 7021 和 0,这个7021相似操作类型

在调用了下图红框位置的函数之后,我们聊天框输入的数据,写入了上方创建好的空数据包里

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第9张图片

然后通过下图断点位置的函数,完成了明文数据组装过程,它的参数是,一个局部变量的控件 和 数据的长度

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第10张图片

执行完它的数据,我们的消息数据写入到了,变量里

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第11张图片

然后继续往下看,在调用第一次修改edi值的函数时,它的参数是刚刚的局部变量,和数据长度

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第12张图片

这时的edi,还是一个空的数据包

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第13张图片

执行完函数,消息数据写入到数据包,这里记录数据组装关键点,

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第14张图片

如果分析要说话的数据,只要 HOOK 0x914C1E位置调用的0x47F550函数,在0x47F550函数里可以看出数据包结构很大

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第15张图片

还有需要看一下数据包是否存在内存泄露问题:下图红框位置pop edi,很明显没有内存泄露问题,不需要管

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析_第16张图片

总结:

三个重要的函数:第一个获取一个空数据包函数(0x914B8D位置调用的0x12A3AB0+0x24函数),第二个是我们要发送的数据组装到数据包的函数(0x914C1E位置调用的0x47F550函数),第三个是发送数据包函数(0x914C2F位置调用的0x12A3AB0+2C)

你可能感兴趣的:(网络,网游逆向,游戏)