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.
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
root@kitploit:~
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 :
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.
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"
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.