使用WinDump联合wifi精灵抓取手机网络数据包
Posted jlom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用WinDump联合wifi精灵抓取手机网络数据包相关的知识,希望对你有一定的参考价值。
最近因为客户端与服务端http通信出现疑似丢包的情况,而且客户端PC端没问题,而安卓机客户端必现,所以想到了抓包。
最开始是用fiddler代理来抓,但是可能是因为设置还是过滤的问题,安卓机经过fiddler代理的数据始终没有包含我们app的http数据包,只抓到了自带浏览器、以及我们app的sdk的http数据包。至今我还不知道其原因,假如大佬知道了,恳请告诉我一下-。
既然代理可能有过滤的规则,那我直接抓网卡的包,总不至于没有了吧。
说干就干。
Windump
Windump是TCPdump的windows版本,用于抓取经过网卡的数据包
- 安装
1.1. 需要安装其库WinPcap。
1.2. 安装Windump,可在官网下载。 - 使用
2.1. 安装好WinPcap,下载好Windump.exe可执行文件,将Windump.exe放在适当的目录下如C:
2.2. 打开终端,从终端运行Windump.exe
,先用-D
列出所有的网卡接口
C:WinDump.exe -D
幸运的话,你只有一个网卡,否则,可能会有几个网卡,并且无法分辨出它们对应的是哪个网卡,如图所示:
此时需要确定数据包流过的网卡。
为了使手机的数据包经过PC的网卡,需要开启一个热点,手机wifi链接该热点。假如PC本身自带的话,不用Wifi精灵也可以,或者其他的代替品都行。
回到上面的问题,我们要确定:使用哪个网卡?
2.3.1. 打开-网络和Internet设置,查看适配器选项,如win10下:
如上图所示,我有4张网卡,其中第一张是笔记本的无线网卡,第二张是wifi精灵热点的虚拟网卡(等我打开热点,就不是红叉状态),另外两张无视。
请记住网卡接口名字(第三行的Intel(R) Centrino(R) Wireless-N...)
再看看WinDump列出的网卡接口名字,完全对不上是不是?
1.DeviceNPF_{7B6ED36B-30F0-4FDA-842B-545B04D0B690} (Microsoft)
2.DeviceNPF_{8D6A2EE4-5764-4200-973F-B8ECAE16572B} (Realtek PCIe GbE Family Controller)
3.DeviceNPF_{86A7B99D-9B52-4323-B62B-40A5F4ED9FF1} (Microsoft)
4.DeviceNPF_{DE4131E1-2AE0-4538-945C-A53F6129DD78} (Microsoft)
没事,我们可以排除第二个,那是笔记本的有线网卡接口,接下来怎么办呢?看看花括号那串字码,凭感觉注册表里面很多类似的,去注册表里面查查!
打开注册表(Win+R运行regedit)
逐个搜索NPF_{}花括号里面那串字码
好吧,其实物理网卡在注册表HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionNetworkCards下面,可以直接去那里找到对应的网卡接口名
假如你找到这儿,知道了DeviceNPF_{7B6ED36B-30F0-4FDA-842B-545B04D0B690}就是你无线网卡的接口,其实已经够了,因为即使是wifi精灵的虚拟网卡,最终也要流过它。
比较折腾点可以继续搜别的字码,最终可以找到哪个是虚拟网卡的。
接下来就是抓包了,仅仅是为了验证数据包有没有发送接收,使用下面的命令就可以了,如果有兴趣了解它,可去官网看用户手册。
WinDump.exe -i DeviceNPF_{7B6ED36B-30F0-4FDA-842B-545B04D0B690} -s 0 -Xx port 端口号
假如有更美观的参数设置还请看到的大佬告诉我-.
Done.
以上是关于使用WinDump联合wifi精灵抓取手机网络数据包的主要内容,如果未能解决你的问题,请参考以下文章