
CyberChef v11.4.0
The Cyber Swiss Army Knife - une application web pour le chiffrement, l'encodage, la compression et l'analyse de données.
CyberChef
Le couteau suisse du cyber
CyberChef est une application web simple et intuitive pour effectuer toutes sortes d'opérations « cyber » directement dans un navigateur web. Ces opérations incluent le codage simple comme XOR et Base64, le chiffrement plus complexe comme AES, DES et Blowfish, la création de binaires et de hexdumps, la compression et la décompression de données, le calcul de hachages et de sommes de contrôle, l'analyse IPv6 et X.509, le changement d'encodages de caractères, et bien plus encore.
L'outil est conçu pour permettre aux analystes techniques comme non techniques de manipuler des données de manière complexe sans avoir à utiliser des outils ou des algorithmes complexes. Il a été conçu, développé et amélioré progressivement par un analyste pendant son temps d'innovation de 10 % sur plusieurs années.
Sommaire
- Official website
- Running Locally
- How it works
- Features
- Deep linking
- Browser support
- Node.js support
- Security
- Contributing
- Licencing
Site officiel
Le site officiel de CyberChef se trouve ici — amusez-vous bien !
Exécution locale
Vous pouvez exécuter CyberChef avec Docker (aucune chaîne d'outils requise) ou le compiler à partir des sources avec Node.js.
Avec Docker
Prérequis
- Docker
- Docker Desktop doit être ouvert et en cours d'exécution sur votre machine.
Option 1 : Construire vous-même l'image Docker
- Construisez l'image Docker
docker build --tag cyberchef --ulimit nofile=10000 .
- Exécutez le conteneur Docker
docker run -it -p 8080:8080 cyberchef
- Rendez-vous sur
http://localhost:8080dans votre navigateur
Option 2 : Utiliser l'image Docker pré-construite
Si vous préférez éviter le processus de compilation, vous pouvez utiliser l'image pré-construite.
docker run -it -p 8080:8080 ghcr.io/gchq/cyberchef:latest
Comme précédemment, rendez-vous sur http://localhost:8080 dans votre navigateur.
Cette image est construite et publiée via nos GitHub Workflows.
Depuis les sources
Si vous souhaitez développer CyberChef ou l'exécuter sans Docker, vous pouvez le compiler directement avec Node.js.
Prérequis
- Node.js
v24(voir Support Node.js)
[!NOTE]
Vous pouvez utiliser nvm pour gérer les versions de Node.js et utiliser la version de développement actuelle de ce projet afin d'éviter les conflits avec d'autres projets sur votre machine.
Configuration
git clone https://github.com/gchq/CyberChef.git
cd CyberChef
npm install
Tâches courantes
| Commande | Description |
|---|---|
npm start | Lance le serveur de développement avec rechargement en direct à http://localhost:8080. |
npm run build | Produit une version de production dans le répertoire build/prod. |
npm test | Exécute les suites de tests Node.js et des opérations. |
npm run testui | Exécute les tests navigateur (interface). |
npm run lint | Vérifie le code par rapport aux règles de lint. |
npm run newop | Génère une nouvelle opération via le script de démarrage rapide interactif. |
Si vous rencontrez une erreur de mémoire insuffisante lors de la compilation de grosses recettes, augmentez la taille du tas de Node avec npm run setheapsize.
Comment ça fonctionne
CyberChef comporte quatre zones principales :
- La zone entrée en haut à droite, où vous pouvez coller, saisir ou faire glisser le texte ou le fichier sur lequel vous souhaitez travailler.
- La zone sortie en bas à droite, où le résultat de votre traitement sera affiché.
- La liste des opérations tout à gauche, où vous pouvez trouver toutes les opérations dont CyberChef est capable, dans des listes catégorisées ou en effectuant une recherche.
- La zone recette au milieu, où vous pouvez faire glisser les opérations que vous souhaitez utiliser et préciser les arguments et options.
Vous pouvez utiliser autant d'opérations que vous le souhaitez, de façon simple ou complexe. Voici quelques exemples :
- Décoder une chaîne encodée en Base64
- Convertir une date et une heure dans un autre fuseau horaire
- Analyser une adresse IPv6 Teredo
- Convertir des données issues d'un hexdump, puis les décompresser
- Déchiffrer et désassembler du shellcode
- Afficher plusieurs horodatages sous forme de dates complètes
- Effectuer différentes opérations sur des données de différents types
- Utiliser des parties de l'entrée comme arguments pour les opérations
- Effectuer un déchiffrement AES, en extrayant le IV du début du flux chiffré
- Une méthode plus simple pour effectuer le même déchiffrement AES
- Détecter automatiquement plusieurs couches d'encodage imbriqué
Fonctionnalités
- Glisser-déposer
- Les opérations peuvent être glissées dans et hors de la liste de recette, ou réorganisées.
- Des fichiers jusqu'à 2 Go peuvent être glissés sur la zone d'entrée pour être chargés directement dans le navigateur.
- Auto Bake
- Chaque fois que vous modifiez l'entrée ou la recette, CyberChef effectue automatiquement un « bake » et produit la sortie immédiatement.
- Cette fonction peut être désactivée et utilisée manuellement si elle affecte les performances (si l'entrée est très volumineuse, par exemple).
- Détection automatique de l'encodage
- CyberChef utilise un certain nombre de techniques pour tenter de détecter automatiquement sous quels encodages se trouvent vos données. S'il trouve une opération adaptée qui donne un sens à vos données, il affiche l'icône « magic » dans le champ Sortie, sur laquelle vous pouvez cliquer pour décoder vos données.
- Points d'arrêt
- Vous pouvez définir des points d'arrêt sur n'importe quelle opération de votre recette pour suspendre l'exécution avant de la lancer.
- Vous pouvez également parcourir la recette opération par opération pour voir à quoi ressemblent les données à chaque étape.
- Enregistrer et charger des recettes
- Si vous créez une recette géniale que vous savez vouloir réutiliser, cliquez simplement sur « Save recipe » et ajoutez-la à votre stockage local. Elle vous attendra lors de votre prochaine visite sur CyberChef.
- Vous pouvez également copier l'URL, qui inclut votre recette et votre entrée, pour la partager facilement avec d'autres.
- Recherche
- Si vous connaissez le nom de l'opération souhaitée ou un mot associé, commencez à le saisir dans le champ de recherche et toutes les opérations correspondantes s'afficheront immédiatement.
- Mise en surbrillance
- Lorsque vous surlignez du texte dans l'entrée ou la sortie, les valeurs de décalage et de longueur s'affichent et, si possible, les données correspondantes sont mises en surbrillance dans la sortie ou l'entrée respectivement (exemple : surlignez le mot « question » dans l'entrée pour voir où il apparaît dans la sortie).
- Enregistrer dans un fichier et charger depuis un fichier
- Vous pouvez enregistrer la sortie dans un fichier à tout moment ou charger un fichier en le glissant-déposant dans le champ d'entrée. Des fichiers jusqu'à environ 2 Go sont pris en charge (selon votre navigateur), cependant, certaines opérations peuvent prendre très longtemps pour traiter une telle quantité de données.
- CyberChef est entièrement côté client
- Il convient de noter qu'aucune de vos configurations de recette ou de vos entrées (textes ou fichiers) n'est jamais envoyée au serveur web de CyberChef — tout le traitement est effectué dans votre navigateur, sur votre propre ordinateur.
- Grâce à cette fonctionnalité, CyberChef peut être téléchargé et exécuté localement. Vous pouvez utiliser le lien dans le coin supérieur gauche de l'application pour télécharger une copie complète de CyberChef et la placer dans une machine virtuelle, la partager avec d'autres personnes ou l'héberger sur un réseau fermé.
Liens profonds
En manipulant le hash de l'URL de CyberChef, vous pouvez modifier les paramètres initiaux avec lesquels la page s'ouvre.
Le format est https://gchq.github.io/CyberChef/#recipe=Operation()&input=...
Les arguments pris en charge sont recipe, input (encodé en Base64) et theme.
Navigateurs pris en charge
CyberChef est conçu pour prendre en charge
- Google Chrome 50+
- Mozilla Firefox 38+
Support Node.js
CyberChef est conçu pour prendre entièrement en charge Node.js v24 et est également testé avec Node.js v26 avant qu'il ne devienne la version LTS active. Pour plus d'informations, consultez la page wiki "Node API"
Sécurité
Veuillez consulter la politique de sécurité de CyberChef.
Contribuer
Contribuer avec une nouvelle opération à CyberChef est très simple ! Le script de démarrage rapide vous guidera tout au long du processus. Si vous savez écrire du JavaScript de base, vous savez écrire une opération CyberChef.
Une présentation de l'installation, des guides pratiques pour ajouter de nouvelles opérations et thèmes, des descriptions de la structure du dépôt, des types de données disponibles et des conventions de codage se trouvent tous dans la page wiki "Contributing".
- Poussez vos modifications vers votre fork.
- Soumettez une pull request. Si vous le faites pour la première fois, il vous sera demandé de signer le GCHQ Contributor Licence Agreement via l'assistant CLA sur la pull request. Il vous demandera également si vous acceptez que le GCHQ vous contacte pour vous remercier de votre contribution ou pour vous parler d'opportunités d'emploi au GCHQ.
Licence
CyberChef est publié sous la licence Apache 2.0 et est couvert par le Crown Copyright.