关闭

基于tcp协议使用wireshark工具

标签: tcp工具网络协议数据结构嵌入式windows
4693人阅读 评论(0) 收藏 举报
分类:

Wireshark是一款功能十分强大的网络协议分析工具。前几日由于调试设备与客户端的通讯是否正常,学习了一下,现记录下来。

调试环境:wireshark(Version 1.6.1)+嵌入式linux(2.6.10)+基于windows(windows7)客户端

扑捉事件:客户端向嵌入式设备发送命令,看传输过程是否有误

抓包标志:命令号0x111148

 

步骤一:开启wireshark软件,选择Capture->Interfaces…

步骤二:选择网卡

上图中显示了3个网卡,其中第一个是我们物理主机上的以太网卡,另外两个是虚拟机网卡。右边有三个选项:

Options选项中可以设置过滤规则,保存过滤文件等

Details选项主要是一些网卡及分析数据

我们选择第一个网卡,点击Start按钮,开始抓包

这时,因为我们没有设置过滤规则,只要是通过网卡的数据包,无论是udp还是tcp都会被扑捉,这样极大影响了我们获取有用的信息。

步骤三:设置过滤规则

在Filter框中输入:tcp[32:4]== 00:11:11:48

0x111148是我们的命令号,可以作为定位的目标,当然这里可以选取其他只要你自己能知道的标志都行,但是一定要注意该标志在一个tcp包中尽量是唯一的。

tcp[32:4]表示截取tcp包第32字节开始的连续4字节,为什么是32字节?tcp的头有20字节,而我们的命令号(数据)位于除去头部偏移12的位置上,加上头部的20字节正好为32。

这里的[32:4]并不是一成不变的,这要看你程序中具体数据结构的设计。

步骤四:发送命令,wireshark自动抓包

上图是发送命令后,wireshark抓到的tcp数据包。上面包含了源地址、目的地址以及网络协议等信息

步骤五:分析TCP包数据部分

如上图所示,wireshark非常人性化的将各网络层的数据包层层剥开了,从上到下依次是:帧(数据链路层)、网络层(IP数据报)、传输层(TCP)以及用户数据。

我们关心的是Data里面的东西,当你点击Data,会发现下面的十六进制数据,并且用深色来表明数据Data段的数据范围:

步骤六:进一步分析数据

我们的命令号0x111148在哪呢?被蓝颜色标注的部分就是我们用户的数据,我们的命令号就包括在其中,因此根据具体的数据结构可知某一字段在数据包中的偏移。我们的命令号0x111148上文已说明,在偏移12字节处,连续4个字节,如下被红线框住部分:

 

至此,一个简单的分析过程就结束了。接下来就是你自己的事情了。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8813次
    • 积分:182
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档