標籤:app macbook tcp wireshark 捕獲
Mac OS X 下捕獲App區域網路通訊包一.抓包模式
因為工作關係,經常要分析App wifi通訊協議。我的開發電腦是Mac Book.
大體有如下幾種模式:
+ App與伺服器進行http通訊,這種情況下Http調試神器Charles 就派上用場。(這個參見本人其它博文)
+ App 與智慧型裝置進行Wifi裝置,一般是TCP包居多,往往不需要聯入互連網,只是局域通訊。它需要用抓包軟體Wireshark.
本文就是這種區域網路Tcp模式,這種模式下無法使用Charles代理器模式,直接在電腦上只能抓自身的wifi包,無法抓到手機與智慧型裝置之間的通訊。
後來綜合找到一種可行模式,即Mac OS X開啟互連網共用充當一個路由器。然後手機和智慧型裝置均接這個虛擬路由器進行通訊,在Mac OS X 運行Wireshark 來捕獲所有經過這個虛擬路由器的包。
二.開啟Mac OS X 互連網共用
在英文版也稱為Air port 共用。
它需要幾個條件:
1. 乙太網路需接入互連網,通常就是用網線接到自家的真正的路由器上,即使通訊無需互連網,也要如此,否則無法調出互連網共用模式。
- 智慧型裝置能使用路由器通訊(一般這個是標準功能)
開啟方法如下:
開啟系統喜好設定–>共用
在互連網共用中,作如下設定
1. 選擇乙太網路作路由器WAN口聯結。
2. 選擇“Wi-Fi”共用給其它裝置
3. 點擊”Wifi 選項”設定這個虛擬路由器的熱點名,密碼
4. 點擊”互連網共用“開啟虛擬路由器
啟動後,在左上方的Wifi 標誌會出現一個小箭頭,表示進入wifi共用模式
三.安裝wireshark
wireshark 是基於Linux X11圖形介面的強大網路工具,因此天然是支援Linux.隨著X11 被移植到windows和Mac OS X。WireShark也支援多個作業系統。
Mac OS X 10.10 安裝X11應用程式XQuartz
蘋果最早在10.3 加入X11支援庫,但是在10.10 又移走了對X11的支援,因此開發人員必須手工先安裝x11支援庫 XQuartz .
首先下載
http://xquartz.macosforge.org/downloads/SL/XQuartz-2.7.7.dmg
運行dmg安裝,但很奇怪沒有在應用程式欄出現表徵圖。重啟機器。
但它是安裝在 /Applications/Utilities/XQuartz.app 之下,因此你可以手工開啟這個應用程式,它會出現一個終端視窗。
安裝WireShark
這裡 https://www.wireshark.org/download.html
下載mac版安裝
在XQuartz終端下執行即可執行
sudo wireshark
注意這裡的sudo是必須的,否則沒有許可權使用wifi的裝置結點。
這是運行介面。
注意在Mac Book 下,實際的wifi裝置結點是 en1.只有捕獲這個網卡的包,才是手機和智慧型裝置之間的包。
開始抓包吧!
這樣當你的手機操作時,這時能就看到它的通訊包了!
四.後記
本架構也能捕獲App移動互連網http通訊包。但是這一架構過於複雜,需要乙太網路,wifi,以及WireShark 的介面過於複雜。因此用App作http通訊時,抓包還是用Charles 簡單好用(只需wifi即可)
windows7 也能通過虛擬wifi功能實現同樣機制,具體參見
http://www.cnblogs.com/94YY/archive/2012/03/03/2378865.html
Mac OS X 下捕獲App區域網路通訊包