[轉] Android實時抓包分析 : 善用adb調試橋


Android實時抓包分析 : 善用adb調試橋
 

談到android網絡抓包,很多人都能想到牛逼轟轟的神器tcpdump。方法就是在android機器上面安裝tcpdump,然后通過-w參數把抓包記錄到本地,再把抓到的.cap文件導到pc上面用wireshark來分析。這里步驟非常多,在和后台聯調的時候,這個效率是非常低的。

能不能在android上面啟動抓包,然后直接在pc端看到實時抓包結果?

有了adb調試橋,我們就可以做到這么便捷。

一、准備工具:

1、android 系統root 2、android上安裝tcpdump 3、android上安裝netcat,可以直接使用busybox的版本 4、pc的wireshark的安裝目錄下需要有nc客戶端 5、把android手機和pc通過usb調試連接上

二、命令:

1、android上先執行:

/data/tcpdump-arm -n -s 0 -w - | nc -l -p 11234

 * 11234是示例,端口可以自己定

2、pc上啟動adb forward:

adb forward tcp:11234 tcp:11234 && nc64 127.0.0.1 11234 | wireshark -k -S -i -

 * 這里的11234要和前面啟用11234要保持一致

3、如果抓包成功,那么pc端的wireshark是自動啟動的,並且可以看到網絡包

三、實現原理:

關鍵的邏輯在adb forward這個命令,這個命令實現了端口映射的功能:

Forwarding Ports
You can use the forward command to set up arbitrary port forwarding — forwarding of requests on a specific host port to a different port on an emulator/device instance. Here's how you would set up forwarding of host port 6100 to emulator/device port 7100:

adb forward tcp:6100 tcp:7100
You can also use adb to set up forwarding to named abstract UNIX domain sockets, as illustrated here:

adb forward tcp:6100 local:logd 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM