112.网络游戏逆向分析与漏洞攻防-邮件系统数据分析-筛选与邮件有关的数据包

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

如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了

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

上一个内容:111.购买物品与拾取物品的方法封装

邮件系统主要的目标有两个,第一个可以看到收到了那些邮件,第二可以对邮件有一个操作能够自动的收邮件,自动发邮件

本次先看有哪些数据包,建立一个宏观的认识

首先是收邮件

打开邮件窗口

选择收信人

发送的内容

发送之前打开我们自己写的抓包工具(DataAnly.exe)

然后下图,今晚打老虎的客户端是,通过我们自己写的 tiStart.exe程序启动的

然后发送邮件,今晚打老虎就收到了邮箱

内容

然后数据包,首先根据内容搜索,如下图,第一步选中数据包列表中第一个数据,然后第二步点搜索,第三部写搜索的内容,第四步选数据类型,第五步搜索

搜索之后就找到了13数据包

翻译的数据包也正是邮件的内容,如下图,然后之前就没把13数据包搞出来,但是这次就必须要搞出来了,然后在 85.解析游戏结构数据包的内容 解了一张数据结构表

拆分13数据包,首先是48号结构体,它的名字是 RecvLetterRec

recv中文意思是收到

Letter中文意思是信

rec没找到中文,rec可能是某个单词的缩写,但是Letter与rec合起来有一个收到信件的意思,这就很明显了

接收信件数据包的拆分

然后发现它有一个序号,它这意思应该是通过这些序号去修改结构体

各自的意思

这个应该是一个校验码,我们不需要

邮件主题

邮件内容

还有一个xml格式的东西

这里面有时间

还有是否加急

还有下图,应该是转的物品数量或物品id的意思吧

金币,应该转的金币数量把

发邮件的人

现已知的说明

接收13数据包之前,有一个11数据包

11数据包拆分,11数据包初步猜测实际做了一个告诉游戏初始化内存(初始化一个48号结构体的操作)也就是创建一个结构,然后13数据包用来更新11创建的结构

然后它里面的4,我们邮件有5个 ,然后11和13里都有一个4,这说明4是邮件的索引,邮件有5个这说明,邮件的数量是从0开始数的

然后再看一个邮件

然后发现这个邮件是在29号数据包里初始化的,这个29之后用代码解析出来再看,它有点大

然后再发一个邮件,它就变成了05了,也就是第6个邮件,所以上方猜测是正确的,它是邮件的所以,13数据包就是更新第6个邮件的信息

然后29数据包拆分,与11数据包一样

下图中01 00 00 00 00,它对应的是一个ascii的字符串,ascii的字符串结尾是以一个0结尾的,但是为什么要搞成 01 00 00 00 00 这样?这没啥原因,数据包都是要靠猜测,如果不搞成 01 00 00 00 00 这样后面的没法拆了,它也只能这样拆才能对应到48结构体上,其余看着不合理的拆分也都是这个道理,都是猜测感觉它就要这样拆,没别的意思,也没别的好法子(逆向就是猜别人当时写代码的时候的心思)

29数据包里的字符串有长度,如下图的例子

打开邮件

打开邮件时会发送之前说它是校验码的东西

打开邮件之后会跟着一个15 24,所以15数据包又多了一个功能 24代表了更新邮件箱,然后后面跟着的13数据包与上方分析的一样

还会有18数据包,上方抓包时抓少了,下方又重新抓的(重新点开了一个位点开过的邮件)

然后收取附件

发送了一个350 8

还发送了一个350 4

然后看到13数据包,它显示把所有的邮件都更新了一次,然后单独更新了02邮件好几次(02邮件就是上方图中收取附件的那个邮件)

然后有一个 19 24 00 01 00,这个应该是告诉我们邮件的附件没有了

然后18数据包,这应该是告诉我们附件到了背包中了

删除邮件

数据包 350 5

关闭邮箱窗口时

会发送三个数据包

删除一个未领取附件的邮件时数据包是350 9

还会有一个12的数据包,初步猜测是告诉游戏客户端邮件没有了

12数据包的拆分

然后现在删下图红框的邮件,它的序号应该是4

它的内容是22222222

删除,确实是4

然后是发送邮件

发送邮件的数据包

还有两个数据包

一个是 350 6

一个是 350 0,它们俩应该是用来说明送邮件完成的数据包

然后现在就把邮件相关的数据包分析好了,分别是 接收、删除、发送、收取附件,但是现在不知道邮件最大的数量,然后我们写代码的肯定会用数组,然后就不知道数据的大小,可以用链表,然后还有邮件的序号的问题


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值