
Agente AI headless per reverse engineering deterministico.
_ _
| | _____ _ __ _ __ __ _ __ _ ___ _ __ | |_
| |/ / _ \ '__| '_ \ / _` |/ _` |/ _ \ '_ \| __|
| < __/ | | | | | (_| | (_| | __/ | | | |_
|_|\_\___|_| |_| |_|\__,_|\__, |\___|_| |_|\__|
|___/
Trasforma binari in conversazioni — deterministico, verificabile, utilizzabile offline.
kernagent converte un binario in un 'istantanea statica portatile e consente a un LLM (o ai tuoi script) di rispondere a domande con prove.
Nessun IDE attivo • Nessuna automazione GUI • Nessuna allucinazione
Utilizzabile offline: esegui completamente in locale usando un endpoint compatibile con OpenAI (es. Ollama, LM Studio); nessuna connessione internet richiesta.
/v1/chat/completions (OpenAI, Gemini, Ollama, LM Studio, il tuo gateway)/v1/chat/completions locale come Ollama o LM Studio)Scegli il flusso che si adatta ai tuoi strumenti. Tutte le opzioni montano ~/.config/kernagent/config.env così configuri le credenziali una volta sola.
install.sh (Linux / macOS / WSL2)bash <(curl -fsSL https://raw.githubusercontent.com/Karib0u/kernagent/main/install.sh)
Se il comando singolo è bloccato:
curl -fsSL https://raw.githubusercontent.com/Karib0u/kernagent/main/install.sh -o install.sh
bash install.sh
Oppure clona prima:
git clone https://github.com/Karib0u/kernagent.git
cd kernagent
bash install.sh
Lo script di installazione fa quanto segue (completamente verificabile in scripts/):
ghcr.io/karib0u/kernagent:latest dal GitHub Container Registry (nessuna fase di build)/usr/local/bin/:
kernagent — wrapper CLI principale (monta automaticamente binari e configurazione)kernagent-config — editor di configurazione interattivokernagent-update — aggiorna all'ultima versione/taggatakernagent-uninstall — rimuove tutti i file installati~/.config/kernagent/.versionTutti gli script sono semplici script shell che puoi esaminare in scripts/ prima di eseguirli. Non è richiesto sudo a meno che /usr/local/bin non sia scrivibile.
Per installare una versione specifica del wrapper e dell'immagine, punta il bootstrapper a uno script taggato e passa il 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
Puoi anche fissare un commit esatto sostituendo vX.Y.Z con lo SHA del commit nell'URL grezzo.
git clone https://github.com/Karib0u/kernagent.git
cd kernagent
mkdir -p ~/.config/kernagent
cp config.env.example ~/.config/kernagent/config.env
# Scarica l'immagine precompilata (consigliato)
docker compose pull
# Oppure compila localmente per sviluppo
docker compose build
docker compose run --rm kernagent --help
Analizza i binari montando la loro directory sotto /data:
docker compose run --rm \
-v /absolute/path/to/binaries:/data \
kernagent summary /data/sample.exe
Su Windows (PowerShell + Docker Desktop), usa percorsi assoluti in stile Windows come C:\malware:/data.
Scarica l'immagine precompilata (consigliato):
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
Oppure compila localmente:
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
Opzione 1 (wrapper):
kernagent --help
kernagent --version
Esegui direttamente:
kernagent summary /path/to/binary.exe
kernagent ask /path/to/binary.exe "Cosa fa questo binario?"
kernagent oneshot /path/to/binary.exe
Opzioni 2 o 3 (Docker Compose / Docker grezzo):
Verifica eseguendo help:
# Docker Compose
docker compose run --rm kernagent --help
# Docker grezzo
docker run --rm ghcr.io/karib0u/kernagent:latest --help
Opzione 1 (wrapper):
kernagent-uninstall
Opzioni 2 o 3 (Docker Compose / Docker grezzo):
Basta eliminare il clone e rimuovere le immagini:
docker image rm ghcr.io/karib0u/kernagent:latest
# oppure
docker image rm kernagent:local
Opzione 1 (wrapper):
kernagent-update # passa all'ultima versione
kernagent-update --check # solo controllo
kernagent-update --tag vX.Y.Z # fissa a una versione specifica
Opzioni 2 o 3 (Docker Compose / Docker grezzo):
Esegui di nuovo docker compose pull o docker pull ghcr.io/karib0u/kernagent:latest.
Summary — panoramica esecutiva con artefatti citati

Ask — domande e risposte mirate con riferimenti incrociati e frammenti di decompilazione

Prima esecuzione — se non esiste un'istantanea
<nome>_archive/,kernagentla costruisce automaticamente prima di rispondere
summaryPanoramica esecutiva: scopo, capacità, funzioni/importazioni/stringhe chiave, con indirizzi per la verifica
kernagent summary /path/to/binary
# JSON grezzo (per automazione)
kernagent summary /path/to/binary --json
askDomande e risposte interattive sull'istantanea usando strumenti sicuri (cerca funzioni/stringhe/importazioni, segui il grafo delle chiamate, leggi decompilazione, risolvi riferimenti incrociati)
kernagent ask /path/to/binary "Mostra la logica C2 sospetta e le prove."
oneshotReport di triage deterministico per CI/analisi in batch. Classificazione:
MALICIOUS | GRAYWARE | BENIGN | UNKNOWN
kernagent oneshot /path/to/binary
# JSON grezzo (per automazione)
kernagent oneshot /path/to/binary --json
Override globali (qualsiasi comando):
# verbosità e override del modello/API per esecuzione
kernagent -v --model gpt-4o \
--base-url https://api.openai.com/v1 \
--api-key sk-... \
summary /path/to/binary
Struttura dell'istantanea (sottoinsieme)
<nome>_archive/
├─ meta.json
├─ functions.jsonl
├─ strings.jsonl
├─ imports_exports.json
├─ callgraph.jsonl
├─ capa_summary.json
└─ decomp/*.c
Crea una volta (fuori dal repository). Percorso rapido:
kernagent-config
Oppure modifica il file manualmente:
mkdir -p ~/.config/kernagent
cp config.env.example ~/.config/kernagent/config.env
$EDITOR ~/.config/kernagent/config.env
Override tramite variabili d'ambiente:
export OPENAI_API_KEY=...
export OPENAI_BASE_URL=https://api.openai.com/v1 # o il tuo gateway
export OPENAI_MODEL=gpt-4o # o il tuo modello locale
Qualsiasi endpoint compatibile con /v1/chat/completions funziona.
PR benvenuti
Apache 2.0 — vedi LICENSE