从事WiFi嵌入式软件开发的同学,802.11协议层抓包分析是一个需要熟练掌握的一个技能,需要通过分析WiFi底层802.11协议层的数据包来定位问题。同时从学习802.11协议的角度而言,最有效的学习方法就是通过抓包来学习,从抓到的数据包中,可以验证之前理论学习部分的知识,通过对数据包的理解,不仅可以加深对802.11协议的理解,还能提高自己在实际使用中问题分析、解决能力。

由于要抓到802.11协议层的数据包需要无线网络进入混杂模式,在不同的操作系统下需要不同的软硬件配合才能实现,本文分3部分依次介绍:

  1. Windows下Microsoft Network Monitor
  2. Windows下Omnipeek
  3. Ubuntu下Wireshark
    在不同操作系统下实现802.11数据包捕获分析。

Microsoft Network Monitor

嵌入式开发工程师开发环境通用使用Windows,由于Windows下很多专业的抓包工具都需要特定的无线网卡和驱动支持才可实现混杂模式802.11数据捕获。在某些场景下,这些专业的抓包工具不一定会随身携带。所以先介绍一个Windows下Microsoft官方提供的轻量型的抓包工具Microsoft Network Monitor。
Microsoft Network Monitor是Microsoft官方提供的一款免费网络协议数据分析工具,不仅可以抓包,而且可以基于抓包结果做一些简单的数据分析。Microsoft Network Monitor当前最新版本为3.4,同时支持32位和64位系统,可在Microsoft官方免费下载,下载地址为:https://www.microsoft.com/en-us/download/details.aspx?id=4865。我使用的系统是Win10_64位系统,电脑自带的网卡驱动不支持混杂模式,测试发现外接了360USBWiFi可实现混杂模式。

软件安装过程较简单,没有需要特别注意的地方。需要注意的是,安装完成后需要重新启动一下电脑,否则软件可能无法正确显示当前网络列表。

以管理员身份运行Microsoft Network Monitor 3.4,在“Select Networks”中会正确显示当前全部网卡,可以通过Friendly Name和Description找到我们要抓包的网卡。

一、普通模式

Microsoft Network Monitor 默认是“Local Mode”,该模式下软件只能捕获当前选中的网卡收发的数据,是无法捕获到没有经过该网卡的数据的。

  • 选中网卡后,点击“New Capture”,在弹出的页面中选中“Start”即可开始抓包。
  • 可点击“Pause”暂停当前抓包;点击“Stop”停止当前抓包,“Stop”之后再次“Start”将清除当前已捕获到的数据。
  • 在“Frame Summary”框内可发现软件支持捕获到WiFi管理帧、TCP、UDP等数据包,同时软件还可显示“Process Name”、“Source”、“Destination”等网络信息。
  • 分析以上数据,我们可以发现,当前抓到的数据都是当前网卡收发的数据,即使802.11管理帧,也是当前网卡发给路由器的。

二、混杂模式

我们在WiFi开发过程中定位问题通常需要通过无线网卡,捕获路由器与其他WiFi设备之间通讯的数据,普通模式下软件并没有捕获到。Microsoft Network Monitor支持无线网卡进入“Monitor Mode”,该模式即为混杂模式,此时可捕获路由器与其他WiFi设备之间的通讯数据包。

  • 点击“Capture Settings”进入设置页面,可以看到当前选中的无线网卡- 双击需要设置“Monitor Mode”的无线网卡,点击“Scanning Options”
  • 在“WiFi Scanning Options”页面中,选中“Switch to Monitor Mode”,然后继续选择信道扫描模式,软件支持2种信道切换模式,固定信道和信道扫描的模式。在信道扫描模式下,每一个信道逗留一会,按照时间片顺序,一个个信道开始抓包,这里需要根据实际需要设置。
  • 设置完成后,点击“Apply”,并且需要保持该页面为开启状态不能关闭,否则无线网卡自动退出“Monitor Mode”。
  • 返回主界面,再次点击“Start”开始“Monitor Mode”下捕获
  • 从“Frame Summary”可以看到捕获到了各种802.11管理帧,同时捕获到了很多“Source”和“Destination”不一样的数据包。
  • 选择需要具体分析的数据包,可在“Frame Details”和“Hex Details”中查看详细数据包数据
  • 点击“File”下面选择“Save As”,可将当前捕获数据保存为“.cap”,可供“wireshark”、“Omnipeek”等工具分析。

三、总结

从实际使用中发现,Microsoft Network Monitor功能无法与“wireshark”、“Omnipeek”等专业抓包软件相媲美,但是能满足日常基本的802.11数据包捕获、802.11协议学习。上手快,受限也较少,更多功能也需要在使用在不断发掘。

802.11抓包软件对比之Microsoft Network Monitor的更多相关文章

  1. PCAP文件格式分析(做抓包软件之必备)

    转载源:http://blog.csdn.net/anzijin/article/details/2008333 http://www.ebnd.cn/2009/09/07/file-format-a ...

  2. C#版的抓包软件

    C#版的抓包软件   [创建时间:2015-09-10 22:37:04] NetAnalyzer下载地址 不好意思啊,NetAnalyzer停更有点长了,今天继续填坑^&^ NetAnaly ...

  3. 第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解

    第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解 封装模块 #!/usr/bin/env python # -*- coding: utf- ...

  4. 分享三个USB抓包软件---Bus Hound,USBlyzer 和-USBTrace(转)

    源:分享三个USB抓包软件---Bus Hound,USBlyzer 和-USBTrace Bus Hound官方下载地址:http://perisoft.net/bushound/Bus Hound ...

  5. 九 web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解

    封装模块 #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib from urllib import request import j ...

  6. CatchPacket网络抓包软件

    CatchPacket网络抓包软件  qq  22945088431.技术特点:基于WinPcap库,c# winform2.实现获取机器所有网卡,可任意选择监听3.可以捕获常见网络协议arp dns ...

  7. 抓包软件PowerSniff开发计划

    目前抓包的工具不顺手: (1)smartsniff, minisniffer不支持插件 (2)wireshark,omnipeek插件过于复杂,还有不是要装驱动就是admin权限 打算重写一个,第一个 ...

  8. 手机抓包软件Charles安装使用实例 (流媒体播放测试可去下载的时刻检测)

    手机抓包软件Charles安装使用实例   浏览:5258 发布日期:2015/07/17 分类:技术分享 关键字: 手机抓包软件 Charles 大胡子的博客Charles安装使用实例 Charle ...

  9. 如何在Windows系统上用抓包软件Wireshark截获iPhone等网络通讯数据

    http://www.jb51.net/os/windows/189090.html 今天给大家介绍一种如何在Windows操作系统上使用著名的抓包工具软件Wireshark来截获iPhone.iPa ...

随机推荐

  1. js 重排和重绘

    1.什么是重排和重绘 浏览器下载完页面中的所有组件--HTML标记.JavaScript.CSS.图片之后会解析生成两个内部数据结构--DOM树和渲染树. DOM树表示页面结构,渲染树表示DOM节点如 ...

  2. Docker composer搭建Spring Cloud Alibaba 运行环境(二)

    " Spring Cloud Alibaba要用到的组件很多,注册中心nacos, 限流sentinel, 数据库,网关等等.由于用到的组件相对较多,部署会很繁琐,最关键的是没有资源服务器, ...

  3. CodeForces 1182E Product Oriented Recurrence

    题意 给定五个整数 \(n,f_1,f_2,f_3,c\),其中数列 \(f\) 满足以下递推式: \[f_x=c^{2x-6}f_{x-1}f_{x-2}f_{x-3} \] 求 \(f_n\). ...

  4. MySQL全面瓦解5:数据操作-DML

    说明 DML(Data Manipulation Language)数据操作语言,是指对数据库进行增删改的操作指令,主要有INSERT.UPDATE.DELETE三种,代表插入.更新与删除,这是学习M ...

  5. .netcore简单集成swagger

    为什么要集成Swagger 在前后端分离比较普遍的当下,当后端开发完接口后,还需把接口的信息.参数说明.返回参数等信息编写好提供给调用者.对于对外开放接口需提供说明文档是必不可少的.但是对于内部开发, ...

  6. javascript多物体运动案例:多物体淡入淡出

    javascript多物体运动案例:多物体淡入淡出 任务描述: 补充代码,当鼠标移入红色区域时,该区域透明度逐渐增加至不透明;当鼠标移出该红色区域时,该区域透明度逐渐恢复至初始程度. 效果图: < ...

  7. nginx&http 第二章 ngx 事件event初始化 ngx_event_process_init

    |----------(ngx_worker_process_cycle->ngx_worker_process_init) |--------->for(;;) {ngx_process ...

  8. 基于FFmpeg的Dxva2硬解码及Direct3D显示(三)

    初始化Direct3D 目录 初始化Direct3D 创建Direct3D物理设备对象实例 创建Direct3D渲染设备实例 创建Direct3D视频解码服务 Direct3D渲染可以通过Surfac ...

  9. Ubuntu18.04上安装CUDA_10.1(nvidia-driver)和cuDNN_7.6.5

    本文是在Ubuntu18.04.5服务器上安装CUDA_10.1(nvidia-driver455)和cuDNN_7.6.5, Ubuntu 18.04.5 CUDA_10.1 (nvidia-dri ...

  10. 二:Redis:(REmote DIctionary Server)远程字典服务器

    Redis是完全开源免费的,用C语言编写的,遵循BSD协议,是一个高性能的(key-value)分布式内存数据库,基于内存运行,并支持持久化的NOSQL数据库,是当前最热门的NOSQL数据库之一,也被 ...