52.网络游戏逆向分析与漏洞攻防-基础数据分析筛选-面对庞大的数据如何找到节奏

本文详细分析了游戏中的数据包,从角色选择到游戏配置信息的获取,强调了字符串作为关键突破点,以及1E数据包的重要性和可能的压缩/解密过程。作者指出理解数据结构和压缩方法对于后续分析至关重要。
摘要由CSDN通过智能技术生成

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

如果看不懂、不知道现在做的什么,那就跟着做完看效果

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

上一个内容:51.角色选择的模拟与截取

之前的数据分析只是开胃小菜,做了很多开发把游戏对接的底层代码都给搞好了,接下来开始进入上战场

首先输入账号登录进游戏,然后选择一个1级的角色进入游戏,如下图,使用 今晚打老虎 这个角色进入游戏

点击进入游戏之前的数据包

仅仅只是点击了进入游戏之后数据包的情况,如小图,可以看到右边的滚动条因为数据很多导致变的很小了

面对这样庞大的数据包,不要慌,无非就是 数据结构约定 或者 数据解析约定 这两种方式,从第一个数据包开始,一个一个搞,首先是找点击进入游戏之后发送的第一个数据包,如下图红框,这个数据包,在上一个内容里,已经分析好了,04开头后面跟着角色名

然后04就略过,看09开头的数据包,如下图,数据包很大,有7156个字节,这个大的字节肯定不会有这样的结构体,所以这种庞大的数据包肯定是结构体数组 或者 数据解析约定的数据 这两种

然后尝试分析,然后使用数据约定的解析方式,发现全部都是字符串,然后09后面的27根据之前的0A数据包得来的经验,可以推测27是数据参数个数,后面的数据都是字符串,也就是说这个09开头的数据包里有27个字符串,然后感觉这些字符串是游戏配置信息

游戏配置信息就是游戏中显示的所有内容,比如血量、衣服、角色模型等这些东西全部都是通过服务端发来配置数据来搞的,如下图红框里的东西,有可能是根据服务端发来的数据进行展示或者数据初始化

然后它的字符串代表数字跟之前解析的对不上,下图中02、01、03、05、07这些数字开头的数据,后面的数据全部都是字符串,然后之前分析的只有06数字开头的才是char类型字符串(单字节字符串),07开头的是宽字节字符串(wchar_t类型字符串),然后现在先不管了,然后现在把这种 02、01、03、05、07开头的数据,称为数据类型代表数,为了后面方便称呼这种代表了数据类型的特殊数字,现在把它们统称 数据类型代表数

部分字符串

接下来再看别的数据包

看下图红框的这个0A开头的数据包

通过初步的分析,发现它里面也都是字符串,但是通过数据解析约定来解读它,它的 数据类型代表数,感觉很乱,完全想不通游戏怎样解读的,然后也就是说光看这个地方,看不出什么结果,它肯定与别的地方有极大的关系,所以现在不看它了,然后下一位

然后看10开头的数据包,如下图红框

然后发现它里面也有字符串

它有可能代表的是装备,因为游戏里东西就是通过这种东西构建出来的,这个数据包可以分两个部分,如下图,变化的部分与不变化的部分

然后再看下一个数据包,12开头的数据包

完全看不懂是什么,完全不知道该怎样拆分,之前积累的东西,在这完全失效了

然后看,11开头的数据包

它的数据里有字符串,可以使用数据解析约定解出来一点,但是很奇怪01是3字节,不知道这个数据怎么解析才正确

然后下一个,13开头的数据包

它也不知道怎么解,直接下一个了

然后是15开头的数据包

不知道是什么,直接下一个

然后是1E开头的数据包

它比较符合之前写的解密约定的

字符串内容

很明显是告诉我们服务器版本号是什么,然后再看另一个1E开头的数据包

解读出来不知道是做什么的

然后再看另一个1E开头的数据包

它的内容

角色最大等级

这个不知道是什么

最大等级60

这个1E开头的数据包与发送的0A开头的数据包很相似,然后再解读一个1E开头的数据包

基本都是一些数字

字符串翻译不知道代表什么意思

数字翻译,一个是3000一个是3290

然后另一个1E开头的数据包

结果是也不知道代表的什么意思,然后下一个数据包

然后是0B开头的数据包

然后这时发现,00 B2 47 00 01 76 40 E7 02这个数据好多数据包都有,如下图红框

拆分0B开头的数据包数据

都是字符串,下图翻译的内容

后面两个不知道是什么了,然后0B开头的数据包就先不管了,然后看下一个数据包

下一个数据包 28开头,它的数据很多

在它里面发现了我们角色的名字

29开头数据包,比较常见,还很大

到这发现47开头的数据包都很大

然后再往上就到了,进入游戏的数据包了,以上是点击进入游戏,数据包的情况与初步分析

然后再往上翻可以看到相似坐标的数据,下图有4个分别是x、y、z、面向

然后通过游戏界面可以确定506.960999是x或者y,由此可以推出7.891873是z也就是高度(正常人都是xyz这样写,肯定不会x面向yz这样写),然后2.758000是面向

然后可以测试一下,现在的面向如下图

然后转一个方向,面向变了,与上方推测的一样

通过转向,看出它的面向的范围是0-6.2几,一个圆有360度,所以它的范围应该是0-6.3

然后到这1E数据包根据之前积累的经验,它是可以正常解读的,所以再解析几个它的数据包

然后回到进入游戏之后数据包附近,如下图,分析登陆之后的1E数据包

也不知道它是代表的什么,energy是能量 well是井 guild是工会 war是战争,通过中文的意思感觉很重要,所以1E要重点分析

然后继续找1E

它们三个的翻译

然后看到有很多18开头的数据包,注意现在的场景是已经进入到游戏中了,并不是点击进入游戏按钮到进入游戏中之间触发的数据包了

它也有字符串,经过这么多的分析,可以看出字符串是一个突破口

Pants中文是裤子,

Hat中文是帽子的意思

18开头的数据包可能是用来更新角色相关的数据的,比如外观,然后18开头的数据包也不好解,只能猜测并不能准确解读,如下图尝试性拆分

然后继续找数据包,发现一个30开头的数据包也好大,它也有47,这个47肯定有说法

然后看到这样的一个东西

操作码是830,数据是04 7C 16 0F E7 EE,这样相似网卡的MAC地址

也正是我的网卡MAC,说明这个游戏会偷偷收集我的网卡信息

然后还有1015的心跳包

然后其它的没什么了

下图红框位置15点27分52秒之前是选择角色进入游戏相关所有的数据包

然后分析这一圈之后,带47开头很大的数据包肯定有猫腻,然后现在找几个关键的内容,确定一个大概

首先通过名字搜索,如下图

搜索今晚打老虎

找出了28开头的数据包

名字

然后在它里面有一个,相似之前分析的头像目录 的东西

也就是下图红框的这个东西,下图详情看 43.角色创建功能的数据包初步分析

这种显示不全的数据,是典型的被压缩了,如果被加密了,会看不出是什么,加密之后会变成另外一个东西,肯定不会像现在这样,显示不全,有的正常显示有的不正常显示,这种有的正常显示有的不正常显示是典型的数据压缩的显示效果

然后这个28号数据是肯定与角色有关的,可能是初始化角色信息的数据包,然后接下来再用生命值去搜索,现在的生命值是1819

然后在28开头的数据包里也找到了

翻译

这也就说明,只要把28开头的数据包解出来,就能得到登录角色的基本信息,然后把血量修改,看看修改血量的数据包

未修改之前

修改之后

搜索1531

找到的数据包,是10开头的数据包,这说明10开头的数据包,是用来更新数据的

翻译

然后下方有两个10开头的数据包,然后通过对比推测,29是血量,23现在还不知道,现在把29、23这种数字称为操作码,操作码的意思,如29它就去操作血量,23它就去操作它对应的东西,现在还不知道23是什么,然后推测攻击、蓝量等数据修改肯定也是这样,只是现在不知道它们的操作码是什么

总结:

首先要解读28开头的数据包,从28开头的数据包里得到角色基本信息,然后28开头的数据包被压缩了,然后从而可以猜测带47开头的数据包全部都是被压缩过的数据,然后想要知道怎样解压就要知道它怎样压缩的,也就是游戏中它肯定引入了比如zip的库或者其它压缩库,接下来就要逆向游戏用的什么压缩库。

然后还有1E开头的数据包,通过上方的分析可以看出,它里面包含了很多重要信息,所以把1E数据包解读出来,肯定会有助于之后的分析


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值