1、 使用環境
PC
系統:Ubuntu 16.04
使用軟件:WireShark
手機
系統:android 模擬器(android 工程機)
軟件:busybox
其他工具: adb,nc 命令
2、實現思路
要實現實時監控兩種思路:一種是使用代理在代理過程中獲取數據內容;一種是用 tcpdump 抓包將數據發往 PC 端。
本文介紹的是第二種方式:在手機中使用 tcpdump 命令抓取數據,將數據轉發出去,PC 端接收轉發到的數據,將數據傳給 WireShark。
3、 實現過程
按照上面的思路分為一下四個過程:
<1> 手機端抓包
使用 tcpdump 獲取網絡包
<2> 手機端轉發數據
使用 nc 將數據發往指定端口
<3> 將 android 中數據發往 PC
使用 adb 命令轉發數據
<4> PC 接收數據
使用 nc 獲取數據
<5> PC 分析數據
使用 WireShark 分析數據
手機
# 使用 tcpdump 抓包,並將結果輸出到終端,再通過管道和 nc 監聽 12345 端口,等待連接 tcpdump -n -s 0 -w - | busybox nc -l -p 12345
PC
# 使用 adb 轉發 socket 連接 adb forward tcp:12345 tcp:12345 # nc 連接 PC 12345 端口,通過上面的 adb forward 命令即連接上手機的 12345 端口 nc 127.0.0.1 12345 | wireshark -k -S -i -