it-swarm.com.de

So überwachen Sie Netzwerkanrufe, die über den iOS Simulator getätigt wurden

Ich versuche, Anrufe von einer App auf meinen Server zu überwachen, genau wie Firebug dies tut.

Gibt es eine Möglichkeit, dies zu tun, ohne den gesamten Verkehr zu schnüffeln? Wenn ja, welches Werkzeug würden Sie vorschlagen?

91
Mad Echet

Persönlich benutze ich Charles für solche Sachen.
Wenn diese Option aktiviert ist, werden alle Netzwerkanfragen überwacht und erweiterte Anforderungsdetails einschließlich Unterstützung für SSL und verschiedene Anforderungs-/Antwortformate wie JSON usw. angezeigt.

Sie können es auch so konfigurieren, dass nur Anforderungen an bestimmte Server gesichtet werden, nicht der gesamte Datenverkehr.

Es ist kommerzielle Software, aber es gibt eine Testversion, und IMHO ist definitiv ein großartiges Werkzeug.

74
Macmade

Verwenden Sie das integrierte Netzwerkaktivitätsüberwachungsinstrument .

28
Andy

Ein Man-in-the-Middle-Proxy ist, wie von anderen Antworten vorgeschlagen, eine gute Lösung, wenn Sie nur HTTP/HTTPS-Verkehr sehen möchten. Burp Suite ist ziemlich gut. Es kann jedoch schwierig sein, es zu konfigurieren. Ich bin nicht sicher, wie Sie den Simulator davon überzeugen könnten, mit ihm zu sprechen. Möglicherweise müssen Sie den Proxy auf Ihrem lokalen Mac auf die Instanz eines Proxyservers setzen, damit er abgefangen werden kann, da der Simulator die Umgebung Ihres lokalen Mac verwendet.

Die beste Lösung für das Paket-Sniffing (obwohl es nur für actual iOS-Geräte und nicht für den Simulator funktioniert), habe ich rvictl verwendet. Dieser Blogbeitrag hat eine schöne Schreibweise. Grundsätzlich machst du:

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

Dann schnüffeln Sie an der Oberfläche, die Sie mit Wireshark (oder Ihrem bevorzugten Werkzeug) erstellt haben, und schließen Sie dann die Oberfläche mit:

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

Das ist schön, denn wenn Sie den Simulator per Paket scannen möchten, müssen Sie auch den Datenverkehr zu Ihrem lokalen Mac durchgehen. rvictl erstellt jedoch eine virtuelle Schnittstelle, die Ihnen nur den Datenverkehr des iOS-Geräts anzeigt, das Sie in Ihren Computer eingesteckt haben USB-Anschluss.

24
mpontillo

Ein kostenloses Open-Source-Proxy-Tool, das problemlos auf einem Mac ausgeführt werden kann, ist mitmproxy .

Die Website enthält Links zu einer Mac-Binärdatei sowie den Quellcode von Github.

Die Dokumente enthalten ein sehr hilfreiches Intro zum Laden eines Zertifikats in Ihr Testgerät, um den HTTPS-Verkehr anzuzeigen.

Nicht ganz so GUI-tastic wie Charles, aber es macht alles, was ich brauche, und es ist kostenlos und gepflegt.

UPDATE: Ich habe gerade auf der Website festgestellt, dass Mitmproxy als Homebrew-Installation verfügbar ist. Könnte nicht einfacher sein.

18
giff

Wenn Sie eine Kabelverbindung und einen Mac haben, gibt es eine einfache und leistungsfähige Methode: 

  1. installieren Sie kostenlos Wireshark, stellen Sie sicher, dass es Geräte aufnehmen kann (und Sie müssen dies tun nach jedem Neustart des Computers !):

    Sudo chmod 644/dev/bpf *

  2. Jetzt teilen Sie Ihr Netzwerk mit WLAN. Systemeinstellungen> Freigabe> Internetfreigabe. Überprüfen Sie, ob Sie "Teilen Sie Ihre Verbindungen von: Ethernet" und verwenden Sie: Wi-Fi. Möglicherweise möchten Sie auch einige WLAN-Sicherheitseinstellungen konfigurieren, da dies Ihre Datenüberwachung nicht stört. 

  3. Verbinden Sie Ihr Telefon mit Ihrem neu erstellten Netzwerk. Ich brauche hier oft mehrere Versuche. Wenn das Telefon keine Verbindung herstellen möchte, schalten Sie den Wi-Fi-Anschluss des Macs ab, wiederholen Sie Schritt 2 oben und haben Sie etwas Geduld.

  4. Starten Sie Wireshark, um Ihre drahtlose Schnittstelle mit Wireshark zu erfassen. Es handelt sich wahrscheinlich um "en1". Filtern Sie Ihre benötigten IP-Adressen und/oder Ports. Wenn Sie ein interessantes Paket finden, wählen Sie es aus. Klicken Sie mit der rechten Maustaste (Kontextmenü)> Folgen Sie dem TCP -Stream, und Sie sehen eine schöne Textdarstellung der Anforderungen und Antworten.

Und was ist das Beste: Genau der gleiche Trick funktioniert auch für Android!

3
JaakL

Xcode bietet die CFNetwork-Diagnoseprotokollierung. Apple doc

Um dies zu aktivieren, fügen Sie in Umgebungsvariable CFNETWORK_DIAGNOSTICS = 3 hinzu

Dies zeigt Anfragen von der App mit ihren Kopfzeilen und Körper.

2
Evan
  1. Installieren Sie WireShark
  2. iP-Adresse vom xcode-Netzwerkmonitor abrufen
  3. hören Sie die WLAN-Schnittstelle
  4. setzen Sie den Filter ip.addr == 192.168.1.122 in WireShark
1
August Lin

Vor kurzem habe ich ein git Repo gefunden, das macht es einfach.

Du kannst es versuchen.

Dies ist der Screenshot einer App:  enter image description here

Freundliche Grüße.

1
LagMaster

Wireshark es

Wählen Sie Ihre Schnittstelle aus

 enter image description here

Fügen Sie filter hinzu, und starten Sie die capture.

 enter image description here


Testen

Klicken Sie auf eine Aktion oder Schaltfläche, die eine GET/POST/PUT/DELETE-Anforderung auslösen würde

Sie werden es im Wireshark sehen 

 enter image description here

Wenn Sie weitere Details zu einem bestimmten Paket erfahren möchten, wählen Sie es einfach aus und wählen Sie Follow> HTTP Stream.

 enter image description here

hoffe das hilf anderen !! 

1
kyo

Ich benutze Netfox. Es ist sehr einfach zu bedienen und zu integrieren. Sie können es auf Simulator und Gerät verwenden. Es zeigt alle Anfragen und Antworten. Es unterstützt JSON-, XML-, HTML-, Image- und andere Antworttypen. Sie können Anforderungen, Antworten und vollständige Protokolle über die standardmäßigen Freigabeformate von IOS freigeben (Gmail, WhatsApp, E-Mail, Slack, SMS usw.).

Sie können auf GitHub überprüfen: https://github.com/kasketis/netfox

Netfox bietet einen schnellen Überblick über alle von Ihrer iOS- oder OSX-App ausgeführten Netzwerkanfragen. Es erfasst alle Anfragen - natürlich Ihre, Anfragen von Bibliotheken von Drittanbietern (wie AFNetworking, Alamofire oder andere), UIWebViews und mehr

0

Eine gute Lösung, wenn Sie mit den Chrome-Inspector-Tools vertraut sind, ist der Pony-Debugger: https://github.com/square/PonyDebugger

Das Setup ist etwas schmerzhaft, aber wenn Sie es einmal gemacht haben, funktioniert es gut. Stellen Sie sicher, dass Sie Safari anstelle von Chrome verwenden.

0
Simon Epskamp