
Agent IA sans tête pour le rétro-ingénierie déterministe.
_ _
| | _____ _ __ _ __ __ _ __ _ ___ _ __ | |_
| |/ / _ \ '__| '_ \ / _` |/ _` |/ _ \ '_ \| __|
| < __/ | | | | | (_| | (_| | __/ | | | |_
|_|\_\___|_| |_| |_|\__,_|\__, |\___|_| |_|\__|
|___/
Transformez les binaires en conversations — déterministe, auditable, utilisable hors ligne.
kernagent convertit un binaire en instantané statique portable et permet à un LLM (ou à vos scripts) de répondre aux questions avec des preuves.
Pas d'IDE en direct • Pas d'automatisation d'interface graphique • Pas d'hallucinations
Capable hors ligne : exécutez entièrement en local à l'aide d'un point de terminaison compatible OpenAI (par exemple, Ollama, LM Studio) ; aucune connexion Internet requise.
/v1/chat/completions (OpenAI, Gemini, Ollama, LM Studio, votre passerelle)/v1/chat/completions locale comme Ollama ou LM Studio)Choisissez le flux qui correspond à vos outils. Toutes les options montent ~/.config/kernagent/config.env pour que vous configuriez les identifiants une seule fois.
install.sh (Linux / macOS / WSL2)bash <(curl -fsSL https://raw.githubusercontent.com/Karib0u/kernagent/main/install.sh)
Si la commande en une ligne est bloquée :
curl -fsSL https://raw.githubusercontent.com/Karib0u/kernagent/main/install.sh -o install.sh
bash install.sh
Ou clonez d'abord :
git clone https://github.com/Karib0u/kernagent.git
cd kernagent
bash install.sh
Le script d'installation fait ce qui suit (entièrement vérifiable dans scripts/) :
ghcr.io/karib0u/kernagent:latest depuis le registre de conteneurs GitHub (aucune étape de construction)/usr/local/bin/ :
kernagent — wrapper CLI principal (monte automatiquement les binaires et la configuration)kernagent-config — éditeur de configuration interactifkernagent-update — mise à jour vers la dernière version/une version étiquetéekernagent-uninstall — supprime tous les fichiers installés~/.config/kernagent/.versionTous les scripts sont en code shell brut que vous pouvez consulter dans scripts/ avant de les exécuter. Aucun sudo requis sauf si /usr/local/bin n'est pas accessible en écriture.
Pour installer une version spécifique du wrapper et de l'image, pointez le bootstrapper vers un script étiqueté et passez le tag :
KERNAGENT_INSTALL_URL="https://raw.githubusercontent.com/Karib0u/kernagent/vX.Y.Z/scripts/install.sh" \
bash <(curl -fsSL https://raw.githubusercontent.com/Karib0u/kernagent/main/install.sh) --tag vX.Y.Z
Vous pouvez également épingler à un commit exact en remplaçant vX.Y.Z par un SHA de commit dans l'URL brute.
git clone https://github.com/Karib0u/kernagent.git
cd kernagent
mkdir -p ~/.config/kernagent
cp config.env.example ~/.config/kernagent/config.env
# Pull pre-built image (recommended)
docker compose pull
# Or build locally for development
docker compose build
docker compose run --rm kernagent --help
Analysez les binaires en montant leur répertoire sous /data :
docker compose run --rm \
-v /absolute/path/to/binaries:/data \
kernagent summary /data/sample.exe
Sous Windows (PowerShell + Docker Desktop), utilisez des chemins absolus de style Windows comme C:\malware:/data.
Télécharger l'image préconstruite (recommandé) :
mkdir -p ~/.config/kernagent
curl -fsSL https://raw.githubusercontent.com/Karib0u/kernagent/main/config.env.example \
-o ~/.config/kernagent/config.env
docker pull ghcr.io/karib0u/kernagent:latest
docker run --rm \
-v /absolute/path/to/binaries:/data \
-v ~/.config/kernagent/config.env:/config/config.env:ro \
ghcr.io/karib0u/kernagent:latest summary /data/sample.exe
Ou construire localement :
git clone https://github.com/Karib0u/kernagent.git
cd kernagent
docker build -t kernagent:local .
docker run --rm \
-v /absolute/path/to/binaries:/data \
-v ~/.config/kernagent/config.env:/config/config.env:ro \
kernagent:local summary /data/sample.exe
Option 1 (wrapper) :
kernagent --help
kernagent --version
Exécutez directement :
kernagent summary /path/to/binary.exe
kernagent ask /path/to/binary.exe "What does this binary do?"
kernagent oneshot /path/to/binary.exe
Options 2 ou 3 (Docker Compose / Docker brut) :
Vérifiez en exécutant l'aide :
# Docker Compose
docker compose run --rm kernagent --help
# Raw Docker
docker run --rm ghcr.io/karib0u/kernagent:latest --help
Option 1 (wrapper) :
kernagent-uninstall
Options 2 ou 3 (Docker Compose / Docker brut) :
Il suffit de supprimer le clone et de retirer les images :
docker image rm ghcr.io/karib0u/kernagent:latest
# or
docker image rm kernagent:local
Option 1 (wrapper) :
kernagent-update # switch to latest
kernagent-update --check # check only
kernagent-update --tag vX.Y.Z # pin to specific version
Options 2 ou 3 (Docker Compose / Docker brut) :
Relancez docker compose pull ou docker pull ghcr.io/karib0u/kernagent:latest.
Résumé — aperçu exécutif avec artefacts cités

Demander — Q/R ciblée avec références croisées/tranches de décompilation

Première exécution — si aucun instantané
<name>_archive/n'existe,kernagentle construit automatiquement avant de répondre
summaryAperçu exécutif : objectif, capacités, fonctions/importations/chaines clés, avec adresses à vérifier
kernagent summary /path/to/binary
# raw JSON (for automation)
kernagent summary /path/to/binary --json
askQ/R interactive sur l'instantané à l'aide d'outils sécurisés (recherche de fonctions/chaines/importations, suivi du graphe d'appels, lecture de la décompilation, résolution des références croisées)
kernagent ask /path/to/binary "Show suspected C2 logic and evidence."
oneshotRapport de tri déterministe pour l'analyse CI/en masse. Classification : MALICIOUS | GRAYWARE | BENIGN | UNKNOWN
kernagent oneshot /path/to/binary
# raw JSON (for automation)
kernagent oneshot /path/to/binary --json
Surcharges globales (toute commande) :
# verbosity and per-run model/API overrides
kernagent -v --model gpt-4o \
--base-url https://api.openai.com/v1 \
--api-key sk-... \
summary /path/to/binary
Structure de l'instantané (sous-ensemble)
<name>_archive/
├─ meta.json
├─ functions.jsonl
├─ strings.jsonl
├─ imports_exports.json
├─ callgraph.jsonl
├─ capa_summary.json
└─ decomp/*.c
Créez une fois (en dehors du dépôt). Chemin rapide :
kernagent-config
Ou modifiez le fichier manuellement :
mkdir -p ~/.config/kernagent
cp config.env.example ~/.config/kernagent/config.env
$EDITOR ~/.config/kernagent/config.env
Remplacez via des variables d'environnement :
export OPENAI_API_KEY=...
export OPENAI_BASE_URL=https://api.openai.com/v1 # or your gateway
export OPENAI_MODEL=gpt-4o # or your local model
Tout point de terminaison compatible /v1/chat/completions fonctionne.
Les PRs sont les bienvenues
Apache 2.0 — voir LICENSE