Un challenge CTF ou une charge utile suspecte présente souvent ses données encodées plusieurs fois successivement. Ce guide explique comment reconnaître chaque couche et les retirer une par une.
Un encodage (Base64, Hex, URL-encode...) est une transformation réversible sans clé secrète — n'importe qui peut le décoder, c'est un format de transport, pas une protection. Un chiffrement (XOR avec clé, César, AES...) nécessite en revanche de connaître ou deviner la clé pour revenir au texte clair. La confusion entre les deux est fréquente chez les débutants en CTF : empiler du Base64 plusieurs fois ne "sécurise" rien, ça ne fait que rendre la lecture plus laborieuse pour un humain — mais triviale pour un outil automatisé.
| Indice visuel | Encodage probable |
|---|---|
Lettres, chiffres, + / et = de fin | Base64 |
Uniquement 0-9 et a-f, longueur paire | Hexadécimal |
Uniquement 0 et 1, groupes de 8 | Binaire |
% suivi de deux caractères hexadécimaux | URL-encode (percent-encoding) |
| Texte lisible mais avec un sens bizarre, alphabet inchangé | Chiffrement par décalage (César, ROT13, Atbash) |
Face à une chaîne suspecte, la démarche la plus efficace est itérative : identifier le format le plus externe, le décoder, regarder si le résultat ressemble à un encodage différent ou à du texte clair, et répéter. C'est exactement ce que cet outil automatise — mais comprendre la logique manuelle reste utile pour les cas que l'automatisation ne couvre pas (formats personnalisés, encodages rares).
Si le résultat décodé ressemble à du texte presque lisible mais avec les lettres "décalées" (par exempleDécoder un payload maintenant →Uryybau lieu deHello), c'est le signe d'un chiffrement par décalage plutôt que d'un encodage supplémentaire — passe alors au solveur César / XOR / Vigenère plutôt que de chercher un nouvel encodage.
a-f0-9 — toujours vérifier la longueur et la cohérence du résultat décodé avant de conclure.= de fin manquant) lors d'un copier-coller partiel — la plupart des décodeurs tolèrent son absence, mais certains outils stricts le refusent.Parce que ROT13 "réussit" toujours techniquement sur n'importe quel texte contenant des lettres (il ne produit jamais d'erreur), ce qui rendrait la détection automatique peu fiable — elle se ferait quasi-systématiquement à tort. Pour ces chiffrements par décalage, utilise le solveur dédié qui teste les 26 décalages et identifie le plus probable.
Oui pour le Base64 et l'hexadécimal, tant que les octets décodés forment un texte UTF-8 valide — le décodage tente automatiquement l'interprétation UTF-8 du résultat brut.
Le payload est peut-être déjà en clair, chiffré avec une vraie clé (pas un simple décalage), ou dans un format binaire propriétaire qui sort du cadre de cet outil — dans ce cas, un outil dédié comme CyberChef (en local, jamais en ligne avec des données sensibles) ou une analyse manuelle reste nécessaire.
Outils similaires