Wenn Sie Windows-Anwendungen entwickeln oder testen und sehen möchten, welche HTTP-Anfragen sie senden – wird Fiddler Ihr Hauptwerkzeug sein. Es fängt den gesamten Verkehr ab, ermöglicht es Ihnen, ihn zu analysieren, in Echtzeit zu ändern und wiederzugeben. Dies ist besonders nützlich bei der Arbeit mit UWP-Anwendungen, die standardmäßig den Systemproxy umgehen.
In diesem Leitfaden werden wir die Installation, die Einrichtung des HTTPS-Abfangens, die Arbeit mit UWP, die Verbindung externer Proxys und typische Nutzungsszenarien behandeln – von der API-Debugging bis zur Überwachung von Hintergrundanfragen.
Was ist Fiddler und wofür wird es benötigt
Fiddler ist ein HTTP-Proxy-Debugger, der von Telerik (jetzt Progress) entwickelt wurde. Es funktioniert als lokaler Proxy-Server: Alle HTTP- und HTTPS-Anfragen Ihres Computers laufen über es, und Sie können jede von ihnen in Echtzeit sehen. Das Tool ist kostenlos und existiert in zwei Versionen – Fiddler Classic (nur Windows) und Fiddler Everywhere (plattformübergreifend).
Was unterscheidet Fiddler von den DevTools im Browser? Die Entwicklerwerkzeuge des Browsers zeigen nur den Verkehr des Browsers selbst an. Fiddler hingegen fängt Anfragen von allen Anwendungen auf Ihrem Computer ab: Desktop-Programmen, Systemdiensten, Hintergrundprozessen von Windows, mobilen Anwendungen über Wi-Fi und – was besonders wichtig ist – UWP-Anwendungen aus dem Microsoft Store.
Typische Aufgaben, die Fiddler löst:
- Analyse von API-Anfragen von Desktop-Anwendungen – was genau sendet das Programm, welche Header, welche Daten
- Debugging des eigenen Codes – Sie sehen die echten Anfragen Ihrer Anwendung und nicht das, was Sie dachten, senden zu wollen
- Änderung von Anfragen und Antworten in Echtzeit – Datenänderung zum Testen von Edge-Cases
- Überwachung der Hintergrundaktivitäten – welche Server "kontaktiert" das Programm ohne Ihr Wissen
- Tests über Proxy – Überprüfung des Verhaltens der Anwendung bei Verwendung eines externen Proxy-Servers
- Wiederholung von Anfragen – erneutes Senden einer abgefangenen Anfrage mit geänderten Parametern
Fiddler ist besonders wertvoll für Entwickler, die mit geschlossenen APIs arbeiten – zum Beispiel beim Reverse Engineering des Protokolls einer mobilen Anwendung oder eines Desktop-Clients. Sie starten einfach das Programm, drücken die benötigten Tasten im Interface und sehen alle Anfragen in Fiddler.
Installation und erste Einrichtung
Die Installation von Fiddler Classic dauert etwa zwei Minuten. Laden Sie den Installer von der offiziellen Website telerik.com/fiddler herunter und führen Sie ihn aus. Nach der Installation trägt sich Fiddler automatisch als Systemproxy von Windows auf Port 127.0.0.1:8888 ein.
Sofort nach dem Start sehen Sie das Hauptfenster mit drei Bereichen:
- Linke Leiste (Sessions) – Liste aller in Echtzeit abgefangenen Anfragen
- Obere rechte Leiste – Details der ausgewählten Anfrage (Header, Body, Parameter)
- Untere rechte Leiste – Serverantwort
Das erste, was Sie tun sollten, ist die Filterung einzurichten, da sonst der gesamte Systemverkehr von Windows (Updates, Telemetrie, OneDrive usw.) in die Liste gelangt und es schwierig sein wird, die benötigten Anfragen zu finden. Gehen Sie zum Tab Filters auf der rechten Seite und aktivieren Sie Use Filters. Geben Sie im Feld Show only the following Hosts die Domains an, die Sie interessieren.
Nützliche Hotkeys für Fiddler Classic:
F12– Traffic-Abfangen ein-/ausschaltenCtrl+X– Sitzungsliste löschenCtrl+F– Suche in den SitzungenR– Ausgewählte Anfrage wiederholenShift+Delete– Ausgewählte Sitzungen löschen
Wir empfehlen auch, die automatische Speicherung von Sitzungen sofort einzurichten: File → Capture Traffic und File → Save → All Sessions. Dies ermöglicht es Ihnen, später auf den aufgezeichneten Verkehr zurückzukehren und ihn offline zu analysieren.
Abfangen von HTTPS-Verkehr: Zertifikate einrichten
Standardmäßig fängt Fiddler nur HTTP-Verkehr ab. Um mit HTTPS (das sind über 95% des modernen Verkehrs) zu arbeiten, müssen Sie SSL-Dekodierung einrichten. Fiddler fungiert als Man-in-the-Middle: Es generiert sein eigenes Root-Zertifikat und signiert damit alle HTTPS-Verbindungen.
Schritt-für-Schritt-Anleitung zur Einrichtung des HTTPS-Abfangens:
- Öffnen Sie Tools → Options → HTTPS
- Setzen Sie ein Häkchen bei Capture HTTPS CONNECTs
- Setzen Sie ein Häkchen bei Decrypt HTTPS traffic
- Wählen Sie im Dropdown-Menü ...from all processes
- Klicken Sie auf die Schaltfläche Actions → Trust Root Certificate
- Bestätigen Sie die Installation des Zertifikats im Windows-Systemstore
- Starten Sie Fiddler neu
Danach sehen Sie in der Spalte Protocol HTTPS anstelle von CONNECT, und Sie können den entschlüsselten Inhalt von Anfragen und Antworten einsehen.
⚠️ Wichtig: Sicherheit des Zertifikats
Das Fiddler-Zertifikat wird nur im Speicher des aktuellen Windows-Benutzers installiert. Geben Sie die Zertifikatdatei nicht an Dritte weiter – dies würde es ihnen ermöglichen, Ihren HTTPS-Verkehr abzufangen. Nach Abschluss des Debugging kann das Zertifikat über Tools → Options → HTTPS → Actions → Remove Interception Certificates entfernt werden.
Einige Anwendungen verwenden Certificate Pinning – sie überprüfen ein bestimmtes Serverzertifikat und weigern sich, über Fiddler zu arbeiten. In diesem Fall sehen Sie eine Verbindungsfehler in der Anwendung. Die Umgehung des Pinning ist ein separates Thema, das über den Rahmen dieses Artikels hinausgeht.
Wie man den Verkehr von UWP-Anwendungen abfängt
UWP (Universal Windows Platform) sind Anwendungen aus dem Microsoft Store: Mail, Karten, Filme und TV, Spotify, Netflix und viele andere. Ihr besonderes Merkmal ist, dass sie aus Sicherheitsgründen in einem isolierten Container (App Container) arbeiten und keinen Systemproxy verwenden. Aus diesem Grund fängt die Standardkonfiguration von Fiddler ihren Verkehr nicht ab.
Um dieses Problem zu lösen, bietet Fiddler ein spezielles Tool – AppContainer Loopback Exemption Utility. Es fügt die UWP-Anwendung zur Ausnahmeliste hinzu, sodass sie auf den lokalen Fiddler-Proxy zugreifen kann.
Methode 1 – über die Fiddler-Oberfläche:
- Wählen Sie im Menü WinConfig (Schaltfläche in der Symbolleiste oder Tools → Win8 Loopback Exemptions)
- Eine Liste aller installierten UWP-Anwendungen wird geöffnet
- Finden Sie die gewünschte Anwendung und setzen Sie ein Häkchen daneben
- Klicken Sie auf Save Changes
- Starten Sie die UWP-Anwendung neu
Methode 2 – über die Eingabeaufforderung (zur Automatisierung):
CheckNetIsolation LoopbackExempt -a -n="Microsoft.WindowsMaps_8wekyb3d8bbwe"
Ersetzen Sie Microsoft.WindowsMaps_8wekyb3d8bbwe durch den Package Family Name der gewünschten Anwendung. Sie können ihn in PowerShell mit folgendem Befehl finden:
Get-AppxPackage | Select-Object Name, PackageFamilyName | Sort-Object Name
Nach dem Hinzufügen der Ausnahme beginnt die UWP-Anwendung, Verkehr über Fiddler zu senden. Sie werden ihre Anfragen in der Sitzungsliste sehen – normalerweise sind sie leicht anhand des User-Agent oder des Zielhosts zu identifizieren.
💡 Tipp: UWP und HTTPS
Um HTTPS-Verkehr von UWP-Anwendungen abzufangen, reicht es nicht aus, eine Loopback-Ausnahme hinzuzufügen. Sie müssen auch das Fiddler-Zertifikat im Speicher der Trusted Root Certification Authorities für Local Machine installieren (nicht nur für den aktuellen Benutzer). Tun Sie dies über certmgr.msc oder über Gruppenrichtlinien.
Filter, Breakpoints und Änderungsanfragen
Die drei leistungsstärksten Funktionen von Fiddler für das Debugging sind die Filterung von Sitzungen, Breakpoints und AutoResponder. Lassen Sie uns jede von ihnen behandeln.
Filterung von Sitzungen
Der Tab Filters ermöglicht es, nur die benötigten Anfragen anzuzeigen. Die Hauptoptionen sind:
- Show only the following Hosts – Filter nach Domain (z.B.
api.example.com) - Show only if URL contains – Filter nach einem Teil der URL
- Show only if response Content-Type – nur JSON, XML, Bilder usw.
- Hide if URL contains – Rausch-Anfragen ausschließen (z.B.
telemetry,analytics)
Sie können auch die QuickExec-Zeile am unteren Rand des Fensters für schnelle Befehle verwenden. Zum Beispiel wird select status 404 alle Anfragen mit Fehler 404 hervorheben, während bold api alle Sitzungen, die "api" in der URL enthalten, fett hervorhebt.
Breakpoints
Breakpoints ermöglichen es, eine Anfrage oder Antwort vor dem Senden/Empfangen anzuhalten und den Inhalt manuell zu ändern. Dies ist analog zu einem Haltepunkt im Code-Debugger, jedoch für HTTP.
- Rules → Automatic Breakpoints → Before Requests – stoppt jede Anfrage vor dem Senden
- Rules → Automatic Breakpoints → After Responses – stoppt jede Antwort vor der Übertragung an die Anwendung
- Rechtsklick auf die Sitzung → Breakpoint → Break on Request – punktueller Breakpoint für eine bestimmte URL
Wenn die Anfrage angehalten wird, können Sie jeden Header, den Body der Anfrage, die URL ändern und auf Run to Completion klicken, um fortzufahren. Dies ist besonders nützlich, um das Verhalten der Anwendung bei geänderten Daten zu testen.
AutoResponder
AutoResponder ist ein Tool zum Ersetzen von Serverantworten. Sie erstellen eine Regel: "Wenn die URL mit dem Muster übereinstimmt – geben Sie diese Datei/diese Antwort zurück". Anwendungen:
- Testen von Anwendungen mit API-Stubs ohne echtes Backend
- Simulation von Serverfehlern (500, 503, Zeitüberschreitungen)
- Ersetzen von Ressourcen – lokale Version von JS/CSS anstelle der Serverversion laden
- Beschleunigung der Entwicklung – langsame Anfragen an externe APIs zwischenspeichern
Verbindung zu externen Proxys über Fiddler
Eine der wichtigen Funktionen von Fiddler ist der Betrieb im "Proxy über Proxy"-Modus (upstream proxy). Fiddler fängt den Verkehr lokal ab und leitet ihn dann über einen externen Proxy-Server weiter. Dies ermöglicht es, Anfragen gleichzeitig zu debuggen und die IP-Adresse oder den Standort zu ändern.
Wann ist das nötig:
- Testen des Verhaltens der Anwendung bei Verwendung eines Unternehmensproxys
- Überprüfung von geoabhängigem Inhalt – wie die Anwendung aus einem anderen Land funktioniert
- Debugging einer Anwendung, die selbst einen Proxy verwendet
- API-Tests mit IP-Beschränkungen (Whitelist nach IP)
Einrichtung des Upstream-Proxys in Fiddler Classic:
- Öffnen Sie Tools → Options → Gateway
- Wählen Sie Manual Proxy Configuration
- Geben Sie im Feld Proxy die Proxy-Adresse im Format
host:portein - Wenn der Proxy eine Authentifizierung erfordert – geben Sie Benutzername und Passwort an
- Klicken Sie auf OK und starten Sie die Verkehrserfassung neu
Fiddler unterstützt HTTP, HTTPS und SOCKS5-Proxys als Upstream. Für SOCKS5 ist das Format etwas anders:
socks=proxy.example.com:1080
Für Aufgaben zur Testung des geoabhängigen Verhaltens von Anwendungen sind residential proxies sehr gut geeignet – sie verwenden echte IPs von Heimnutzern aus dem gewünschten Land, und die Anwendung erhält Antworten genau so, wie sie ein echter Nutzer aus dieser Region erhalten würde. Dies ist wichtig, wenn die API je nach Geo unterschiedliche Inhalte zurückgibt.
Wenn Sie hohe Geschwindigkeiten für das Herunterladen großer Datenmengen während des Debugging benötigen, sind Datacenter-Proxys geeignet – sie bieten eine stabile Verbindung und minimale Latenz, was bei der Arbeit mit schweren APIs praktisch ist.
💡 FiddlerScript für die dynamische Auswahl von Proxys
Über FiddlerScript können Sie verschiedene Upstream-Proxys für verschiedene Hosts einrichten. Zum Beispiel, um Anfragen an api.us-service.com über einen amerikanischen Proxy zu leiten, während andere direkt gehen:
static function OnBeforeRequest(oSession: Session) {
if (oSession.HostnameIs("api.us-service.com")) {
oSession["x-OverrideGateway"] = "us-proxy.example.com:8080";
}
}
Praktische Szenarien: Parsen, API-Tests, Geo-Umgehung
Lassen Sie uns spezifische Aufgaben betrachten, die Sie bequem mit Fiddler lösen können.
Szenario 1: Reverse Engineering der API einer mobilen Anwendung
Sie möchten Aktionen in einer Anwendung automatisieren, aber sie hat keine öffentliche API. Lösung: Starten Sie die Anwendung in einem Android-Emulator oder über den Windows-Client, richten Sie sie so ein, dass sie Fiddler als Proxy verwendet, und zeichnen Sie alle Anfragen auf, während Sie die gewünschten Aktionen ausführen.
Nach der Aufzeichnung erhalten Sie ein vollständiges Bild: Endpunkte, Anfrageformate, Authentifizierungsheader, Tokens. Diese Daten können verwendet werden, um einen eigenen Client zu schreiben oder Automatisierungen über Skripte durchzuführen.
Szenario 2: Debugging eines Parsers für Marktplätze
Bei der Entwicklung eines Parsers für Wildberries, Ozon oder andere Marktplätze ist oft unklar, warum Anfragen blockiert werden. Fiddler ermöglicht es, die Anfragen des Browsers (die durchgehen) mit den Anfragen des Parsers (die blockiert werden) zu vergleichen und Unterschiede in den Headern, der Reihenfolge, den Cookie-Werten oder dem TLS-Fingerprint zu finden.
Typischerweise stellt man fest: Der Parser sendet die Header in einer anderen Reihenfolge, Accept-Language fehlt oder User-Agent enthält die Python-Version. Wenn Sie diese Details im Code des Parsers korrigieren, verringern Sie die Wahrscheinlichkeit einer Blockierung.
Szenario 3: Testen von geoabhängigem Inhalt
Wenn Ihre Anwendung unterschiedlichen Inhalt für Benutzer aus verschiedenen Ländern anzeigt, müssen Sie sie mit echten IPs aus diesen Ländern testen. Richten Sie Fiddler mit einem Upstream-Proxy aus der gewünschten Region ein, starten Sie die Anwendung – und Sie sehen genau das, was ein Benutzer aus diesem Land sieht, plus ein vollständiges Protokoll aller Anfragen.
Szenario 4: Überwachung der Hintergrundaktivitäten von Anwendungen
Möchten Sie wissen, wohin eine installierte Anwendung "anruft"? Starten Sie Fiddler, starten Sie die Anwendung, warten Sie 5-10 Minuten. In der Sitzungsliste erscheinen alle Hosts, die die Anwendung kontaktiert hat. Dies ist nützlich für die Sicherheitsprüfung von Drittanbieter-Software, um Telemetrie oder unerwünschte Verbindungen zu überprüfen.
Szenario 5: Exportieren von Anfragen zur Wiederholung
Fiddler ermöglicht es, abgefangene Anfragen im cURL-Format zu exportieren, das sofort im Terminal ausgeführt oder in Postman eingefügt werden kann. Rechtsklick auf die Sitzung → Copy → cURL Request. Dies ist praktisch, um eine Anfrage an einen Kollegen weiterzugeben oder um die API zu dokumentieren.
Fiddler Classic vs Fiddler Everywhere: Was wählen
Telerik unterstützt zwei Versionen des Produkts, und die Wahl zwischen ihnen ist nicht immer offensichtlich. Lassen Sie uns die wichtigsten Unterschiede betrachten.
| Parameter | Fiddler Classic | Fiddler Everywhere |
|---|---|---|
| Plattformen | Nur Windows | Windows, macOS, Linux |
| Preis | Kostenlos | Bezahltes Abonnement (es gibt einen kostenlosen Plan) |
| UWP-Unterstützung | Ja (über WinConfig) | Begrenzt |
| FiddlerScript | Ja (JScript.NET) | Nein (es werden Regeln verwendet) |
| Interface | Veraltet, aber funktional | Modern, benutzerfreundlich |
| Zusammenarbeit | Nein | Ja (Cloud-Kollektionen) |
| Erweiterbarkeit | .NET-Plugins | Begrenzt |
| Abfangen von Systemverkehr | Vollständig | Vollständig |
Wann Fiddler Classic wählen: Sie arbeiten nur auf Windows, benötigen Unterstützung für UWP-Anwendungen, verwenden FiddlerScript zur Automatisierung oder benötigen eine vollständig kostenlose Version ohne Einschränkungen.
Wann Fiddler Everywhere wählen: Sie arbeiten auf macOS oder Linux, benötigen ein modernes Interface, legen Wert auf Teamarbeit mit gemeinsamen Anfragekollektionen oder möchten eine Integration in CI/CD-Pipelines.
Es lohnt sich auch, Alternativen zu erwähnen: Charles Proxy (kostenpflichtig, beliebt auf macOS), mitmproxy (kostenlos, konsolenbasiert, sehr flexibel), Wireshark (arbeitet auf Paketebene, nicht HTTP). Jedes Tool hat seine Stärken, aber für die meisten Debugging-Aufgaben von Windows-Anwendungen bleibt Fiddler Classic die optimale Wahl.
Typische Probleme und ihre Lösungen
Bei der Arbeit mit Fiddler treten gelegentlich typische Probleme auf. Hier sind die häufigsten und ihre Lösungen.
Problem: Anwendung funktioniert nicht bei aktiviertem Fiddler
Gründe: Certificate Pinning, fest codierter Proxy in der Anwendung oder die Anwendung vertraut dem Fiddler-Zertifikat nicht. Lösungen:
- Installieren Sie das Fiddler-Zertifikat im Speicher Local Machine → Trusted Root
- Überprüfen Sie, ob die Anwendung Certificate Pinning verwendet
- Fügen Sie den Host zu den SSL-Ausnahmen hinzu: Tools → Options → HTTPS → Skip Decryption for following hosts
Problem: Nach dem Schließen von Fiddler funktioniert das Internet nicht
Fiddler hat den Systemproxy bei einem unerwarteten Beenden nicht entfernt. Lösung: Öffnen Sie Windows-Einstellungen → Netzwerk → Proxy und deaktivieren Sie den manuellen Proxy. Oder starten Sie Fiddler erneut und schließen Sie es ordnungsgemäß.
Problem: Nur CONNECT-Tunnel sichtbar, aber nicht der Inhalt von HTTPS
HTTPS-Abfangen nicht konfiguriert. Gehen Sie zurück zum Abschnitt zur Zertifikateinrichtung und stellen Sie sicher, dass das Häkchen bei Decrypt HTTPS traffic gesetzt ist und das Zertifikat im Systemstore installiert ist.
Problem: Verkehr von UWP-Anwendung erscheint nicht in Fiddler
Es wurde keine Loopback-Ausnahme für diese Anwendung hinzugefügt. Verwenden Sie WinConfig (beschrieben im Abschnitt über UWP) und starten Sie die Anwendung nach dem Hinzufügen der Ausnahme neu.
Problem: Upstream-Proxy funktioniert nicht (Verbindungsfehler)
Überprüfen Sie: die Richtigkeit der Adresse und des Ports des Proxys, die Korrektheit von Benutzername/Passwort, die Erreichbarkeit des Proxy-Servers (versuchen Sie, direkt ohne Fiddler eine Verbindung herzustellen). Stellen Sie auch sicher, dass der Proxy das benötigte Protokoll unterstützt – nicht alle HTTP-Proxys unterstützen HTTPS-Tunneling.
Fazit
Fiddler ist ein unverzichtbares Tool für alle, die mit HTTP-Verkehr von Windows-Anwendungen arbeiten. Es ermöglicht Ihnen, alle Anfragen in Echtzeit zu sehen, sie in Echtzeit zu ändern, das Verhalten von Anwendungen unter verschiedenen Bedingungen zu testen und Aufgaben zu lösen, die mit den DevTools des Browsers nicht möglich sind. Besonders wertvoll ist die Unterstützung von UWP-Anwendungen durch den Mechanismus der Loopback-Ausnahmen – dies ist eine einzigartige Möglichkeit, die die meisten Alternativen nicht bieten.
Für Aufgaben zur Testung des geoabhängigen Verhaltens von Anwendungen oder zur Überprüfung der Funktionalität über externe Proxys – richten Sie den Upstream-Proxy in Fiddler ein. Wenn Sie echte IPs aus bestimmten Ländern für eine korrekte Testung benötigen, achten Sie auf residential proxies – sie bieten das realistischste Geo und minimales Risiko von Blockierungen seitens der getesteten Dienste.
Beginnen Sie mit Fiddler Classic – es ist kostenlos, gut dokumentiert und deckt 90% der Debugging-Aufgaben auf Windows ab. Mit zunehmenden Anforderungen können Sie auf Fiddler Everywhere umsteigen oder Ihren Arbeitsprozess mit spezialisierten Tools wie mitmproxy für flexiblere Automatisierungen ergänzen.
```