项目背景:德国客户想更换停车场厂的设备,但是系统提供商也是系统集成商不同意,因为他们也售卖这种设备。在没有的任何软件测试和通信协议的前提下,客户期望我公司的产品能接入系统提供商的软件系统。正常情况下这相当于破解一套通信协议,工作量和项目风险较高,这种项目通常直接pass。做为博主做好了没什么卵用,做失败了是会砸招牌的,属于怎么算怎么不划算的活。
但博主有多年系统对接经验,对物联网通信协议有一定理解,博主同时自认为自己的知识储备比较广,且越是比较有挑战的项目越是吸引博主的兴趣。博主想体验一下破解一个简单的协议的过程,毕竟在没有任何信息的前提下破解一个通信协议和谍战片里破解敌方电报类似,当然这个可能简单多了。但是方法都是差不多,通过窃取通信数据、常规分析、猜想、睁眼猜、闭眼猜、无脑猜、根据经验猜想、根据你所有的已有的知识猜。。。。。没错,就是想方设法的猜。
-----------------------------------------------------------------------------------这是一条废话分割线------------------------------------------------------------------
一、截取通信数据:在链路上接入交换机,设置端口镜像接到电脑使用WireShark抓取通信数据
二、邮件收到客户在德国现场抓取到数据一共523M,必须升级到最新WireShark,否者这么大的数据老版软件会死掉
三、初步分析数据
数据如下,非常多而且杂乱,TCP、RTMP、 ARP眼前杂草一片的感觉。PS:客户不知道IP也不知道端口,更不知道是TCP还是UDP,总之就是我是使用者我不懂。
这么一片凌乱肯定不行,这里面包含了所有上网的数据,比如你QQ的、网页的各种软件的,根本不知道那些数据才是和设备通信的数据。这时候wiresharp有个分析功能,我猜想通过这个功能应该能发现点什么
结果如下。可以看出有很多设备往一个10.37.0.1的IP地址发送数据,比较有规律都是它先发出请求然后目标回答,所以猜想这个地址对应的是客户服务器。后面我们具体看这部分数据。
然后通过编写过滤规则 找出需要的数据。
博主这里的过滤规则是 udp && frame[55:1]==08,因为博主观察发现55为08是某一条功能的命令数据,且很有规律。
可以发现和第一张图比,最后设置过滤规则的图数据清晰多了,只有10.37.0.1和10.37.2.22两个在相互通信,确协议都是UDP,端口也是和数据长度都固件。基本肯定这就是要找的数据。再此之前都不知道是用http还是TCP什么通信,500M的数据都是文本存储,基本金庸的所有小说转成电子书就也才这么大吧,所以必须过滤器,博主其实也是编写了很多过滤公式后才发现这个能用的。基本就是TCP,HTTP 这些都试过一扁。所以还是靠猜。
下一篇具体解析详细的功能
https://blog.csdn.net/oWuMingXiaoBei1/article/details/100583575