首先所有是数据是55 A7开头,所以55AA为帧头,第3位是不断变化的,而且一种数据(指的是看起来长度一样,绝大部分数据相同,似乎是一种控制命令)这个地方都不同。然后设备分组ID 1,设备ID为1,这个观察用户操作软件的视频发现设备界面上有这个参数猜的,PS:重点,前期主要是隔离出数据不变的位置,就是找出特征位。之后再根据需要找某些细微变化的数据位。
通过多包数据交叉对比,大胆猜想这个是数据校验,博主第一次遇到数据检验在开头的,通常数据校验在最末尾。
眼尖的博主看了几天后突然发现校验算法了就是后面的数据和即:0x10=16=0+0+0+0+0+1+1+1+0+4+7+1+0+1
暂时这样认为,因为有太多0,不确定求和的范围,但是基本肯定校验算法就是数据求和。
把数据从Wireshark里copy到excel(方法是复制粘贴,数据分列,按空格分割。。。。)然后按列显示,方便交叉对比多条命令
如下图:多条数据交叉对比,数据相同的用相同的颜色标记。通过交叉对比得出的结论,这里省略过程只粗略说明当时分析的情景:
表格28行-41行完全相同,根据经验转成文字,发现是“E:\T\PMSG.Nmg”,这确定是文件路径名称了。
表格12行26行:数据依此增加,可以猜想这个是文件的分包序号,这个根据经验一般文件都会分隔成多部分分开传输。
但为什么12行和26行两个地方都一样这个未知,没必要冗余。通过表格数据也可看出此协议很不规范,即传图片 的命令和其他控制命令相互间格式有很大差别。
表格6、7行3条命令依次为0300 0300 0275,猜想为数据长度(表格第A列,为什么安排了1,2,3,4...递增,就是方便对数据长度进行统计),因为分包传输基本前面的长度一致,最末尾一包减少。
同时15/16行为7508,7508,7508,然后第7行6发现0x0300+0x0300+0x0275==0x0875
然后可以得出结论,该协议采用小端模式 即数据低位在前高位在后。0875为文件长度,0300为包数据长度
表格24行为数据分包总包数。
表格41行 所有都是00,未知
最后通过分析得出文件为BMP图片,导出其文件拼接格式,生成代码
后经过编写测试代码,能成功解析wireshark里面是数据,并生成一张内容清晰的图片。
目前虽然还有部分数据尚不清楚他的功能,但是博主知道的文件传输 文字传输,电源控制,和数据长度等几个关键数据,加上目前客户提供的服务器软件的试用版本,相信该项目大部分基本功能是能完成的,下图客户软件架构图