tcpdump是基于Unix系统的命令行式的数据包嗅探工具
tcpdump 可以监测真机或者模拟器 2g/3g/wifi下数据流动,前提手机必须root过。
问题:使用安卓模拟器开始了usb调试后, 电脑无法检测出安卓设备所以无法将电脑中的tcpdump拷贝到安卓模拟器的系统路径中,在电脑端输入命令adb devices 没发现任何设备。一直以为应该有办法可以支持模拟器测试,后来发现了确实不行。因为看到了下面一篇文章 模拟器和真机的区别。
下载tcpudmp,http://www.strazzere.com/android/tcpdump
下载Wireshark,http://dlsw.baidu.com/sw-search-sp/soft/01/15788/Wireshark-win32-1.11.2.1339076454.exe
前提必须手机root,而且已经开启usb调试了。注意:真机和模拟器通过tcpdump 抓包可能略为不同,本机为抓包真机
如果你操作过程中出现error: device offline错误,网上千奇百怪的解决答案,有的是输入 adb kill-server 等命令后就好了,或者安装正确驱动(小米手机好出这问题),而我试过了很多解决办法都不能解决。最后通过 下载最新的adb(sdk),成功打开设备。
下面的操作命令都在电脑dos中输入,路径在 C:\Users\mikple\Downloads\adt-bundle-windows-x86_64-20131030\sdk\platform-tools>
1. 先给手机刷root权限,执行命令:
adb root
adb remount
ok后:把tcpdump放到c盘根目录下:C:\
2. 执行命令:
adb push c:/tcpdump /data/local/tcpdump
(这个命令是把tcpdump拷到手机中去 ,但是我去手机相应文件夹却找不到tcpdump这个路径,可能隐藏了)
3. adb shell chmod 6755 /data/local/tcpdump
是给tcp分配权限
4. adb shell
/data/local/tcpdump -p -vv -s 0 -w /sdcard/capture.pcap --这个貌似抓数据为空
修改成
tcpdump -i any -p -s 0 -w /sdcard/capture8.pcap
命令参数:
# "-i any": listen on any network interface
# "-p": disable promiscuous mode (doesn't work anyway)
# "-s 0": capture the entire packet
# "-w": write packets to a file (rather than printing to stdout)
... do whatever you want to capture, then ^C to stop it ...
输入 这个命令就等于启动了抓包工具并将抓包数据放到capture.pcap中去
5. 要停止抓包就Ctrl+C,(去手机的文件路径却找不到capture.pcap,莫非隐藏了)
6.将抓包数据拷贝到c盘 adb pull /sdcard/capture.pcap c:/
7. sdcard的capture.pcap复制出来到电脑上用wireshark打开即可
以后抓包,只i要城府 4,5,6,7 就行了
用wireshark 打开后,包的数据却为空,很出奇!!!