Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
recurse — IDE для агентной обратной разработки с мультиархитектурным дизассемблером на чистом Rust, нативным декомпилятором, отладчиком и LLM-агентом для анализа бинарных файлов и работы с CTF. | Kitploit
Инструменты/GitHubGitHub/recurse-labs/recurse
Статический анализДинамический анализ (песочница)Обратная инженерияОтладчикиАнализ вредоносных программCTFАнализ Бинарных ФайловОбучение и ОбразованиеОбратная Разработка с Помощью ИИБезопасность ИИ
GitHubrecurse-labs/recurse
21416991 день назадПроверено Kitploit

recurse

IDE для агентной обратной разработки с мультиархитектурным дизассемблером на чистом Rust, нативным декомпилятором, отладчиком и LLM-агентом для анализа бинарных файлов и работы с CTF.

РепозиторийСайт

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Recurse

Среда агентного реверс-инжиниринга — десктопное приложение класса Ghidra в духе «Cursor для реверс-инжиниринга». Построено на Tauri 2 (фронтенд на React + TypeScript) поверх подключаемого бэкенда анализа. По умолчанию используется чисто-Rust нативный движок — без внешних процессов, без copyleft-зависимостей, мультиархитектурность через Capstone. Также можно запускать анализ через r2 (radare2): установите его, выберите в качестве движка, и всё приложение — инструменты агента и UI — будет работать через него. Инструмент агента и UI не зависят от бэкенда — см. docs/backends.md.

Recurse demo

Структура репозитория

Cargo workspace в корне; десктопное приложение — один из пакетов в нём.

root@kitploit:~
tauri/                   desktop app (Tauri + React)
  src/                     React frontend
  src-tauri/               Tauri Rust backend (engine sessions, agent wiring)
  package.json             app scripts (Vite, Vitest, Tauri CLI)
crates/
  recurse-agent/              agent framework: LLM loop, tool runtime, SQLite memory
  recurse-static/          static analysis: ELF/PE/Mach-O parsing, multi-arch disassembly,
                           CFG and cross-reference recovery, the engine seam
  recurse-vtil/            VTIL-inspired de-obfuscation/de-virtualization IL, lifter, optimizer
  recurse-mcp/             standalone headless MCP server (stdio) over the engine — no Tauri, no IDA
  recurse-debug/           cross-platform debugger (ptrace/Mach/Win32, breakpoints, stepping)
  recurse-eval/            headless eval harness (YAML-configured tiers)
justfile                 single entry point for both halves

recurse-agent — это только агент; статический анализ находится в recurse-static, а отладчик — в recurse-debug, поэтому агент не тянет за собой системный код, который не использует. Ни один крейт не зависит от Tauri, и каждый собирается/тестируется отдельно; recurse-eval управляет агентом в headless-режиме. Все они — члены workspace, поэтому один Cargo.lock и один target/ покрывают весь репозиторий.

Возможности

  • Рабочее пространство в стиле Cursor: список функций, вкладки дизассемблирования/строк/импортов, граф CFG, и боковая панель чата с агентом (переключается кнопкой Chat или Ctrl+L)
  • Страница Recon: информация о бинарнике, хеши MD5/SHA1/SHA256/CRC32, энтропия, связанные библиотеки, самодостаточный отчёт о защитах (RELRO / PIE / NX / canary / FORTIFY / RPATH — без внешнего checksec), и счётчики анализа
  • Переименование функций из списка (двойной клик или кнопка ✎); имена сохраняются в SQLite и отображаются в списке функций, аннотациях дизассемблирования и агенту
  • Обоснованный агент: каждый адрес — кликабельный объект (список функций, узлы графа, xrefs, аннотации декомпилятора) — а не вставленный текст, который модель может выдумать
  • Живая сессия анализа любого бинарника — включая файлы без расширения
  • Постоянная память проекта в SQLite с поиском FTS5/BM25 — переименования, находки и заметки переживают /clear и переоткрытие, и засевают следующую сессию
  • Headless-ядро (recurse-agent) с отладкой трассировки по ходам; один и тот же цикл агента работает в UI и в eval-харнессе
  • LLM-агент на базе OpenAI-совместимого эндпоинта (по умолчанию OpenRouter) с выбором модели; напрямую управляет сессией (disasm, xrefs, strings, imports, decompile)
  • Тёмный UI, построенный на Tailwind CSS v4 + shadcn/ui
  • Операция lift: поднимает функцию в VTIL-подобный IL деобфускации и выполняет над ней проходы распространения/свёртывания/удаления мёртвого кода/разрешения ветвлений по всей процедуре — полезно, когда дизассемблирование выглядит как диспетчер VM или цепочка непрозрачных предикатов (см. docs/vtil-lift.md)
  • Нативный декомпилятор: decompile рендерит C-подобный псевдокод (if/while структурирование, полное покрытие инструкций) из того же конвейера recurse-vtil — без внешних инструментов, r2 не требуется
  • Автономный сервер recurse-mcp: тот же Engine через MCP stdio для любого MCP-совместимого агента (Claude Code, Cursor, Claude Desktop, …) — без Tauri, без лицензии IDA, без Python-моста (см. docs/recurse-mcp.md)

Бэкенды анализа

Анализ проходит через единый трейт Engine (crates/recurse-static/src/engine.rs), поэтому движок — это выбор, а не жёсткая зависимость:

  • native (по умолчанию) — чисто-Rust парсинг ELF/PE/Mach-O и мультиархитектурное дизассемблирование (object + capstone): x86/x86-64, ARM, AArch64, MIPS, PowerPC, RISC-V, SPARC, SystemZ, M68K, BPF. Без дочерних процессов, без внешних инструментов, без LGPL в сборке. Включает декомпилятор (конвейер lift → optimize → structure из recurse-vtil — см. docs/vtil-lift.md) и операцию lift для VTIL-подобной деобфускации.
  • r2 (radare2) — поддерживается как опциональная альтернатива для установок, которым нужен свой, более полный декомпилятор или сырая консоль. Установите r2 и выберите его в качестве движка; он работает как отдельный процесс и никогда не линкуется и не поставляется вместе с Recurse.

Выбор через меню настроек, переменную окружения RECURSE_BACKEND или сохранённую конфигурацию. Агент получает один нейтральный к бэкенду инструмент analyze (functions, disasm, graph, lift, decompile, xrefs, strings, imports, info, плюс raw для консоли движка) — отфильтрованный до операций, которые реально поддерживает активный движок, поэтому raw (у native нет консоли) объявляется только когда доступен. UI потребляет канонические типы результатов, а не JSON какого-либо движка. См. docs/backends.md для описания трейта, выбора крейтов и обоснования лицензирования. Открытие большого бинарника происходит быстро, потому что анализ ленивый — обнаружение индексирует функции дёшево, а базовые блоки декодируются только при просмотре функции; см. docs/lazy-analysis.md.

Почему не просто MCP-to-IDA / не запустить всё в Claude Code?

Прикрутить MCP-сервер к IDA/Ghidra или вставлять дизассемблирование в CLI-агента работает для CTF с 5 функциями и разваливается на реальных бинарниках. Recurse — это специализированная среда, а не обёртка над чат-ботом:

  • Модель мира бинарника, а не скрейпинг текста. Функции, xrefs, строки и CFG — это первоклассное состояние, общее для агента и UI. Никакого повторного парсинга дампов pdF в контекст на каждом ходу, никаких выдуманных 0x401023.
  • Верификация > генерации. В RE нет npm test — верификация визуальна. Переименования агентом мгновенно распространяются на список функций, граф и декомпиляцию, так что человек подтверждает или отклоняет в один клик.
  • Создано для масштаба. Реальная малварь — это 10k функций. Инструменты по требованию + постоянная память побеждают сбрасывание полных декомпиляций до тех пор, пока контекст не переполнится.
  • Движок, пригодный для агентов. Скриптуемый, конвейеризуемый движок означает, что агенты могут выполнить 100 ходов, форкнуть, сбросить и сравнить — и вы действительно можете это выпустить. Нативный движок по умолчанию не требует внешних инструментов вообще.
  • Безопасность для малвари по умолчанию. Локальный-first, BYO-key/маршрутизация через OpenRouter и путь к офлайн-моделям — никакого принудительного выноса образцов в облачный чат-бот.

Предварительные требования

1. Основные тулчейны

ИнструментВерсия (протестировано)Установка
Node.js≥ 20 (использовалась 23.11)https://nodejs.org или nvm
npm≥ 10поставляется с Node.js
Rust≥ 1.77 (использовалась 1.97)https://rustup.rs
cargo—поставляется с Rust (rustup)

Проверка:

root@kitploit:~
node --version && npm --version && rustc --version && cargo --version

2. Движок анализа

Движок по умолчанию native — чистый Rust — устанавливать ничего не нужно. Чтобы использовать r2 (radare2) в качестве движка анализа, установите его и выберите (меню настроек или RECURSE_BACKEND=r2); Recurse управляет бинарником r2 в вашем PATH. r2 опционален, никогда не требуется для сборки и никогда не распространяется вместе с Recurse — используйте свою установку.

3. Системные зависимости Tauri для Linux

Debian/Ubuntu/Pop!_OS:

root@kitploit:~
sudo apt update
sudo apt install -y libwebkit2gtk-4.1-dev build-essential \
  curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev

Другие дистрибутивы: следуйте официальным предварительным требованиям Tauri.

4. Декомпилятор

Оба движка предоставляют его: native рендерит псевдокод через recurse-vtil (lift → optimize → structure — см. docs/vtil-lift.md), устанавливать ничего не нужно; r2 может предоставить свой, более полный декомпилятор, когда установлен его плагин.

Сборка

Зависимости приложения находятся в tauri/; Rust — из корня workspace. just оборачивает оба (см. just --list), или управляйте ими напрямую.

Разработка

root@kitploit:~
just dev
# equivalent: cd tauri && npm install && npm run tauri dev

Это запускает dev-сервер Vite и открывает окно Tauri. Первая компиляция занимает некоторое время (сборка Rust); последующие — быстрые.

Продакшн-бинарник

root@kitploit:~
just build
# equivalent: cd tauri && npm run tauri build

Бандл оказывается в target/release/bundle/ (целевой каталог workspace):

  • .deb / .rpm / .AppImage для Linux
  • автономный бинарник в target/release/recurse

На Arch и других rolling-дистрибутивах шаг AppImage требует одноразового локального исправления (upstream linuxdeploy отстаёт от тулчейна дистрибутива) — см. docs/linux-appimage-build.md.

Только фронтенд (без десктопной оболочки)

root@kitploit:~
just preview
# equivalent: cd tauri && npm run build && npm run preview

Проверки качества

root@kitploit:~
just lint        # cargo clippy --workspace + eslint
just fmt         # cargo fmt --all + prettier
just fmt-check   # verify without writing
just test        # cargo test --workspace + vitest

Эквивалентные прямые команды: cargo clippy --workspace --all-targets, cargo test --workspace в корне; npm run lint / npm run format / npm run build внутри tauri/.

Evals

Агент оценивается в headless-режиме на уровнях crackme (см. crates/recurse-eval/README.md). Уровни — это YAML: фильтры выбора по датасету или замороженный список hexid, плюс параметры запуска.

root@kitploit:~
just eval-fetch   # download the tier's binaries
just eval-test    # harness self-tests (no API key needed, no LLM calls)
just eval-run     # run the tier — the only way to execute an eval YAML

eval-run — это бинарник, а не тест, поэтому cargo test никогда не тратит деньги или время на агента. Эндпоинт + ключ указываются в crates/recurse-eval/.env (скопируйте .env.example). Каждый запуск пишет target/eval-traces/<tier>/<backend>/run.log (полное повествование) плюс один <hexid>.json на задачу с полной пошаговой беседой. Бэкенд (native или r2) выбирается для каждого запуска — см. README по eval.

LLM агента

Панель чата агента работает на любом OpenAI-совместимом эндпоинте. Настройте API-ключ, базовый URL и модель в диалоге Model & Provider внутри приложения (сохраняется в ~/.recurse/recurse.db), или через переменные окружения:

root@kitploit:~
# Hosted provider (default)
export RECURSE_LLM_API_KEY=sk-or-...   # or OPENROUTER_API_KEY
export RECURSE_LLM_ENDPOINT=https://openrouter.ai/api/v1/chat/completions  # optional
export RECURSE_LLM_MODEL=openrouter/auto  # optional

Локальные модели / пользовательский базовый URL

Направьте агента на любой локальный или самостоятельно размещённый OpenAI-совместимый сервер — Ollama, LM Studio, llama-server из llama.cpp, vLLM, text-generation-webui или удалённый шлюз. Укажите Base URL в диалоге (подойдёт как голый базовый URL, так и полный маршрут /chat/completions) и выберите модель из каталога этого сервера, или введите id модели (llama3.1:8b, qwen2.5-coder, …) напрямую:

root@kitploit:~
export RECURSE_LLM_ENDPOINT=http://localhost:11434/v1   # Ollama
export RECURSE_LLM_MODEL=llama3.1:8b
export RECURSE_LLM_API_KEY=           # usually unnecessary locally

Локальным эндпоинтам API-ключ не нужен: когда ключ пуст, запрос отправляется без заголовка Authorization, а список моделей читается из собственного {base}/models эндпоинта. Пользовательский эндпоинт считается настроенным без ключа, поэтому чат работает из коробки с локальным сервером.

Без учётных данных он откатывается к echo-клиенту, чтобы связка оставалась проверяемой.

Агент видит живой контекст бинарника (архитектура, разрядность, тип) и может управлять всей поверхностью анализа (дизассемблирование, xrefs, строки, импорты, декомпиляция) через сессию.

Лицензия

Apache-2.0 — © 2026 Aayush Khanna

Скачать инструмент