wifi数据包解析_802.11数据包分析4:Matlab读取WiFi抓包结果(Pcap2Matlab)

本文介绍了如何利用Matlab的Pcap2Matlab插件读取和分析802.11 WiFi抓包文件。通过安装Pcap2Matlab,配置Wireshark的dll文件,然后设置读取参数和过滤器,可以提取数据包中的关键信息,例如frame.number和wlan等字段。文章还提供了获取字段名的方法,以帮助用户更好地理解wireshark解析的字段。
摘要由CSDN通过智能技术生成

序言

Matlab是常用的数据分析平台之一,本文我们介绍用Matlab来读取802.11的抓包文件(即Pcap)文件,并抽取其中的几个元素。将这些元素提取入Matlab后,我们才可以进一步扩展一些应用,比如说对数据应用一些机器学习算法之类。

Pcap2Matlab安装

首先我们要安装一个插件-Pcap2Matlab,该插件可以让Matlab读取Pcap的内容。有两种安装方法:直接从Github上面下载:Pcap2Matlab

从Matlab的菜单栏→附加功能→获取附加功能→里面搜索Pcap2Matlab,然后安装也可以

安装完成之后,由于这个插件是基于tShake的,所以我们需要在其的目录下补充一些文件才可以使用。补充的文件是为了让tShake可以独立在Pcap2Matlab的文件夹下工作,但是不同版本Wireshark里面的dll文件不同,建议一个简单办法,就是把wireshark下面所有的dll都复制到Pcap2Matlab的文件夹下面,以及tshark.exe。

Remark:Wireshark不建议版本太新。

Pcap2Matlab的使用

首先是在下载Pcap2Matlab的文件下内有一个pcap2matlab_example.m,先运行这个看环境有没有配置正确,运行获得下面的图就是配置成功了

我们可以简单看下这个example程序的前28行

functionpcap2matlab_example()isRead = true;

CAPTURE_FILE = 'gigE_image.pcapng';

%% Set up the capturing/reading parameters: %%VIP: 这里是设置要读取的字段

dissector = {'gvsp.status',...

'gvsp.blockid16',...

'gvsp.format',...

'gvsp.packetid24',...

'gvsp.fieldid',...

'gvsp.fieldcount',...

'gvsp.timestamp',...

'gvsp.pixel.color','gvsp.pixel.occupy','gvsp.pixel.id',...

'gvsp.sizex','gvsp.sizey',...

'gvsp.offsetx','gvsp.offsety',...

'gvsp.paddingx','gvsp.paddingy',...

'gvsp.payloaddata','gvsp.payloadtype'};

capture_filter = 'udp and src port 20202';

read_filter = 'gvsp';

%% Capture/read:

if isRead

% Read:

pcap_result = pcap2matlab(read_filter, dissector, CAPTURE_FILE, [], '-2');

else

% Capture:

pcap_result = pcap2matlab(capture_filter,dissector, 4, 700); %%VIP: 读取已经抓到的pcap文件

end

%--------example程序以下就是分析以及过滤的部分了,上面的内容就已经把Pcap读取完成并保存到Pcap_result了------------

其实简化以下就4行左右

read_file = 'xxxxx.pcap';

wifi_dissector = {'frame.number', .....);

read_filter = 'wlan';

pcap_result = pcap2matlab(read_filter, wifi_dissector, read_file);

这里实际上要设置的就是readfile文件,然后过滤器类型read_filter,这个过滤器类型实际上是tshake -Y的内容,为了读取802.11的数据帧,我们设置成read_filter='wlan',然后最后一个就是wifi_dissector,实际上是参数提取器,这里需要对wireshake解析的字段名有所了解,然后一个个填上去。

wifi_dissector字段名的获取

综上,整个读取pcap的架构已经有了,最后一步比较困难的就是知道属性的名字就行了。笔者花了不少时间探索方法,最终总结了下面这个方式应该是最简单的:第一步,用wireshark打开我们所需要解析的pcap文件,选取一帧数据帧

第二步,鼠标选取某一个具体的属性,比如说选区PHY Type这个属性,选取后该行会被标注

第三步,右键这一行属性,选择作为筛选器应用→选中第四步,此时在上面的筛选属性显示这一行,就会显示我们所选属性对应的dissector名字了第五步,在matlab中设置对应的dissector即可

本文为原创文章,如需转载须注明出处和原文链接。

欢迎大家关注我们的微信公众号:无线技术大讲堂,请搜索公众号(must_wireless)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值