一般的无线网卡不支持监听模式,即使有支持监听模式的无线网卡,但大部分基于Windows的无线网卡驱动也不允许你切换到这个模式,所以需要额外的工作来完成。
一. 抓包方法
我使用了下面两种方法执行:
1. 使用Fiddler软件
这个软件使用比较简单,直接在电脑上安装,并连接要监测的手机,最后最抓到的数据进行分析即可。
缺点:只能分析HTTP数据包
2. 使用tcpdump和wireshark工具结合使用
Tcpdump 是一个可以在手机内部抓包的程序,通过将tcpdump抓到的手机数据包传送到电脑上,然后通过wireshark对数据包进行分析。
具体的执行步骤如下:
① 获取手机的root权限
我的手机是 vivoY22il,使用过 root大师、百度一键root、360超级root等工具,root权限都没有获取成功,最后通过 腾讯应用宝PC版成功获得了root权限。
② 将tcpdump文件传送到手机的底层
在DOS界面上输入命令:
Adb pushD:\tcpdump /data/local/tmp
Chmod 777/data/local/tmp/tcpdump (改变tcpdump文件的权限)
③ 使用tcpdump在手机底层抓包
/data/local/tcpdump –i any –p –s 0 –w/sdcard/netCapture.pcap
(注1:netCapture.pcap是存储抓到的数据包文件)
(注2:tcpdump [-aAdDeflLnNOpqRStuUvxX] [-c count] [ -Cfile_size ]
[ -E algo:secret ] [ -F file ] [ -i interface ] [ -M secret ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ] [ -y datalinktype ] [ -Z user ]
[ expression ]
其中-c表示监控的请求个数;-C表示存储文件的最大大小;
-i表示监控的类型;-s表示抓取的网络请求返回的大小,0表示抓取整个网络包;-w表示抓取的包保存的文件路径,此时不会在标准输出打印。并且可以添加port参数表示端口。)
④ 将抓包的数据包传送到PC机上
Adb pull /sdcard/netCapture.pcap D:\
⑤ 用PC上的wireshark 分析数据包即可
二. 遇到的问题
看似简单的操作,其实遇到了很多的问题,这里的问题主要是上述第二个操作方法中遇到的:
1. 问题:在DOS界面上使用adb 命令,提示:显示‘adb’不是内部或外部命令,也不是可运行的程序或批处理文件
解决办法:下载了一个adb.zip,根据文件中的安装办法进行安装。
原因:因为我的电脑上没有adb可执行程序,所以无法执行adb 的相关命令,下载adb程序,并将文件放到系统的查找路径中即可。
2. 问题:很多文献提示,需要执行 adb root ,这样做的目的应该是 成为root用户,获得对底层进行操作的权限。但该命令的运行结果是:adbd cannot run as root in production builds
解决办法:输入: adb shell
Su
3. 在问题2的基础上继续操作, 执行 adb push D:\tcpdump/data/locap/tcp, 显示: device not found
我运行adb devices 是可以找到设备的,但依然出现上面的操作,这个问题的原因没有找到
解决办法: 进入DOS命令后,不获取root 权限,直接执行该命令,然后就成功了。