2012-06-20 45 views
77

我試圖監視從應用程序到我的服務器的調用,就像Firebug一樣。 我找不到在iOS模擬器或xCode中看到的方法。如何監控從iOS模擬器進行的網絡調用

有沒有辦法做到這一點,而不嗅探所有的流量? 如果不是,你會建議什麼工具?

回答

64

就個人而言,我用Charles的那種東西。
啓用時,它會監視每一個網絡請求,顯示擴展的請求的詳細信息,包括SSL和各種請求/效應初探格式,如JSON等支持......

您還可以配置它嗅出僅請求特定的服務器,而不是整個流量。

它是商業軟件,但有一個試驗,恕我直言,它絕對是一個偉大的工具。

+1

真的很容易使用和配置,正是我想要的,謝謝! –

+1

當您的服務器受TLS保護時,它不會輕鬆工作,它應該是。 – carbocation

+0

我嘗試過查爾斯,但我無法很好地監控傳出流量。例如,我不會將POST請求的格式更改爲JSON –

24
+3

謝謝,這聽起來不錯,但我無法找到它的位置(對於成爲這樣的初學者感到抱歉,但兩天前我得到了第一個mac) 。 –

+11

謝謝!我會玩弄這個,但首先看看我找不到一種方法來查看返回和返回的內容(請求頭+內容和Firebug中的響應或Chrome/Safari上的相應內容)。也許這是某個地方,我會繼續挖掘。 –

+0

你們對使用這種儀器的方法有何建議? –

23

如果您只想查看HTTP/HTTPS流量,則可以使用中間人代理,就像其他答案所建議的那樣。 Burp Suite很不錯。儘管配置可能很痛苦。我不確定你會如何說服模擬器與之交談。您可能必須將本地Mac上的代理設置爲代理服務器的實例才能攔截,因爲模擬器將利用本地Mac環境。

數據包嗅探的最佳解決方案(雖然它只適用於實際 iOS設備,而不是模擬器)我發現是使用rvictlThis blog post有一個很好的寫法。基本上你:

rvictl -s <iphone-uid-from-xcode-organizer> 

那你聞聞它使用Wireshark(或您最喜愛的工具)創建的接口,當你完成關閉與接口:

rvictl -x <iphone-uid-from-xcode-organizer> 

這是很好因爲如果你想用數據包嗅探模擬器,你不得不通過流量來訪問本地Mac,但rvictl會創建一個虛擬接口,向您顯示來自已插入USB端口的iOS設備的流量。

+1

適用於Burp Suite,無需配置它:https://www.engadget。com/2011/02/21/how-to-inspect-ioss-http-traffic-without-spend-a-dime /花費少於10分鐘 – Vladimir

3

如果您有電纜連接和Mac,再有就是簡單而有效的方法:

  1. 安裝免費的Wireshark,確保它可以捕捉設備(和你需要的每一臺計算機後,要做到這一點重新啓動):

    須藤搭配chmod 644的/ dev/BPF *

  2. 現在帶wifi分享您的網絡。系統首選項>共享> Internet共享。檢查你是否「分享你的連接:以太網」並使用:Wi-Fi。您可能還想配置一些wifi安全性,它不會打擾您的數據監控。

  3. 將手機連接到新創建的網絡。我經常需要在這裏嘗試幾次。如果手機不想連接,請轉動Mac的wifi,然後重複上述步驟2並耐心等待。

  4. 啓動Wireshark捕捉Wireshark的無線接口,它可能是「en1」。過濾您所需的IP地址和/或端口。當你找到一個有趣的軟件包時,選擇它,右鍵單擊(上下文菜單)>按照TCP Stream,你會看到很好的文本表示請求和答案。

什麼是最好的:完全相同的技巧也適用於Android!

+0

你可以在模擬器中使用它嗎?我的手機上沒有應用程序。 –

+0

@Joshua Dance如果有外部網絡請求,您可以將其與模擬器一起使用。與本地主機的連接無法使用wireshark進行追蹤,因爲它們沒有通過「連線」(網卡) – JaakL

16

在Mac上輕鬆運行的免費開源代理工具是mitmproxy

該網站包含Mac二進制文件的鏈接以及Github上的源代碼。

該文檔包含一個非常有用的介紹,用於將證書加載到測試設備中以查看HTTPS流量。

不像查爾斯那麼貴,但它做我需要的一切,它的自由和維護。 好東西,如果你以前使用過一些命令行工具,那就很簡單了。

更新:我只是在網站上注意到,mitmproxy可作爲自制安裝。再簡單不過了。

+0

您是否有幸在iOS模擬器中使用mitm?我設置了它,但模擬器外部的計算機流量也被捕獲,這不是最好的。在實際設備上使用它是驚人的。多年來一直這樣做。 – atreat

0

,如果你使用的Chrome檢查工具一個好的解決辦法是小馬調試器:https://github.com/square/PonyDebugger

這是一個痛苦位設置的,但一旦你做它工作得很好。一定要使用Safari而不是Chrome來使用它。

-2

Telerik的提琴手是一個不錯的選擇

http://www.telerik.com/blogs/using-fiddler-with-apple-ios-devices

+0

這將如何在OSX機器上工作?考慮到兩個標籤是xcode和ios模擬器。 –

+0

@KevinR, 1. Telerik確實有OS X的Fiddler的beta版本 2.問題中沒有地方說選擇僅限於OS X http://www.telerik.com/blogs/using-fiddler -with-apple-ios-devices –

+1

@KonstantinSalavatov, 原帖的主題是「如何監控iOS模擬器的網絡調用」。 iOS模擬器只能在OS X上運行,所以是的,選擇*僅限於OS X. – ChillyPenguin

1
  1. 安裝的是Wireshark
  2. 得到的Xcode網絡監控IP地址
  3. 聽WiFi接口
  4. 設置的過濾ip.addr == WireShark中的192.168.1.122