Odpowiedzi:
Osobiście używam Charlesa do tego typu rzeczy.
Po włączeniu monitoruje każde żądanie sieciowe, wyświetlając rozszerzone szczegóły żądania, w tym obsługę SSL i różne formaty żądań / odpowiedzi, takie jak JSON itp.
Możesz również skonfigurować go tak, aby podsłuchiwał tylko żądania do określonych serwerów, a nie cały ruch.
To oprogramowanie komercyjne, ale jest wersja próbna, a IMHO to zdecydowanie świetne narzędzie.
Proxy typu man-in-the-middle, jak sugerują inne odpowiedzi, jest dobrym rozwiązaniem, jeśli chcesz widzieć tylko ruch HTTP / HTTPS. Apartament Burp jest całkiem niezły. Jednak konfiguracja może być trudna. Nie jestem pewien, jak przekonałbyś symulator do rozmowy. Być może będziesz musiał ustawić serwer proxy na lokalnym komputerze Mac na wystąpienie serwera proxy, aby przechwycił, ponieważ symulator będzie korzystał ze środowiska lokalnego komputera Mac.
Najlepszym rozwiązaniem do sniffowania pakietów (choć działa tylko na rzeczywistych urządzeniach z systemem iOS, a nie na symulatorze), które znalazłem, jest użycie rvictl
. Ten post na blogu ma niezły opis. Zasadniczo robisz:
rvictl -s <iphone-uid-from-xcode-organizer>
Następnie wąchasz interfejs, który tworzy za pomocą Wiresharka (lub twojego ulubionego narzędzia), a kiedy skończysz, wyłącz interfejs za pomocą:
rvictl -x <iphone-uid-from-xcode-organizer>
Jest to miłe, ponieważ jeśli chcesz węszyć pakietowo symulator, musisz również przebrnąć przez ruch do lokalnego komputera Mac, ale rvictl
tworzy wirtualny interfejs, który po prostu pokazuje ruch z urządzenia iOS podłączonego do USB Port.
Darmowe narzędzie proxy typu open source, które łatwo działa na komputerze Mac, to mitmproxy .
Witryna zawiera linki do pliku binarnego Mac, a także kod źródłowy na Github.
Dokumenty zawierają bardzo pomocne wprowadzenie do ładowania certyfikatu na urządzenie testowe w celu wyświetlenia ruchu HTTPS.
Nie jest tak plastyczny jak Charles, ale robi wszystko, czego potrzebuję, jest darmowy i utrzymywany. Dobre rzeczy i całkiem proste, jeśli wcześniej używałeś niektórych narzędzi wiersza poleceń.
AKTUALIZACJA: Właśnie zauważyłem na stronie internetowej, że mitmproxy jest dostępny jako instalacja homebrew. Nie może być prostsze.
Niedawno znalazłem repozytorium git, które to ułatwia.
Możesz tego spróbować.
To jest zrzut ekranu aplikacji:
Z poważaniem.
Xcode zapewnia rejestrowanie diagnostyczne CFNetwork. Apple doc
Aby to włączyć, dodaj CFNETWORK_DIAGNOSTICS=3
w sekcji Zmienna środowiskowa:
Spowoduje to wyświetlenie żądań z aplikacji z nagłówkami i treścią. Należy pamiętać, że OS_ACTIVITY_MODE
musi być ustawione enable
tak, jak pokazano. W przeciwnym razie żadne dane wyjściowe nie będą wyświetlane na konsoli.
Wybierz swój interfejs
Dodaj filter
początekcapture
Kliknij dowolną akcję lub przycisk, które wywołałyby żądanie GET / POST / PUT / DELETE
Zobaczysz to na liście w wireshark
Jeśli chcesz poznać więcej szczegółów na temat jednego konkretnego pakietu, po prostu wybierz go i Śledź> Strumień HTTP .
miej nadzieję, że to pomoże innym!
Jeśli masz połączenie kablowe i komputer Mac, istnieje prosta i wydajna metoda:
zainstaluj darmowy Wireshark, upewnij się, że może przechwytywać urządzenia z (i musisz to zrobić po każdym ponownym uruchomieniu komputera !):
sudo chmod 644 / dev / bpf *
Teraz udostępnij swoją sieć Wi-Fi. Preferencje systemowe> Udostępnianie> Udostępnianie Internetu. Sprawdź, czy masz „Udostępnij swoje połączenia z: Ethernet” i używasz: Wi-Fi. Możesz również skonfigurować niektóre zabezpieczenia Wi-Fi, nie zakłócają monitorowania danych.
Podłącz telefon do nowo utworzonej sieci. Często potrzebuję tutaj kilku prób. Jeśli telefon nie chce się połączyć, wyłącz Wi-Fi komputera Mac, a następnie powtórz krok 2 powyżej i bądź cierpliwy.
Uruchom Wireshark, przechwytuj swój interfejs bezprzewodowy za pomocą Wireshark, prawdopodobnie jest to „en1”. Filtruj potrzebne adresy IP i / lub porty. Gdy znajdziesz pakiet, który jest interesujący, wybierz go, kliknij prawym przyciskiem myszy (menu kontekstowe)> Śledź strumień TCP, a zobaczysz ładną reprezentację tekstową żądań i odpowiedzi.
A co najlepsze: dokładnie ta sama sztuczka działa również na Androida!
Telerik Fiddler to dobry wybór
http://www.telerik.com/blogs/using-fiddler-with-apple-ios-devices
Dobrym rozwiązaniem, jeśli jesteś przyzwyczajony do narzędzi inspektora Chrome, jest debugger Pony: https://github.com/square/PonyDebugger
Konfiguracja jest trochę uciążliwa, ale kiedy już to zrobisz, działa dobrze. Pamiętaj jednak, aby używać Safari zamiast Chrome, aby z niego korzystać.
Używam netfox. Jest bardzo łatwy w obsłudze i integracji. Możesz go używać na symulatorze i urządzeniu. Pokazuje wszystkie prośby i odpowiedzi. Obsługuje JSON, XML, HTML, obraz i inne typy odpowiedzi. Możesz udostępniać żądania, odpowiedzi i pełny dziennik według domyślnych formatów udostępniania IOS (Gmail, WhatsApp, e-mail, slack, sms itp.)
Możesz sprawdzić na GitHub: https://github.com/kasketis/netfox
Netfox zapewnia szybki podgląd wszystkich wykonanych żądań sieciowych wykonywanych przez aplikację na iOS lub OSX. Przechwytuje wszystkie żądania - oczywiście Twoje, żądania z bibliotek zewnętrznych (takich jak AFNetworking, Alamofire lub inne), UIWebViews i nie tylko