Débogage réseau
Chute est un proxy, mais la raison d'en faire tourner un sur ses propres appareils tient rarement au routage. Elle tient à ceci : chaque requête passe désormais par un endroit que vous contrôlez. Vous pouvez donc observer ce qu'une application envoie réellement, conserver les corps pour les lire plus tard, modifier une requête ou une réponse en vol, et faire passer un backend en bonne santé pour un backend cassé afin de voir comment votre application réagit.
Les pages de référence de chaque mécanisme se trouvent ailleurs dans ce manuel : Déchiffrement HTTPS, Réponse simulée, Réécriture d'URL, Scripts JS. Cette section les remet dans l'ordre où on s'en sert vraiment, et dit ce qui change d'une plateforme à l'autre.
Quatre fenêtres sur le même noyau
Un seul Chute en cours d'exécution, quatre façons de le regarder. Se tromper de fenêtre est la raison habituelle pour laquelle quelque chose « n'y est pas ».
| S'exécute sur | Corps de requête et de réponse | Modifie le noyau en cours | Nécessite | |
|---|---|---|---|---|
| L'application elle-même | L'appareil | iOS oui ; macOS et tvOS non | Les interrupteurs seulement | Rien |
| Console web | Un navigateur, sur n'importe quel appareil | Oui | Hôtes MitM, toutes les familles de réécriture, politiques, configuration | external-http-controller |
| Chute Dashboard | Un Mac | Oui | Hôtes MitM, toutes les familles de réécriture, les deux interrupteurs | external-controller-access |
| API de contrôle HTTP | Tout ce qui parle HTTP | Oui, en base64 | Tout ce que fait la console | external-http-controller |
La console et Dashboard se recouvrent largement mais s'atteignent différemment : la console est servie par le noyau lui-même et s'ouvre dans un navigateur, Dashboard est une application Mac qui parle un canal binaire. Aucune n'est un sur-ensemble de l'autre ; Ce que Dashboard n'atteint pas énumère les différences.
D'abord, quatre interrupteurs à régler
Presque tous les « je vois la connexion mais pas la requête » se terminent sur l'un de ces quatre points, dans cet ordre :
- Le trafic atteint Chute, tout simplement. Une ligne dans la vue du trafic en est la preuve. Rien du tout est un problème de prise en charge, pas de débogage — voir Dépannage.
- Le CA est installé et approuvé. Deux étapes distinctes sur iOS, une seule sur macOS, et aucune des deux dans l'application sur tvOS — voir Installer le certificat CA et l'approuver.
- L'hôte figure dans la liste MitM. Chute déchiffre les hôtes déclarés et rien d'autre. Une ligne qui affiche
CONNECT, sans méthode ni statut, n'a jamais été déchiffrée. - L'enregistrement est actif.
replica = true, ou l'interrupteur (Capture du trafic sur Mac, Données de vidage sur iOS et tvOS). Sans lui, chaque ligne porte toujours sa règle, sa politique et ses temps — seules les charges utiles manquent.[Replica]restreint ensuite ce qui est conservé.
Les points 3 et 4 se basculent aussi à chaud depuis la console, depuis Dashboard et via l'API, et aucun de ces moyens n'écrit dans le fichier de configuration : après un redémarrage, c'est le fichier qui gagne.
Ce que chaque plateforme permet
| Chute iOS | Chute Mac | Chute tvOS | |
|---|---|---|---|
| Inspecter dans l'application | Écran Dashboard — aperçu, requête, réponse, avec les corps | Onglet Trafic — routage seulement, pas de corps | Liste des sessions — routage seulement, pas de corps |
| Basculer MitM dans l'application | Interrupteur du panneau de contrôle (sous licence) | Barre des menus → Activer le MitM (⌘M) | Pas d'interrupteur sur cette plateforme |
| Basculer l'enregistrement dans l'application | Panneau de contrôle → Données de vidage (sous licence) | Barre des menus → Capture du trafic (⌘B) | Panneau de contrôle → Données de vidage (sous licence) |
| Installer le CA | Dans l'application, puis l'approuver dans les réglages | Dans l'application, en une étape | MDM ou Apple Configurator uniquement |
| Comment Chute Dashboard y accède | Câble USB ou Wi-Fi | 127.0.0.1 sur le même Mac |
Wi-Fi |
| Sortir un fichier de l'appareil | Feuille de partage | Le système de fichiers | La console seulement, par QR code |
Où aller ensuite
- Déboguer un iPhone depuis un Mac — tout le trajet, d'un téléphone tout neuf à un corps déchiffré à l'écran d'un Mac.
- Déboguer sur un Mac — le trafic du Mac lui-même, y compris les outils en ligne de commande et l'isolement par processus.
- Déboguer une Apple TV — un appareil sans navigateur, sans feuille de partage et incapable d'installer un certificat par lui-même.
- Réplique — quelles connexions gardent leurs corps, et comment cesser de tout capturer.
- Simulation et injection de pannes — réponses toutes faites, codes d'erreur, latence injectée, et ce que Chute ne sait vraiment pas faire.
Si la question est « ça ne marche pas » plutôt que « qu'est-ce que ça fait », commencez plutôt par le Dépannage — en particulier Pourquoi ma réécriture ne fait-elle rien ?, la question que cette section engendre le plus souvent.