问道服务端逆向开发(2) - 协议简要分析
抓包久不过多赘述了
我使用的是SmartSniffer
记得安装winpcap
过滤代码
include:both:tcp:8001 include:both:tcp:9010-9030
8001是Login的端口 一直到选择线路通信都是在这
9010-9030都可能是各个线路的端口
视具体情况过滤
问道包的结构
[Flag 4Byte][Time 4Byte ][Lenth 2Byte][Command 2Byte][Data]
Flag - 四字节固定包头 4D 5A 00 00
Time - 四字节时间 单位ms 这个时间不是普通的时间戳 是服务端发送过来的一个自定义时间
Length - 两字节长度 从包头开始到数据尾部的长度
Command - 两字节命令号 用来区分功能
Data - 数据块
数据块的序列化根据不同的Command来区分
一般有几种情况(可能不准确)
固定顺序的序列化 里面就是纯数据 int就是4 short就是2 这样的 固定顺序来序列化和反序列化
带数据标识的数据序列化
[DataEnum 2Byte][DataType 1Byte][Data]
DataEnum - 像命令号一样一一对应着不同的数据
DataType - 目前知道的 01,07代表一位 02 两位 03 四位 04 字符串
有了这些之后就可以通过command筛选包、对比分析法得出数据标志类型、本地调试包等等方法来慢慢解析了
本文作者:StanWind
文章标题: 问道服务端逆向开发(2) - 协议简要分析
本文地址:https://www.stanwind.com/post/29
版权声明:若无注明,本文皆为“Make it Better”原创,转载请保留文章出处。
本文地址:https://www.stanwind.com/post/29
版权声明:若无注明,本文皆为“Make it Better”原创,转载请保留文章出处。