Atelier de rétro-ingénierie construit sur le décompilateur de Ghidra avec un moteur natif sans Java, une analyse de fonctions assistée par IA, le patch d'octets, une émulation en bac à sable et l'automatisation via CLI/MCP.
Démontez un programme et comprenez-le, avec un coup de pouce. KRAKEN est un atelier de rétro-ingénierie open source construit sur le décompilateur de Ghidra, avec un moteur natif sans Java et un moteur Ghidra complet en option. Vous, vos scripts et vos agents IA travaillez tous sur le même projet via un ensemble unique de commandes, et chaque modification est journalisée, attribuée et annulable. Vous n'avez pas besoin de connaître la rétro-ingénierie pour commencer : l'application explique les termes au fil de votre progression et le tutoriel vous guide à travers une première session. L'objectif à long terme est la réécriture en Rust des binaires, fonction par fonction, vérifiée par rapport à l'original.

Un vrai projet du moteur natif : stripped_calc-O2-stripped issu de ce dépôt, après que quelques fonctions ont été nommées.
Analyser
Patcher
IA
Automatiser
--json pour les scripts, un module Python, et un démon en arrière-plan qui garde les projets chauds.Réécrire
KRAKEN est en pré-alpha (0.1a). Attendez-vous à des aspérités et à des changements cassants.
| Linux x86_64 | macOS (Apple silicon) | Windows x86_64 | |
|---|---|---|---|
| CLI, serveur MCP, interface graphique | Fonctionne | Compile, expérimental | Compile, expérimental |
Moteur natif, sans Java (kraken setup --native) | Fonctionne (ELF et PE) | Pas encore | Pas encore |
Analyse avec Ghidra (kraken setup) | Fonctionne | Pas encore | Pas encore |
| Sandbox autour de Ghidra | Landlock | Pas encore | Pas encore |
| Modèles locaux | Fonctionne | Compile | Compile |
| Pipeline de réécriture | Fonctionne (nécessite Landlock et un modèle) | Refuse de s'exécuter | Refuse de s'exécuter |
« Compile » signifie que le code se compile et est vérifié en CI, pas que le produit entier a été prouvé sur cette plateforme. Linux est la plateforme à utiliser aujourd'hui.
Linux x86_64 (sans Java : le moteur natif et ses fichiers de processeur sont dans la release) :
curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/Adam-AtlasSoftware/kraken/main/scripts/install.sh | bash
Le script vérifie le téléchargement par rapport au fichier SHA256SUMS de la version, ne nécessite pas sudo et s'installe dans ~/.local. Ou prenez l'AppImage de la dernière version (chmod +x KRAKEN-*.AppImage, puis exécutez-le ; ./KRAKEN-*.AppImage kraken --help lance la ligne de commande), ou sur Arch Linux installez kraken-workbench-bin depuis l'AUR. Les archives Windows et macOS sont également disponibles sur la page des versions, et sont expérimentales (voir Status). Install contient les détails et la compilation depuis les sources.
kraken project-create --binary /usr/bin/ls --project ~/kraken-projects/ls
kraken analyze --project ~/kraken-projects/ls
kraken list-functions --project ~/kraken-projects/ls --limit 20
kraken-gui # or open the app and pick the project
Les nouveaux projets utilisent le moteur natif lorsqu'il peut ouvrir le fichier, sinon le moteur Ghidra optionnel (Mach-O, autres processeurs, informations de débogage Windows), que kraken setup télécharge avec un JDK lors de la première utilisation. La page du moteur natif compare les deux. Les programmes d'exercice dans corpus/bin/ constituent un bon point de départ, et le tutoriel guide à travers une première session.
Connecter un agent : claude mcp add kraken -- kraken mcp --project ~/kraken-projects/ls.
Vous avez besoin de Rust et d'un compilateur C++ :
git clone https://github.com/Adam-AtlasSoftware/kraken && cd kraken
cargo build --release -p kraken-cli -p krakend -p kraken-gui -p engine-native -p kraken-emu
export PATH="$PWD/target/release:$PATH"
kraken setup --native # once: fetches the pinned sources, compiles the Sleigh files (about a minute)
Commencez par le tutoriel : votre première session de rétro-ingénierie.