tcpdump是基於Unix系統的命令行式的數據包嗅探工具
tcpdump 可以監測真機或者模擬器 2g/3g/wifi下數據流動,前提手機必須root過。
fillder也可以檢測客戶端數據包,但是只能檢測wifi下,設置vpn ----ip和端口.具體請參照,fillder抓包真機
問題:使用安卓模擬器開始了usb調試后, 電腦無法檢測出安卓設備所以無法將電腦中的tcpdump拷貝到安卓模擬器的系統路徑中,在電腦端輸入命令adb devices 沒發現任何設備。一直以為應該有辦法可以支持模擬器測試,后來發現了確實不行。因為看到了下面一篇文章 模擬器和真機的區別。
Android模擬器和真機有什么區別呢?主要體現在一下九點:
1、Android模擬器不支持呼叫和接聽實際來電,但可以通過控制台模擬電話呼叫(呼入和呼出);
2、Android模擬器不支持USB連接。
3、Android模擬器不支持相機/視頻捕捉。
4、Android模擬器不支持音頻輸入(捕捉),但支持輸出(重放)。
5、Android模擬器不支持擴展耳機。
6、Android模擬器不能確定連接狀態。
7、Android模擬器不能確定電池電量水平和充電狀態。
8、Android模擬器不能確定SD卡的插入/彈出。
9、Android模擬器不支持藍牙。
下載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 打開后,包的數據卻為空,很出奇!!!