
Безголовый ИИ-агент для детерминированного реверс-инжиниринга.
_ _
| | _____ _ __ _ __ __ _ __ _ ___ _ __ | |_
| |/ / _ \ '__| '_ \ / _` |/ _` |/ _ \ '_ \| __|
| < __/ | | | | | (_| | (_| | __/ | | | |_
|_|\_\___|_| |_| |_|\__,_|\__, |\___|_| |_|\__|
|___/
Превращайте бинарные файлы в беседы — детерминированно, проверяемо, офлайн.
kernagent преобразует бинарный файл в переносимый статический снимок и позволяет LLM (или вашим скриптам) отвечать на вопросы с доказательствами.
Никакой живой IDE • Никакой автоматизации GUI • Никаких галлюцинаций
Работает офлайн: запускайте полностью локально, используя совместимый с OpenAI endpoint (например, Ollama, LM Studio); интернет не требуется.
/v1/chat/completions (OpenAI, Gemini, Ollama, LM Studio, ваш прокси)/v1/chat/completions, например Ollama или LM Studio)Выберите способ, соответствующий вашему инструментарию. Все варианты монтируют ~/.config/kernagent/config.env, так что вы настраиваете учётные данные один раз.
install.sh (Linux / macOS / WSL2)bash <(curl -fsSL https://raw.githubusercontent.com/Karib0u/kernagent/main/install.sh)
Если однострочная команда заблокирована:
curl -fsSL https://raw.githubusercontent.com/Karib0u/kernagent/main/install.sh -o install.sh
bash install.sh
Или сначала склонируйте репозиторий:
git clone https://github.com/Karib0u/kernagent.git
cd kernagent
bash install.sh
Скрипт установки делает следующее (полностью проверяемо в scripts/):
ghcr.io/karib0u/kernagent:latest из реестра контейнеров GitHub (этап сборки не нужен)/usr/local/bin/:
kernagent — основной CLI-обёртка (автоматически монтирует бинарные файлы и конфигурацию)kernagent-config — интерактивный редактор конфигурацииkernagent-update — обновление до последней/помеченной версииkernagent-uninstall — удаление всех установленных файлов~/.config/kernagent/.versionВсе скрипты — это обычный код оболочки, который вы можете просмотреть в scripts/ перед запуском. sudo не требуется, если /usr/local/bin доступен для записи.
Чтобы установить конкретную версию обёртки и образа, укажите скрипт с тегом и передайте тег:
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
Вы также можете зафиксировать установку на конкретном коммите, заменив vX.Y.Z на SHA коммита в сыром URL.
git clone https://github.com/Karib0u/kernagent.git
cd kernagent
mkdir -p ~/.config/kernagent
cp config.env.example ~/.config/kernagent/config.env
# Загрузить предварительно собранный образ (рекомендуется)
docker compose pull
# Или собрать локально для разработки
docker compose build
docker compose run --rm kernagent --help
Анализируйте бинарные файлы, подключая их директорию к /data:
docker compose run --rm \
-v /absolute/path/to/binaries:/data \
kernagent summary /data/sample.exe
В Windows (PowerShell + Docker Desktop) используйте абсолютные пути в стиле Windows, например C:\malware:/data.
Загрузить предварительно собранный образ (рекомендуется):
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
Или собрать локально:
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
Вариант 1 (обёртка):
kernagent --help
kernagent --version
Запуск напрямую:
kernagent summary /path/to/binary.exe
kernagent ask /path/to/binary.exe "Что делает этот бинарный файл?"
kernagent oneshot /path/to/binary.exe
Варианты 2 или 3 (Docker Compose / сырой Docker):
Проверьте, запустив справку:
# Docker Compose
docker compose run --rm kernagent --help
# Сырой Docker
docker run --rm ghcr.io/karib0u/kernagent:latest --help
Вариант 1 (обёртка):
kernagent-uninstall
Варианты 2 или 3 (Docker Compose / сырой Docker):
Просто удалите клон и образы:
docker image rm ghcr.io/karib0u/kernagent:latest
# или
docker image rm kernagent:local
Вариант 1 (обёртка):
kernagent-update # переключиться на последнюю версию
kernagent-update --check # только проверить
kernagent-update --tag vX.Y.Z # зафиксировать конкретную версию
Варианты 2 или 3 (Docker Compose / сырой Docker):
Повторно выполните docker compose pull или docker pull ghcr.io/karib0u/kernagent:latest.
Summary — обзорный отчёт с цитируемыми артефактами

Ask — точечный диалог с перекрёстными ссылками/фрагментами декомпиляции

Первый запуск — если снимок
<name>_archive/не существует,kernagentсоздаёт его автоматически перед ответом
summaryОбзорный отчёт: назначение, возможности, ключевые функции/импорты/строки, с адресами для проверки
kernagent summary /path/to/binary
# сырой JSON (для автоматизации)
kernagent summary /path/to/binary --json
askИнтерактивный диалог по снимку с безопасными инструментами (поиск функций/строк/импортов, обход графа вызовов, чтение декомпиляции, разрешение перекрёстных ссылок)
kernagent ask /path/to/binary "Покажи предполагаемую логику C2 и доказательства."
oneshotДетерминированный отчёт для первичной сортировки в CI/пакетном анализе. Классификация:
MALICIOUS | GRAYWARE | BENIGN | UNKNOWN
kernagent oneshot /path/to/binary
# сырой JSON (для автоматизации)
kernagent oneshot /path/to/binary --json
Глобальные переопределения (любая команда):
# подробность и переопределение модели/API на один запуск
kernagent -v --model gpt-4o \
--base-url https://api.openai.com/v1 \
--api-key sk-... \
summary /path/to/binary
Структура снимка (подмножество)
<name>_archive/
├─ meta.json
├─ functions.jsonl
├─ strings.jsonl
├─ imports_exports.json
├─ callgraph.jsonl
├─ capa_summary.json
└─ decomp/*.c
Создайте один раз (вне репозитория). Быстрый путь:
kernagent-config
Или отредактируйте файл вручную:
mkdir -p ~/.config/kernagent
cp config.env.example ~/.config/kernagent/config.env
$EDITOR ~/.config/kernagent/config.env
Переопределение через переменные окружения:
export OPENAI_API_KEY=...
export OPENAI_BASE_URL=https://api.openai.com/v1 # или ваш шлюз
export OPENAI_MODEL=gpt-4o # или ваша локальная модель
Работает любой endpoint, совместимый с /v1/chat/completions.
PR приветствуются
Apache 2.0 — см. LICENSE