问道服务端逆向开发(2) - 协议简要分析
首页 > 逆向工程 > 最佳逆向实践    作者:StanWind   2016年10月8日 5:39 星期六   热度:6545°   百度已收录  
时间:2016-10-8 5:39   热度:6545° 

抓包久不过多赘述了

我使用的是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”原创,转载请保留文章出处。

返回顶部    首页    手机版本    后花园  
版权所有:Make it Better    站长: StanWind    赣ICP备17014296号