内容参考于:易道云信息技术研究院VIP课
上一个内容:接收数据的初步逆向分析
通过上一个内容,找到了数据包出现的一个很重要的位置,只要hook之后就能很好的得到这个数据了
然后来到明文数据的位置,把数据包复制出来:
分析数据包:
02 06 00 4D 61 73 74 65 72 14 00 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 30 30 B5
02 应该是一个数据头
06 00 名字长度
4D 61 73 74 65 72 名字
14 00 说话内容的长度
31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 30 30 说话的内容
然后再发一个数据,验证一下上面分析的结构
然后数据包
分析结构:
02 06 00 4D 61 73 74 65 72 12 00 31 32 33 34 35 36 37 38 39 31 32 33 34 35 36 37 38 39 30 30
02 数据头,私聊频道
06 00 发送者的名字长度,由于我们的电脑内存都是小端序存储,正确的应该是 00 06
4D 61 73 74 65 72 发送者的名字
12 00 是说话内容的长度,由于我们的电脑内存都是小端序存储,正确的应该是 00 12
31 32 33 34 35 36 37 38 39 31 32 33 34 35 36 37 38 39 说话的内容
然后在帮会里说一次话
然后数据包:
数据分析:
05 06 00 4D 61 73 74 65 72 0A 00 31 32 33 34 35 36 37 38 39 30
05 数据头,帮会频道
06 00 发送聊天数据的角色名字
4D 61 73 74 65 72 角色名字
0A 00 聊天消息的长度
31 32 33 34 35 36 37 38 39 30 聊天消息
之前分析的发送聊天数据时,分析过,05是帮会频道
详情看 解读聊天数据包并且利用Net发送 这里
然后接下来再次私聊一句话,然后再拦截一下数据包,把头部改成1,看看会不会在公共频道
然后现在是02
改成01,然后运行发送它异常了
然后查看发送公共频道的数据包结构是怎样的
然后发现公共频道的数据包结构与私聊与帮会的结构不一样
这个公共频道,只有两个角色离着很近才能收到,所以公共频道之所以结构不一样是因为它要找出附近玩家,然后公共频道的数据包里就会有附近玩家的一个值,一个编号之类的值