Przejdź do głównej zawartości

Przechwytywanie na iOS

Przechwytywanie na iPhonie / iPadzie od zawsze przyprawiało o ból głowy. Zwykłe narzędzia zwykle albo wymagają jailbreaka, albo potrafią jedynie skonfigurować proxy (co i tak oznacza zainstalowanie profilu i certyfikatu, a aplikacji z przypinaniem certyfikatu i tak nie da się przechwycić). Przechwytywanie na iOS oferuje trzy metody bez jailbreaka, od “widoku żądań systemu bez żadnej konfiguracji”, przez “pełny ruch całego urządzenia”, po “kompletny tekst jawny pojedynczej aplikacji”. Jedna z nich dosięgnie Twojego celu.


  • Podłącz urządzenie: połącz iPhone’a / iPada z komputerem kablem do transmisji danych, a następnie stuknij Zaufaj na urządzeniu.
  • Jailbreak nie jest potrzebny: wszystkie trzy metody są przeznaczone dla urządzeń bez jailbreaka.
  • Zgodne z nowymi systemami: nowsze wersje iOS (w tym iOS 17 i nowsze) przeszły na nowy kanał urządzenia, a łączenie i przechwytywanie i tak tu działają.
  • Jeśli to samo urządzenie pojawia się również w sieci, wybierz odpowiednio wpis USB / sieć.

Twoja potrzeba Której użyć Co można zobaczyć Czy potrzebna instalacja certyfikatu / ponowne podpisanie?
Szybko zobaczyć, które żądania HTTPS wysłał system (adres / status / nagłówki) Przechwytywanie na poziomie systemu Działa też dla zwykłych aplikacji (przy zwykłych aplikacjach nie widać treści) Żadne; tylko profil diagnostyczny
Cały ruch całego urządzenia (w tym ruch inny niż HTTP, uzgadnianie / SNI) Przechwytywanie na karcie sieciowej Pełne dane (domyślnie tekst zaszyfrowany, odszyfrowywalne na życzenie) Do podglądu tekstu zaszyfrowanego niepotrzebne; ponowne podpisanie wymagane tylko do odszyfrowania danej aplikacji
Kompletna wymiana danej aplikacji w postaci tekstu jawnego (wraz z treścią) Przechwytywanie na warstwie aplikacji Kompletny tekst jawny pojedynczej aplikacji Docelowa aplikacja musi zostać ponownie podpisana certyfikatem deweloperskim

Żadna z tych trzech nie wymaga jailbreaka. Przechwytywanie na poziomie systemu jest szczególnie bezproblemowe: nawet dla zwykłych aplikacji i aplikacji z App Store możesz zobaczyć, o które adresy HTTPS się zwracają, czego zwykłe narzędzia nie potrafią na iPhonie bez jailbreaka.


3. Przechwytywanie na poziomie systemu: najbardziej bezproblemowe, działa też dla zwykłych aplikacji

Dział zatytułowany „3. Przechwytywanie na poziomie systemu: najbardziej bezproblemowe, działa też dla zwykłych aplikacji”

Chcesz szybko zobaczyć, które żądania HTTPS wysłał ten iPhone, bez instalowania certyfikatu, konfigurowania proxy czy zmagania się z przypinaniem certyfikatu? To najbardziej bezproblemowa metoda.

  • Wypisuje transakcje HTTP(S), które wysyła system: metodę żądania, pełny URL (adres jest tekstem jawnym nawet przy HTTPS), kod statusu, nagłówki żądania i nagłówki odpowiedzi.
  • Bez certyfikatu CA do zainstalowania, bez proxy do skonfigurowania, bez zmagania się z przypinaniem certyfikatu.
  • To, ile możesz zobaczyć, jest ograniczone przez same systemowe logi diagnostyczne:
    • Zwykłe aplikacje i aplikacje z App Store: zwykle widać tylko adres żądania i nagłówki żądania.
    • Aplikacje podpisane certyfikatem deweloperskim: widać pełną treść żądania / odpowiedzi.

Wymóg wstępny: musisz zainstalować pasujący profil diagnostyczny urządzenia (raz wystarczy).


4. Przechwytywanie na karcie sieciowej: zobacz wszystko na tym urządzeniu

Dział zatytułowany „4. Przechwytywanie na karcie sieciowej: zobacz wszystko na tym urządzeniu”

Przechwyć cały ruch sieciowy urządzenia, niezależnie od aplikacji czy protokołu, w tym QUIC inny niż HTTP i protokoły własne.

  • Co widać domyślnie: domyślnie są to pakiety z tekstem zaszyfrowanym + metadane (adres docelowy, port oraz nazwa hosta SNI z uzgadniania TLS), co wystarczy, by wyraźnie zobaczyć, “z jakimi miejscami łączyło się to urządzenie i jakim protokołem”.
  • Chcesz tekst jawny: użyj opcji “Odszyfruj ten program” na docelowej aplikacji, aby odszyfrować jej tekst jawny; wymaga to, aby aplikacja została ponownie podpisana certyfikatem deweloperskim.

5. Przechwytywanie na warstwie aplikacji: kompletny tekst jawny pojedynczej aplikacji

Dział zatytułowany „5. Przechwytywanie na warstwie aplikacji: kompletny tekst jawny pojedynczej aplikacji”

Celując w pojedynczą aplikację, ta metoda uzyskuje kompletny tekst jawny (wraz z treścią), który aplikacja wysyła i odbiera. Przypinanie certyfikatu nie może jej zatrzymać, ponieważ odczytuje z wnętrza aplikacji.

  • Uruchom docelowy program ponownie: możesz najpierw zamknąć i ponownie uruchomić aplikację, aby przechwycić też jej ruch z wczesnej fazy uruchamiania.
  • Włącz “ruch na poziomie gniazd” jako rozwiązanie awaryjne, gdy nie da się zdekodować tekstu jawnego: dla aplikacji, które statycznie linkują / używają własnej biblioteki i z których zwykłe metody nie uzyskają tekstu jawnego, włącz ten przełącznik, aby niższą drogą dotrzeć do danych.
  • Na liście aplikacji można wybrać tylko aplikacje ponownie podpisane certyfikatem deweloperskim; reszta jest wyszarzona.

Wymóg wstępny: docelowa aplikacja musi zostać ponownie podpisana certyfikatem deweloperskim; aplikacje z App Store i aplikacje systemowe trzeba najpierw ponownie podpisać, zanim będzie można ich użyć jako celu.


Poza trzema powyższymi metodami iPhone / iPad może również skorzystać z przechwytywania przez proxy: skieruj proxy Wi-Fi urządzenia na tę maszynę, zainstaluj certyfikat główny, a będziesz mógł przechwytywać tekst jawny HTTPS tak jak na komputerze i korzystać z pełnego zestawu możliwości przepisywania i odtwarzania. Nadaje się do debugowania aplikacji, które przechodzą przez proxy systemowe, albo do scenariuszy wymagających przepisywania / odtwarzania żądań mobilnych na podstawie reguł.


  • Aby szybko zbadać, “o które punkty końcowe zwróciła się aplikacja i co zwróciły”, najłatwiejsze jest przechwytywanie na poziomie systemu, a działa nawet dla zwykłych aplikacji.
  • Aby zobaczyć cały ruch całego urządzenia (w tym inny niż HTTP), użyj przechwytywania na karcie sieciowej.
  • Jeśli możesz ponownie podpisać docelową aplikację i chcesz jej kompletnej treści w postaci tekstu jawnego, użyj przechwytywania na warstwie aplikacji.
  • Aby jednocześnie podglądać i edytować (przepisywać / odtwarzać żądania mobilne), użyj przechwytywania przez proxy.

Powrót do Przechwytywanie przez proxy · Powiązane: Podgląd i dekodowanie · Zarządzanie certyfikatami i ich instalacja