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

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

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

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

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

Категории

Все категории
Loading categories
Reversecore_MCP — Безопасный MCP-сервер, который предоставляет AI-агентам возможность выполнять автоматизированную обратную разработку, анализ вредоносного ПО, криминалистику, исследования уязвимостей и SAST — на базе Radare2, YARA, LIEF, Capstone и других. | Kitploit
Инструменты/GitHubGitHub/sjkim1127/reversecore_mcp
Управление индикаторами компрометации (IOC)Статический анализДинамический анализ (песочница)Анализ уязвимостейОбратная инженерияФаззингАнализ вредоносных программЦифровая криминалистикаАнализ Бинарных ФайловРеагирование на Инциденты
GitHubsjkim1127/reversecore_mcp
185184 дней назадПроверено Kitploit

Популярное

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

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

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

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

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

Reversecore_MCP

Безопасный MCP-сервер, который предоставляет AI-агентам возможность выполнять автоматизированную обратную разработку, анализ вредоносного ПО, криминалистику, исследования уязвимостей и SAST — на базе Radare2, YARA, LIEF, Capstone и других.

Репозиторий
Reversecore MCP

Reversecore MCP

Реверс-инжиниринг и анализ безопасности на основе ИИ через Model Context Protocol

MCP-сервер, который даёт ИИ-ассистентам, таким как Claude и Cursor, возможность выполнять реверс-инжиниринг, анализ вредоносных программ, исследование уязвимостей, цифровую криминалистику и аудит исходного кода с помощью естественного языка.


CI/CD Python License: MIT Tests Coverage FastMCP PyPI Docker OpenSSF Scorecard HVTrust

Watch the Demo SafeSkill Verified


Содержание

  • Что такое Reversecore MCP?
  • Архитектура
  • Каталог инструментов (120 инструментов)
  • Направляющие аналитические подсказки (22 режима)
  • Ресурсы MCP (11 URI)
  • Быстрый старт
  • Подключение к вашему AI-клиенту
  • Конфигурация
  • Модель безопасности
  • Разработка
  • Конвейер CI/CD
  • Архитектура сборки Docker
  • Системные требования
  • Структура проекта
  • Обработка ошибок
  • Добавление новых инструментов
  • Участие в разработке
  • Документация
  • Лицензия

Что такое Reversecore MCP?

Reversecore MCP — это сервер Model Context Protocol, который объединяет 120 аналитических инструментов в единый интерфейс, к которому ИИ-ассистенты могут обращаться через естественный язык.

Вместо изучения синтаксиса командной строки для десятка разных инструментов вы просто описываете, что вам нужно:``` "Decompile the main function of this malware sample, extract all network IOCs, map the behavior to MITRE ATT&CK, and generate a triage report."

root@kitploit:~
ИИ-ассистент разбивает это на вызовы инструментов:```
r2_decompile("sample.exe", "main")
  → extract_iocs("sample.exe")
    → add_mitre_technique(technique_id="T1071.001", ...)
      → create_analysis_report(template_type="quick_triage")

Each tool returns a structured ToolResult (either ToolSuccess or ToolError) with typed data that the AI can reason about, chain into follow-up queries, or render for the user.

What it covers


Architecture```

AI Client (Claude / Cursor / any MCP-compatible client) │ MCP Protocol (stdio or HTTP/SSE) ▼ ┌──────────────────────────────────────────────────────┐ │ FastMCP 3.4.4 Server │ │ 120 registered tools · Fully async │ │ Python 3.10–3.12 │ ├────────────────────┬─────────────────────────────────┤ │ Guided Prompts │ Dynamic Resources │ │ (22 analysis │ (11 URI-based: per-binary │ │ modes) │ strings, IOCs, ASM, CFG, …) │ ├────────────────────┴─────────────────────────────────┤ │ Core Infrastructure │ │ Config · Security · Validators · Exceptions (17) │ │ R2 Pool · Metrics · Memory (SQLite) · Task Queue │ │ MITRE Mapper · Evidence Engine · Resilience Layer │ │ Arch Registry (x86/ARM/MIPS/RISC-V/PPC) │ │ Result Cache (SHA256) · Analysis Cache (Redis+SQL) │ │ SAST (Python AST + C/C++ Regex) · Plugin System │ ├──────────────────────────────────────────────────────┤ │ Analysis Engines │ │ Radare2 6.0.4 │ YARA 4.3.1 · LIEF · Capstone │ │ r2ghidra │ CAPA · angr · Qiling │ │ Volatility3 · Scapy│ DIE · Binwalk · Sleuth Kit │ │ pwntools · ROPgadget│ Keystone (assembler) │ └──────────────────────────────────────────────────────┘

root@kitploit:~
### Core Infrastructure (37 модулей)

Каталог `reversecore_mcp/core/` содержит общую инфраструктуру, на которой построены все инструменты:

| Модуль | Назначение |
|---|---|
| `config.py` | Pydantic BaseSettings с 34+ переменными окружения |
| `security.py` | Санитизация входных данных, проверка аргументов команд |
| `validators.py` | Проверка путей к файлам и бинарным файлам с защитой от TOCTOU, разрешение символических ссылок |
| `r2_pool.py` | Потокобезопасный пул соединений Radare2 с настраиваемым размером |
| `r2_helpers.py` | Структурированный разбор вывода Radare2 |
| `metrics.py` | Время выполнения по каждому инструменту, счётчики вызовов, частота ошибок, статистика кэша |
| `memory.py` | Асинхронное хранилище AI-памяти на базе SQLite для сохранения результатов анализа между сеансами |
| `mitre_mapper.py` | Движок сопоставления идентификаторов техник MITRE ATT&CK |
| `evidence.py` | Система классификации доказательств: `OBSERVED`, `INFERRED`, `POSSIBLE` |
| `resilience.py` | Паттерны декораторов: повторные попытки, circuit-breaker и тайм-ауты |
| `task_queue.py` | Фоновая очередь задач через Redis + arq |
| `extension_registry.py` | Регистрация плагинов и управление жизненным циклом |
| `arch_registry.py` | Мультиархитектурное сопоставление (x86, x86_64, ARM32, ARM64, MIPS, RISC-V, PPC → r2 arch/bits/registers) |
| `result_cache.py` | Декоратор кэширования результатов инструментов на основе SHA256 (`@cache_tool_result`) |
| `analysis_cache.py` | Многоуровневый кэш декомпиляции (L1: Redis, L2: SQLite) |
| `result.py` | Pydantic-модели `ToolSuccess` / `ToolError` |
| `exceptions.py` | 17 классов исключений с кодами ошибок `RCMCP-E*` |
| `decorators.py` | `@log_execution`, `@track_metrics` |
| `error_handling.py` | Декоратор `@handle_tool_errors` |
| `error_formatting.py` | Форматирование структурированных ответов об ошибках |
| `execution.py` | Безопасное выполнение подпроцессов с тайм-аутом и ограничениями вывода |
| `command_spec.py` | Спецификация команд для вызовов подпроцессов |
| `loader.py` | Динамический загрузчик модулей инструментов |
| `plugin.py` | Базовый класс плагина |
| `extension.py` | Базовый класс расширения |
| `container.py` | Поддержка выполнения в контейнере/песочнице |
| `audit.py` | Аудит-логирование |
| `binary_cache.py` | Кэширование бинарных файлов |
| `json_utils.py` | Сериализация JSON через orjson (в 3–5 раз быстрее стандартного json) |
| `logging_config.py` | Структурированное логирование на основе Loguru |
| `report_generator.py` | Движок рендеринга отчётов (Markdown, PDF через xhtml2pdf) |
| `resource_manager.py` | Управление жизненным циклом ресурсов MCP |
| `sast/python_ast_scanner.py` | Сканер уязвимостей на основе AST Python |
| `sast/regex_scanner.py` | Сканер уязвимостей C/C++ на основе регулярных выражений |
| `sast/rule_manager.py` | Загрузка и управление правилами SAST |

---

## Каталог инструментов (120 инструментов)

Каждый инструмент возвращает структурированный `ToolResult` — либо `ToolSuccess` с типизированным `data`, либо `ToolError` с кодом ошибки `RCMCP-E*`. Инструменты сгруппированы в 8 плагинов.

---

### 🔍 Плагин статического анализа (24 инструмента)

| # | Инструмент | Бэкенд | Описание |
|---|---|---|---|
| 1 | `run_strings` | CLI `strings` | Извлечение ASCII/Unicode-строк с настраиваемой минимальной длиной |
| 2 | `run_binwalk` | Binwalk | Глубокое сканирование прошивок на наличие встроенных сигнатур и файловых систем |
| 3 | `run_binwalk_extract` | Binwalk | Извлечение встроенных файлов, обнаруженных binwalk |
| 4 | `parse_binary_with_lief` | LIEF | Полный разбор PE/ELF/Mach-O: заголовки, секции, импорт/экспорт, TLS |
| 5 | `detect_packer` | DIE | Быстрое определение упаковщика/компилятора |
| 6 | `detect_packer_deep` | DIE (`diec`) | Глубокий анализ упаковщика/протектора через Detect It Easy |
| 7 | `run_capa` | CAPA (Mandiant FLARE) | Определение возможностей — «шифрует данные», «создаёт персистентность» и т. д. |
| 8 | `run_capa_quick` | CAPA | Быстрое сканирование возможностей с подмножеством правил |
| 9 | `generate_signature` | Radare2 | Генерация сигнатур бинарных файлов для идентификации |
| 10 | `generate_yara_rule` | Radare2 + YARA | Генерация YARA-правил обнаружения по бинарным паттернам |
| 11 | `generate_advanced_yara_rule` | Radare2 + YARA | Продвинутые YARA-правила с поведенческими индикаторами |
| 12 | `scan_for_versions` | LIEF + strings | Поиск встроенных строк версий в бинарном файле |
| 13 | `extract_rtti_info` | Radare2 | Извлечение C++ RTTI (информации о типах во время выполнения) |
| 14 | `diff_binaries` | Radare2 | Семантическое сравнение двух версий бинарных файлов |
| 15 | `analyze_variant_changes` | Radare2 | Анализ изменений между вариантами бинарных файлов |
| 16 | `match_libraries` | Radare2 | Идентификация статически слинкованных библиотек по отпечаткам функций |
| 17 | `patch_diff_1day` | Radare2 + эвристики | Автоматический анализ patch diff для исследования 1-day уязвимостей |
| 18 | `analyze_patch_diff_auto` | Radare2 + логический вывод | Автоматический вывод уязвимостей из patch diff |
| 19 | `emulate_binary` | Radare2 ESIL | Эмуляция кода с трассировкой регистров и памяти |
| 20 | `generate_fuzzing_harness` | Qiling + AFL++ | Генерация фаззинг-харнеса, нацеленного на конкретную функцию |
| 21 | `run_fuzzing_campaign` | AFL++ | Запуск полной фаззинг-кампании со сбором крашей |
| 22 | `triage_crash` | GDB | Разбор крашей и оценка эксплуатируемости |
| 23 | `verify_path_and_get_args` | angr | Символьное выполнение — доказательство достижимости пути и вычисление конкретных входных данных |
| 24 | `taint_trace` | Radare2 + angr | Анализ потока данных от источников к стокам (taint analysis) |

---

### 🔐 Плагин аудита исходного кода (1 инструмент)

| # | Инструмент | Бэкенд | Описание |
|---|---|---|---|
| 25 | `audit_source_code` | AST + Regex | Сканирование AST Python + сканирование C/C++ по регулярным выражениям для поиска опасных паттернов |

---

### 🛠️ Плагин общих утилит (20 инструментов)

**Файловые операции (5 инструментов)**

| # | Инструмент | Описание |
|---|---|---|
| 26 | `run_file` | Определение типа файла, архитектуры и компилятора |
| 27 | `copy_to_workspace` | Копирование файла в рабочее пространство анализа |
| 28 | `create_directory` | Создание каталога в рабочем пространстве |
| 29 | `list_workspace` | Список всех файлов в рабочем пространстве |
| 30 | `scan_workspace` | Полное сканирование рабочего пространства с метаданными файлов |

**Объяснение патчей (1 инструмент)**

| # | Инструмент | Описание |
|---|---|---|
| 31 | `explain_patch` | Объяснение бинарного патча на естественном языке |

**Ассемблер (1 инструмент)**

| # | Инструмент | Бэкенд | Описание |
|---|---|---|---|
| 32 | `assemble_instructions` | Keystone | Ассемблирование инструкций в машинный код (x86, ARM, MIPS и др.) |

**Управление AI-памятью (11 инструментов)**

Эти инструменты позволяют AI сохранять и извлекать результаты анализа между сеансами с помощью асинхронной базы данных SQLite:

| # | Инструмент | Описание |
|---|---|---|
| 33 | `create_memory_session` | Начать новый сеанс памяти для анализа |
| 34 | `store_analysis_finding` | Сохранить результат анализа с тегами |
| 35 | `query_analysis_memories` | Поиск прошлых результатов по запросу |
| 36 | `get_binary_analysis_context` | Получить весь контекст для конкретного бинарного файла |
| 37 | `tag_analysis_session` | Добавить теги к сеансу для организации |
| 38 | `search_memories_by_tag` | Найти сеансы/результаты по тегу |
| 39 | `delete_analysis_session` | Удалить сеанс и его результаты |
| 40 | `cleanup_expired_sessions` | Удалить сеансы старше заданного порога |
| 41 | `list_analysis_sessions` | Список всех активных сеансов |
| 42 | `export_memory_store` | Экспорт всех воспоминаний в переносимый формат |
| 43 | `import_memory_store` | Импорт воспоминаний из файла экспорта |

**Мониторинг сервера (2 инструмента)**

| # | Инструмент | Описание |
|---|---|---|
| 44 | `get_server_health` | Время работы, использование памяти, загруженные инструменты, версия Python |
| 45 | `get_tool_metrics` | Счётчики вызовов по каждому инструменту, среднее время выполнения, частота ошибок, попадания/промахи кэша |

---

### ⚙️ Плагин Radare2 и r2ghidra (30 инструментов)

Все инструменты Radare2 используют потокобезопасный пул соединений (`r2_pool.py`), который автоматически управляет сеансами r2pipe.

| # | Инструмент | Описание |
|---|---|---|
| 46 | `Radare2_open_file` | Открыть бинарный файл в Radare2 |
| 47 | `Radare2_close_file` | Закрыть сеанс Radare2 |
| 48 | `Radare2_list_open_files` | Список текущих открытых файлов |
| 49 | `Radare2_analyze_binary` | Запустить полный автоматический анализ (`aaa`) |
| 50 | `Radare2_list_functions` | Список всех обнаруженных функций |
| 51 | `Radare2_disassemble_function` | Дизассемблировать конкретную функцию |
| 52 | `Radare2_disassemble_address` | Дизассемблировать по конкретному адресу |
| 53 | `Radare2_decompile_function` | Декомпиляция через r2ghidra (движок Ghidra, встроенный в r2, без JVM) |
| 54 | `Radare2_list_exports` | Список экспортируемых символов |
| 55 | `Radare2_list_imports` | Список импортируемых функций |
| 56 | `Radare2_list_sections` | Список секций бинарного файла с энтропией |
| 57 | `Radare2_list_strings` | Список строк, найденных в бинарном файле |
| 58 | `Radare2_find_cross_references` | Отслеживание вызовов функций и ссылок на данные |
| 59 | `Radare2_search_bytes` | Поиск байтовых паттернов в бинарном файле |
| 60 | `Radare2_get_binary_info` | Получить метаданные бинарного файла (архитектура, формат, порядок байтов) |
| 61 | `Radare2_execute_command` | Выполнить сырую команду Radare2 |
| 62 | `Radare2_esil_emulate` | Эмуляция ESIL по конкретному адресу |
| 63 | `Radare2_get_hexdump` | Шестнадцатеричный дамп по виртуальному адресу |
| 64 | `Radare2_get_cfg_data` | Извлечение данных графа потока управления |
| 65 | `Radare2_generate_cfg_png` | Генерация CFG в виде PNG-изображения |
| 66 | `Radare2_generate_callgraph` | Генерация графа вызовов функций |
| 67 | `Radare2_recover_structures` | Автоматическое восстановление C-структур и сохранение в базу данных аннотаций |
| 68 | `Radare2_decompile_with_r2ghidra` | Высококачественная декомпиляция на C с кэшированием |
| 69 | `Radare2_annotate_binary` | Добавить аннотации к бинарному файлу |
| 70 | `Radare2_get_annotations` | Получить аннотации |
| 71 | `Radare2_export_annotations` | Экспорт аннотаций в файл |
| 72 | `Radare2_import_annotations` | Импорт аннотаций из файла |
| 73 | `Radare2_detect_crypto_constants` | Обнаружение криптографических констант (AES S-box и т. д.) |
| 74 | `Radare2_find_gadgets` | Поиск ROP/JOP-гаджетов |
| 75 | `Radare2_calculate_entropy` | Расчёт энтропии по каждой секции |

---

### 🦠 Плагин анализа вредоносного ПО (9 инструментов)

| # | Инструмент | Бэкенд | Описание |
|---|---|---|---|
| 76 | `dormant_detector` | Radare2 + эвристики | Поиск скрытых бэкдоров, функций-сирот, таймеров и логических бомб |
| 77 | `adaptive_vaccine` | YARA + Radare2 | Генерация YARA-правил обнаружения + бинарных патчей для нейтрализации угроз |
| 78 | `vulnerability_hunter` | Radare2 + анализ | Обнаружение опасных API-паттернов (strcpy, sprintf) и цепочек ROP-гаджетов |
| 79 | `extract_iocs` | Regex + LIEF | Извлечение IP-адресов, URL, доменов, хэшей, ключей реестра, криптоадресов |
| 80 | `run_yara` | YARA | Сканирование с пользовательскими файлами правил и встроенными наборами правил |
| 81 | `generate_poc_exploit` | pwntools | Генерация кода PoC-эксплойта |
| 82 | `build_rop_chain` | ROPgadget + pwntools | Автоматическое построение ROP-цепочек |
| 83 | `autonomous_vuln_hunt` | Radare2 + angr | Автономный конвейер поиска уязвимостей |
| 84 | `analyze_heap_exploit` | Radare2 + эвристики | Анализ эксплойтов кучи (UAF, double-free, переполнение) |

---

### 🕵️ Плагин цифровой криминалистики (22 инструмента)

**Криминалистика памяти (6 инструментов)**

| # | Инструмент | Бэкенд | Описание |
|---|---|---|---|
| 85 | `memory_analyze` | Volatility3 | Полный анализ дампа памяти |
| 86 | `memory_list_processes` | Volatility3 | Список запущенных процессов из дампа памяти |
| 87 | `memory_detect_injections` | Volatility3 | Обнаружение инъекций кода в память процессов |
| 88 | `memory_extract_strings` | Volatility3 | Извлечение строк из памяти процессов |
| 89 | `memory_dump_module` | Volatility3 | Дамп загруженного модуля из памяти |
| 90 | `memory_list_symbols` | Volatility3 | Список символов из памяти |

**Криминалистика дисков (6 инструментов)**

| # | Инструмент | Бэкенд | Описание |
|---|---|---|---|
| 91 | `disk_list_partition` | Sleuth Kit | Список разделов диска |
| 92 | `disk_list_files` | Sleuth Kit | Список файлов в образе диска |
| 93 | `disk_recover_deleted` | Sleuth Kit | Восстановление удалённых файлов |
| 94 | `disk_analyze_mft` | Sleuth Kit | Анализ NTFS Master File Table |
| 95 | `disk_extract_file` | Sleuth Kit | Извлечение файла из образа диска |
| 96 | `disk_hash_verify` | Sleuth Kit | Проверка целостности файла по хэшу |

**Сетевая криминалистика (5 инструментов)**

| # | Инструмент | Бэкенд | Описание |
|---|---|---|---|
| 97 | `pcap_analyze` | Scapy | Анализ PCAP: разбивка по протоколам, аномалии |
| 98 | `pcap_list_connections` | Scapy | Список всех сетевых соединений |
| 99 | `pcap_extract_dns` | Scapy | Извлечение DNS-запросов и ответов |
| 100 | `pcap_extract_c2` | Scapy | Выявление потенциальной C2-коммуникации |
| 101 | `pcap_reconstruct_stream` | Scapy | Реконструкция TCP-потоков |

**Анализ артефактов (5 инструментов)**

| # | Инструмент | Бэкенд | Описание |
|---|---|---|---|
| 102 | `artifact_collect` | Пользовательские парсеры | Сбор истории браузера, кустов реестра, журналов событий, prefetch |
| 103 | `artifact_correlate_ioc` | Пользовательские парсеры | Сопоставление артефактов с известными IOC |
| 104 | `artifact_generate_yara` | YARA | Генерация YARA-правил по паттернам артефактов |
| 105 | `artifact_timeline` | Пользовательские парсеры | Построение таймлайна из нескольких источников артефактов |
| 106 | `artifact_report` | Пользовательские парсеры | Генерация отчёта по анализу артефактов |

---

### 📝 Плагин формирования отчётов (14 инструментов)

| # | Инструмент | Описание |
|---|---|---|
| 107 | `get_system_time` | Получить временную метку сервера (предотвращает выдумывание дат AI) |
| 108 | `set_timezone` | Установить часовой пояс для отчётов |
| 109 | `get_timezone_info` | Получить информацию о текущем часовом поясе |
| 110 | `start_report_session` | Начать сеанс анализа с замером времени и уникальным ID |
| 111 | `end_report_session` | Завершить сеанс: вычислить длительность, зафиксировать списки IOC/ATT&CK |
| 112 | `get_report_session_status` | Проверить статус сеанса |
| 113 | `list_report_sessions` | Список всех активных/завершённых сеансов |
| 114 | `add_ioc` | Сбор и тегирование IOC в ходе активного сеанса |
| 115 | `add_analysis_note` | Добавление категоризированных заметок (finding, warning, behavior) |
| 116 | `add_mitre_technique` | Фиксация идентификаторов техник MITRE ATT&CK |
| 117 | `set_severity` | Установка уровня серьёзности сеанса (low/medium/high/critical) |
| 118 | `create_analysis_report` | Рендеринг отчёта в 4 режимах: `full_analysis`, `quick_triage`, `ioc_summary`, `executive_brief` |
| 119 | `generate_vex_report` | Генерация отчёта VEX (Vulnerability Exploitability eXchange) |
| 120 | `generate_sigma_rule` | Генерация правил обнаружения SIGMA |

---

## Управляемые промпты для анализа (22 режима)

Промпты — это готовые рабочие процессы анализа, которые задают AI структурированную роль, пошаговые последовательности использования инструментов и правила классификации доказательств. Вы активируете их, указав имя промпта в вашем AI-клиенте.

### Анализ вредоносного ПО (9 промптов)

| Промпт | Вариант использования |
|---|---|
| `full_analysis_mode` | Полный 6-фазный анализ: триаж → дизассемблирование → поведение → сеть → персистентность → отчёт |
| `malware_analysis_mode` | Целенаправленный анализ вредоносного ПО с классификацией угроз |
| `basic_analysis_mode` | Быстрый триаж для первичной оценки и быстрых вердиктов |
| `apt_hunting_mode` | Поиск APT-специфичных активностей: горизонтальное перемещение, персистентность, эксфильтрация данных |
| `malware_defense_mode` | Ориентация на защиту: генерация правил обнаружения и мер противодействия |
| `unpacking_mode` | Анализ и обход упаковки/обфускации (Themida, VMProtect, UPX) |
| `c2_extraction_mode` | Извлечение и анализ инфраструктуры C2-коммуникации |
| `ransomware_triage_mode` | Триаж программ-вымогателей: анализ шифрования, оценка возможности восстановления ключей |
| `code_similarity_mode` | Сравнение бинарных файлов на предмет схожести кода и общего происхождения |

### Security Research (6 промптов)

| Промпт | Вариант использования |
|---|---|
| `vulnerability_research_mode` | Поиск ошибок: переполнения буфера, UAF, инъекции команд |
| `crypto_analysis_mode` | Анализ криптографических реализаций и выявление слабостей |
| `firmware_analysis_mode` | IoT/встраиваемые прошивки: извлечение binwalk, UART-строки, жёстко заданные учётные данные |
| `patch_analysis_mode` | Анализ исправлений безопасности и регрессионное тестирование |
| `source_code_audit_mode` | Аудит безопасности исходного кода (Python, C, C++) |
| `autonomous_vuln_hunt_mode` | Автономный конвейер поиска уязвимостей |

### CVE Research и разработка эксплойтов (5 промптов)

| Промпт | Вариант использования |
|---|---|
| `taint_analysis_mode` | Анализ потока данных: автоматическое обнаружение путей источник→сток |
| `heap_exploit_mode` | Анализ эксплойтов кучи и генерация PoC |
| `fuzzing_mode` | Настройка фаззинг-кампании и триаж крашей |
| `patch_diff_auto_mode` | Автоматический patch diff для исследования 1-day уязвимостей |
| `cve_discovery_pipeline_mode` | Полный конвейер обнаружения CVE: от patch diff до рабочего эксплойта |

### Прочие (2 промпта)

| Промпт | Вариант использования |
|---|---|
| `game_analysis_mode` | Анализ игровых клиентов: обнаружение анти-чита, реверс протоколов, инспекция памяти |
| `report_generation_mode` | Структурированный сеанс работы с сопоставлением техник MITRE ATT&CK |

> **Как работают промпты:** Каждый промпт задаёт AI структурированную роль аналитика. Он включает контрольные точки рассуждений по цепочке мыслей (chain-of-thought), где AI должен остановиться и оценить ситуацию перед продолжением, а также правила классификации доказательств, которые не позволяют AI выдавать догадки за факты. Каждый вывод должен быть помечен как `OBSERVED` (непосредственно проверено), `INFERRED` (логически выведено из статического анализа) или `POSSIBLE` (требует дальнейшей проверки).

---

## Ресурсы MCP (11 URI)

Ресурсы — это конечные точки только для чтения, к которым AI-клиенты могут обращаться через шаблоны URI. Они дополняют инструменты, предоставляя структурированные данные без необходимости явных вызовов инструментов.

### Статические ресурсы

| URI | Описание |
|---|---|
| `reversecore://guide` | Руководство по использованию инструментов с правилами путей к файлам и лучшими практиками |
| `reversecore://guide/structures` | Техническое руководство по восстановлению структур и анализу перекрёстных ссылок |
| `reversecore://tools` | Полная документация по всем 120 зарегистрированным инструментам |
| `reversecore://logs` | Журналы приложения (последние 100 строк) |

### Динамические ресурсы (виртуальная файловая система для каждого бинарного файла)

Эти URI разрешаются для каждого бинарного файла и по запросу вызывают соответствующие инструменты анализа:

| Шаблон URI | Описание |
|---|---|
| `reversecore://{filename}/strings` | Извлечь все строки из бинарного файла |
| `reversecore://{filename}/iocs` | Извлечь IOC (IP-адреса, URL, email, хэши) |
| `reversecore://{filename}/func/{address}/code` | Декомпилированный псевдо-C код функции |
| `reversecore://{filename}/func/{address}/asm` | Дизассемблированный код функции |
| `reversecore://{filename}/func/{address}/cfg` | Граф потока управления в формате Mermaid |
| `reversecore://{filename}/functions` | Список всех функций в бинарном файле |
| `reversecore://{filename}/dormant_detector` | Результаты анализа dormant detector |

---

## Быстрый старт

### Вариант 1 — PyPI (самый простой)```bash
pip install reversecore-mcp
reversecore-mcp

Предварительные требования: Radare2 должен быть установлен в вашей системе (r2 --version). YARA устанавливается автоматически через yara-python.

Вариант 2 — Docker (рекомендуется для полной функциональности)

Все аналитические движки (Radare2, r2ghidra, YARA, Binwalk, Sleuth Kit, GDB и т. д.) предустановлены:```bash docker run -i --rm
-v /path/to/your/samples:/app/workspace
-e REVERSECORE_WORKSPACE=/app/workspace
-e MCP_TRANSPORT=stdio
ghcr.io/sjkim1127/reversecore_mcp:latest

root@kitploit:~
### Вариант 3 — Сборка из исходного кода (Docker Compose)```bash
git clone https://github.com/sjkim1127/Reversecore_MCP.git
cd Reversecore_MCP
./scripts/run-docker.sh        # auto-detects Intel / Apple Silicon

Или вручную:```bash docker compose --profile x86 up -d # Intel/AMD docker compose --profile arm64 up -d # Apple Silicon (M1/M2/M3)

root@kitploit:~
### Вариант 4 — Python (локальная разработка)```bash
git clone https://github.com/sjkim1127/Reversecore_MCP.git
cd Reversecore_MCP
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python -m reversecore_mcp.server

Предварительные требования для локального режима: Radare2 должен быть установлен в вашей системе (r2 --version). Отдельные программные модули инструментов (YARA, LIEF, Capstone и т.д.) устанавливаются через pip. Для полной поддержки криминалистики вам также понадобятся Volatility3, Scapy и Sleuth Kit.


Подключение к вашему AI-клиенту

Добавьте конфигурацию сервера в настройки вашего IDE-клиента (например, ~/.cursor/mcp.json или claude_desktop_config.json).

⚡ Вариант 1: Docker Exec режим (рекомендуется)

Если у вас запущен контейнер через Docker Compose, этот режим направляет stdio напрямую в работающий контейнер. Нулевая задержка запуска, постоянная память и полная доступность инструментов.```json { "mcpServers": { "Reversecore_MCP": { "command": "docker", "args": [ "exec", "-i", "-e", "MCP_TRANSPORT=stdio", "reversecore-mcp-arm64", "python", "-m", "reversecore_mcp.server" ] } } }

root@kitploit:~
> Замените `reversecore-mcp-arm64` на `reversecore-mcp`, если вы на Intel/AMD.

---

### 🌐 Вариант 2: режим SSE HTTP

Для сетевой потоковой передачи (Server-Sent Events):```json
{
  "mcpServers": {
    "Reversecore_MCP": {
      "url": "http://localhost:8000/mcp/sse"
    }
  }
}

📦 Вариант 3: Stdio-режим (Docker по требованию)

Запускает новый изолированный контейнер для каждого сеанса:

🍎 macOS```json { "mcpServers": { "reversecore": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/Users/YOUR_USERNAME/samples:/app/workspace", "-e", "REVERSECORE_WORKSPACE=/app/workspace", "-e", "MCP_TRANSPORT=stdio", "ghcr.io/sjkim1127/reversecore_mcp:latest" ] } } } ```
🐧 Linux```json { "mcpServers": { "reversecore": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/home/YOUR_USERNAME/samples:/app/workspace", "-e", "REVERSECORE_WORKSPACE=/app/workspace", "-e", "MCP_TRANSPORT=stdio", "ghcr.io/sjkim1127/reversecore_mcp:latest" ] } } } ```
🪟 Windows```json { "mcpServers": { "reversecore": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "C:/samples:/app/workspace", "-e", "REVERSECORE_WORKSPACE=/app/workspace", "-e", "MCP_TRANSPORT=stdio", "ghcr.io/sjkim1127/reversecore_mcp:latest" ] } } } ```

⚠️ Важно — пути к файлам внутри Docker

Ваша локальная папка монтируется в /app/workspace внутри контейнера. Всегда ссылайтесь на файлы только по имени файла, а не по вашему локальному полному пути.

❌ Неправильно✅ Правильно
r2_decompile("/Users/john/samples/mal.exe")r2_decompile("mal.exe")

Конфигурация

Все настройки можно задать через переменные окружения или файл .env (см. .env.example). Настройки управляются через Pydantic BaseSettings с префиксом REVERSECORE_.

Основные настройки

Настройки HTTP-режима

Настройки Radare2

Настройки песочницы

Хранилище и очередь

Журналирование

Плагины и SAST

VariableDefaultDescription
REVERSECORE_PLUGIN_DIRS""Список каталогов для поиска плагинов расширений через запятую
REVERSECORE_SAST_RULES_PATH""Путь к пользовательскому файлу правил SAST в формате YAML

Модель безопасности

Безопасность реализована по принципу эшелонированной защиты (defense-in-depth) с защитой на нескольких уровнях:

Безопасность входных данных и путей

Сеть и аутентификация

Контейнер и среда выполнения

КонтрольРеализация
Выполнение без root-правЗапускается от имени appuser (UID 1000) с минимальными возможностями
Лимиты ресурсовDocker Compose применяет лимиты CPU (2.0) и памяти (4 ГБ)
Изоляция песочницы

Средства контроля безопасности CI/CD

Структурированная обработка ошибок

Все 17 классов исключений содержат коды ошибок RCMCP-E* для программной обработки. Полную иерархию см. в разделе Error Handling.


Разработка

Настройка```bash

git clone https://github.com/sjkim1127/Reversecore_MCP.git cd Reversecore_MCP python -m venv venv && source venv/bin/activate pip install -r requirements.txt pip install -r requirements-dev.txt pre-commit install # installs Ruff, Bandit, Gitleaks hooks

root@kitploit:~
### Тестирование```bash
# Full test suite with coverage report
pytest tests/ -v

# Unit tests only (fast, no external dependencies)
pytest tests/unit/ -v

# Integration tests (requires Docker)
pytest tests/integration/ -v

# Run with coverage threshold enforcement
pytest tests/unit/ --cov=reversecore_mcp --cov-fail-under=80

# Run a specific test
pytest tests/unit/test_cli_tools.py::TestRunFile::test_success -v

# Security boundary tests
pytest tests/ -m security -v

# Benchmarks
pytest tests/ -m benchmark -v

Статус тестов:

  • ✅ 1,957 модульных тестов проходят на Python 3.10 / 3.11 / 3.12
  • 📊 87% покрытие кода (минимум 80% обеспечивается в CI)
  • 🔒 Ноль находок Bandit
  • ⚡ Полностью асинхронный тестовый набор через pytest-asyncio

Маркеры тестов:

Качество кода```bash

ruff check reversecore_mcp/ # Lint (E, W, F, I, B, C4, UP rules) ruff format reversecore_mcp/ # Format mypy reversecore_mcp/ # Type check (0 errors across 108 files) bandit -r reversecore_mcp/ # Security scan (all severities) pip-audit # Dependency CVE scan

root@kitploit:~
### Хуки Pre-commit

Следующие хуки запускаются автоматически при каждом коммите:

1. **Ruff** — линтинг с авто-исправлением + проверка форматирования
2. **trailing-whitespace** — удаляет завершающие пробелы
3. **end-of-file-fixer** — гарантирует, что файлы заканчиваются новой строкой
4. **check-yaml / check-json** — проверяет синтаксис YAML/JSON
5. **check-added-large-files** — блокирует файлы размером > 1 МБ
6. **check-merge-conflict** — обнаруживает неразрешённые маркеры слияния
7. **detect-private-key** — предотвращает случайную фиксацию ключей
8. **Bandit** — сканирование безопасности Python

---

## Конвейер CI/CD

Каждый пуш в `main` запускает 11 задач конвейера. Все они должны быть успешно пройдены перед развёртыванием.```
 Lint & Security Gate              Unit Tests (Python Matrix)
   ├─ Gitleaks (secret scan)         ├─ pytest 3.10 --cov-fail-under=80
   ├─ Hadolint (Dockerfile lint)     ├─ pytest 3.11 --cov-fail-under=80
   ├─ Ruff check + format            └─ pytest 3.12 --cov-fail-under=80
   ├─ Mypy type check (108 files)
   ├─ Bandit (all severities)      Wheel Smoke Test
   ├─ pip-audit (no CVEs)            └─ Build wheel → install in /tmp
   └─ Security boundary tests            → verify plugin discovery
                                          → assert __file__ under sys.prefix
 CodeQL Analysis
   └─ Python SAST                  Docker Verification
                                     ├─ Build reversecore-mcp:ci
 Exploit Safety Gate                 ├─ Trivy container scan
   ├─ Bandit on POC templates        ├─ Image size check (< 5 GB)
   ├─ Hypothesis DAST fuzzing        ├─ CLI tool verification
   ├─ Performance benchmarks         ├─ Integration tests in container
   └─ Container isolation test       └─ E2E tool invocation

 In-Container Smoke Test           Build Base Image (amd64 + arm64)
   ├─ Copy test ELF into container   ├─ Compile YARA 4.3.1
   └─ Run scripts/smoke_test.py     ├─ Compile Radare2 6.0.4
                                     ├─ Compile r2ghidra
 Deploy (amd64 + arm64)             └─ Push to GHCR
   ├─ Build app image
   ├─ Push to GHCR                 Merge Manifests
   └─ Trivy rescan on published     └─ Multi-arch manifest → :latest

Политика нулевого обхода: сбои CI/CD никогда не устраняются изменением конфигурации пайплайна. Первопричины всегда исправляются непосредственно в исходном коде или зависимостях.


Архитектура Docker-сборки

Docker-сборка использует двухуровневый подход, чтобы поддерживать приемлемое время сборки:

Уровень 1: Базовый образ (Dockerfile.base)

Многоступенчатая сборка, которая компилирует из исходников все медленно собираемые и редко изменяемые зависимости:``` compiler-toolchain (python:3.12-slim-bookworm + build tools) ├── compiler-yara (YARA 4.3.1 from source) [parallel] ├── compiler-r2 (Radare2 6.0.4 from source) [parallel] │ └── compiler-r2ghidra (r2ghidra plugin) [sequential] └── compiler-pip (pip install into /opt/venv) [parallel]

base (final runtime: python:3.12-slim-bookworm) ├── Runtime packages: file, binutils, gdb, binwalk, graphviz, nasm, sleuthkit ├── /opt/yara (compiled YARA) ├── /opt/radare2 (compiled r2 + r2ghidra) ├── /opt/venv (Python packages) └── Non-root user: appuser (UID 1000)

root@kitploit:~
Этот образ пересобирается только при изменении версий инструментов. Время сборки: ~12 минут.

### Слой 2: Образ приложения (`Dockerfile`)

Наследуется от базового образа и копирует код приложения:```
FROM base image
    ├── COPY reversecore_mcp/ (application code)
    ├── COPY scripts/ (smoke test, benchmarks)
    ├── pip install any new requirements
    ├── Security package upgrades
    └── CMD ["python", "-m", "reversecore_mcp.server"]

Время сборки: ~60 секунд.

Docker Compose

Три сервиса с профилями, зависящими от архитектуры:

Ограничения ресурсов: 2,0 ядра ЦП, 4 ГБ памяти на контейнер.


Системные требования


Структура проекта```

reversecore_mcp/ ├── core/ # Infrastructure layer (37 modules) │ ├── config.py # Pydantic BaseSettings (34+ env vars) │ ├── exceptions.py # Exception hierarchy (17 classes, RCMCP-E* codes) │ ├── security.py # Input sanitization & command arg validation │ ├── validators.py # Path validators (TOCTOU-hardened, symlink-safe) │ ├── r2_pool.py # Thread-safe Radare2 connection pool │ ├── r2_helpers.py # Structured Radare2 output parsing │ ├── metrics.py # Per-tool timing, counts, error rates, cache stats │ ├── decorators.py # @log_execution, @track_metrics │ ├── error_handling.py # @handle_tool_errors decorator │ ├── error_formatting.py # Structured error formatting │ ├── execution.py # Safe subprocess with timeout/output limits │ ├── command_spec.py # Command specifications │ ├── memory.py # Async SQLite AI memory store │ ├── mitre_mapper.py # MITRE ATT&CK mapping engine │ ├── evidence.py # Evidence classification (OBSERVED/INFERRED/POSSIBLE) │ ├── resilience.py # Retry, circuit-breaker, timeout patterns │ ├── task_queue.py # Background task queue (Redis + arq) │ ├── extension_registry.py # Plugin registration system │ ├── arch_registry.py # Multi-arch mapping (x86/ARM/MIPS/RISC-V/PPC) │ ├── result_cache.py # SHA256-based tool result caching │ ├── analysis_cache.py # Multi-level decompilation cache (Redis + SQLite) │ ├── result.py # ToolSuccess / ToolError Pydantic models │ ├── loader.py # Dynamic tool module loader │ ├── plugin.py # Plugin base class │ ├── extension.py # Extension base class │ ├── container.py # Container/sandbox execution │ ├── audit.py # Audit logging │ ├── binary_cache.py # Binary file caching │ ├── json_utils.py # orjson-backed JSON (3-5x faster) │ ├── logging_config.py # Loguru logging configuration │ ├── report_generator.py # Report rendering (Markdown, PDF) │ ├── resource_manager.py # MCP resource lifecycle │ └── sast/ # Source code scanners │ ├── python_ast_scanner.py # Python AST vulnerability scanner │ ├── regex_scanner.py # C/C++ regex vulnerability scanner │ ├── rule_manager.py # SAST rule loader │ └── default_rules.yaml # Default scanning rules │ ├── tools/ # MCP tool implementations (120 tools) │ ├── analysis/ # Static analysis (24 tools) │ │ ├── static_analysis.py # file, strings, binwalk │ │ ├── lief_tools.py # LIEF binary parser │ │ ├── capa_tools.py # CAPA capability detection │ │ ├── die_tools.py # Detect It Easy packer detection │ │ ├── diff_tools.py # Binary diffing │ │ ├── emulation_tools.py # ESIL emulation │ │ ├── fuzz_tools.py # Fuzzing harness generator │ │ ├── fuzzing_campaign.py # Full fuzzing campaign runner │ │ ├── symbolic_analysis.py # angr symbolic execution │ │ ├── signature_tools.py # Library signature matching │ │ ├── source_auditor.py # SAST (Python + C/C++) │ │ ├── crash_triage.py # GDB crash triage │ │ ├── taint_analysis.py # Source→sink taint tracing │ │ ├── advanced_yara.py # Advanced YARA generation │ │ ├── patch_vuln_inference.py # Patch vulnerability inference │ │ └── cache_tools.py # Analysis cache management │ │ │ ├── radare2/ # Disassembly & decompilation (30 tools) │ │ ├── radare2_mcp_tools.py # Core Radare2 tool set │ │ ├── r2ghidra_tools.py # r2ghidra decompiler (cached) │ │ ├── r2_analysis.py # Deep function analysis │ │ ├── r2_db.py # SQLite annotation + cache DB │ │ ├── r2_esil_simulator.py # Multi-arch ESIL simulator │ │ └── r2_session.py # Stateful analysis sessions │ │ │ ├── malware/ # Threat detection (9 tools) │ │ ├── dormant_detector.py # Backdoor/logic bomb detection │ │ ├── ioc_tools.py # IOC extraction │ │ ├── yara_tools.py # YARA scanning │ │ ├── adaptive_vaccine.py # YARA rule + patch generation │ │ ├── vulnerability_hunter.py # Dangerous API detection │ │ ├── autonomous_hunter.py # Autonomous vuln hunting pipeline │ │ ├── heap_exploit.py # Heap exploitation analysis │ │ ├── poc_generator.py # PoC exploit generation │ │ └── rop_builder.py # ROP chain construction │ │ │ ├── forensics/ # Digital forensics (22 tools) │ │ ├── memory.py # Volatility3 memory forensics │ │ ├── network.py # Scapy PCAP analysis │ │ ├── disk.py # Sleuth Kit disk forensics │ │ └── artifact.py # Browser/registry/event log analysis │ │ │ ├── report/ # Report generation (14 tools) │ │ ├── report_mcp_tools.py # MCP-registered report tools │ │ ├── report_tools.py # Report rendering logic │ │ ├── session.py # Session state management │ │ ├── converter.py # Format conversion (Markdown → PDF/HTML) │ │ ├── email.py # SMTP report delivery │ │ ├── sigma_generator.py # SIGMA rule generation │ │ └── vex_generator.py # VEX report generation │ │ │ └── common/ # Shared utilities (20 tools) │ ├── file_operations.py # File ops, workspace management │ ├── server_tools.py # Server health, tool metrics │ ├── memory_tools.py # AI memory management (11 tools) │ ├── patch_explainer.py # Binary patch explanation │ └── assembler.py # Keystone assembler │ ├── prompts/ # AI reasoning prompts (22 modes) │ ├── malware.py # 9 malware analysis prompts │ ├── security.py # 6 security research prompts │ ├── cve_research.py # 5 CVE/exploit research prompts │ ├── game.py # Game client analysis prompt │ ├── report.py # Report generation prompt │ ├── server_health.py # Server inspection prompts │ └── common.py # Shared constants (DOCKER_PATH_RULE, LANGUAGE_RULE) │ ├── dashboard/ # Web dashboard (FastAPI + HTMX) │ ├── templates/ # Jinja2 templates with HTMX fragments │ └── static/ # htmx.min.js (local, CSP-compliant) │ ├── web/ # HTTP transport layer │ ├── auth.py # API key authentication middleware │ ├── middleware.py # Security headers, loopback restriction │ └── endpoints.py # /health, file upload, dashboard routes │ ├── resources.py # 11 MCP resources (static + dynamic per-binary) └── server.py # FastMCP server entry point

root@kitploit:~
**Другие каталоги:**```
tests/
├── unit/                          # 1,957 unit tests
├── integration/                   # Docker-based integration tests
├── fixtures/                      # Test binaries, YARA rules, sample data
└── conftest.py                    # Shared pytest fixtures

scripts/
├── smoke_test.py                  # Multi-layer in-container smoke test
├── check_release_metadata.py      # Version consistency validation
├── fetch_test_binaries.py         # Download test fixtures
├── run-docker.sh                  # Auto-detect architecture and start
└── ...                            # Benchmarks, analysis scripts

docs/
├── getting-started/               # Installation guide
├── development/                   # Architecture, contributing, testing guides
├── api/                           # Tool and module reference
└── user-guide/                    # Analysis workflows

Обработка ошибок

Все пользовательские исключения наследуются от ReversecoreError и содержат структурированные коды ошибок:

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


Добавление новых инструментов

Следуйте этому шаблону, чтобы добавить новый MCP-инструмент:```python

reversecore_mcp/tools/analysis/my_tool.py

from reversecore_mcp.core.decorators import log_execution from reversecore_mcp.core.result import ToolResult, success, failure from reversecore_mcp.core.security import validate_file_path

@log_execution() async def my_analysis_tool( file_path: str, option: str | None = None, ) -> ToolResult: """Analyze a binary for X.

root@kitploit:~
Args:
    file_path: Path to the binary file (relative to workspace).
    option: Optional analysis option.

Returns:
    ToolResult with status='success' and structured content.
"""
try:
    safe_path = validate_file_path(file_path)
    result = await perform_analysis(safe_path)
    return success({"result": result})
except Exception as e:
    return failure(
        error_code="RCMCP-E100",
        message=str(e),
        hint="Check that the file exists and is a valid binary.",
    )
root@kitploit:~
Затем зарегистрируйте его в `__init__.py` соответствующего плагина и добавьте тесты в `tests/unit/`.

---

## Участие в разработке

1. Сделайте форк репозитория
2. Создайте ветку для функциональности: `git checkout -b feat/my-feature`
3. Пишите тесты вместе с кодом — покрытие не должно опускаться ниже 80%
4. Убедитесь, что все проверки проходят: `pytest`, `ruff check`, `mypy`, `bandit`
5. Откройте pull request с понятным описанием

Пожалуйста, ознакомьтесь с [Руководством по участию в разработке](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/docs/development/contributing.md) для получения информации о стандартах кода, соглашениях по docstring (в стиле Google) и чек-листе pull request.

---

## Документация

| Документ | Описание |
|---|---|
| [Руководство по установке](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/docs/getting-started/installation.md) | Подробная настройка для всех окружений |
| [Руководство по архитектуре](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/docs/development/architecture.md) | Архитектура системы и детали компонентов |
| [Руководство по участию в разработке](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/docs/development/contributing.md) | Стандарты кода, docstring, процесс pull request |
| [Руководство по тестированию](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/docs/development/testing.md) | Паттерны тестирования, фикстуры и покрытие |
| [Справочник по API](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/docs/api/) | Справочник по инструментам и модулям |
| [Руководство пользователя](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/docs/user-guide/) | Рабочие процессы анализа |

---

## Примеры использования

### Пример 1: базовый анализ вредоносного ПО```
User: "Analyze this suspicious file sample.exe"

AI calls:
  1. run_file("sample.exe")           → PE32 executable, x86, MSVC
  2. detect_packer("sample.exe")      → Not packed
  3. extract_iocs("sample.exe")       → 3 IPs, 2 URLs, 1 mutex
  4. run_capa("sample.exe")           → "creates persistence", "encrypts data"
  5. dormant_detector("sample.exe")   → 2 orphan functions with network calls
  6. generate_yara_rule("sample.exe") → Detection rule generated

AI response: "This PE32 binary shows ransomware-like behavior. CAPA detected
encryption and persistence capabilities. I found 2 hidden network functions
that may serve as a backup C2 channel. Here's a YARA rule for detection..."

Пример 2: Исследование уязвимостей с помощью Taint-анализа```

User: "Find exploitable bugs in this network daemon"

AI activates: taint_analysis_mode

AI calls:

  1. taint_trace("daemon", verify_with_angr=True) → Found 3 source→sink paths: recv() → strcpy() [CWE-120, CONFIRMED by angr] read() → sprintf() [CWE-134, LIKELY] getenv() → system() [CWE-78, POSSIBLE]

  2. vulnerability_hunter("daemon") → 12 dangerous API calls, 4 exploitable patterns

  3. generate_poc_exploit(target="daemon", vuln_type="bof", offset=128) → Python exploit script generated

AI response: "I found a confirmed stack buffer overflow where recv() data flows directly into strcpy() at 0x40123C. angr proved the path is reachable. Here's a working PoC..."

root@kitploit:~
### Пример 3: Цифровое криминалистическое расследование```
User: "Analyze this memory dump from a compromised server"

AI calls:
  1. memory_list_processes("memdump.raw")
     → 47 processes, 2 with suspicious names

  2. memory_detect_injections("memdump.raw")
     → Code injection detected in PID 1842 (svchost.exe)

  3. memory_extract_strings("memdump.raw", pid=1842)
     → C2 domain strings extracted

  4. artifact_correlate_ioc(artifacts={"domains": ["evil-c2.com"]})
     → Matches known APT group IOCs

  5. create_analysis_report(template_type="full_analysis")
     → PDF report with timeline and MITRE ATT&CK mapping

Пример 4: Диффинг патчей для исследования 1-day```

User: "Compare the patched and unpatched versions to find what was fixed"

AI activates: patch_diff_auto_mode

AI calls:

  1. diff_binaries("libfoo-1.0.so", "libfoo-1.1.so") → 3 functions changed, 1 new function

  2. patch_diff_1day("libfoo-1.0.so", "libfoo-1.1.so") → Automated analysis: bounds check added at parse_header()

  3. r2_decompile("libfoo-1.0.so", "parse_header") → Decompiled vulnerable version (no bounds check)

  4. r2_decompile("libfoo-1.1.so", "parse_header") → Decompiled patched version (memcpy size limited)

AI response: "The patch adds a bounds check in parse_header() at 0x12340. The old version copies user-controlled length bytes via memcpy without validation, creating a heap buffer overflow (CWE-122)."

root@kitploit:~
---

## Поддержка нескольких архитектур

Модуль `arch_registry.py` сопоставляет имена архитектур с параметрами конфигурации Radare2, что позволяет инструментам работать с разными архитектурами процессоров без ручной настройки:

| Архитектура | Ключ | Архитектура r2 | Разрядность | Регистр PC | Регистр SP |
|---|---|---|---|---|---|
| Intel 32-bit | `x86` | `x86` | 32 | `eip` | `esp` |
| Intel/AMD 64-bit | `x86_64` | `x86` | 64 | `rip` | `rsp` |
| ARM 32-bit / Thumb | `arm32` | `arm` | 16, 32 | `r15` | `r13` |
| ARM 64-bit (AArch64) | `arm64` | `arm` | 64 | `pc` | `sp` |
| MIPS | `mips` | `mips` | 32, 64 | `pc` | `sp` |
| RISC-V | `riscv` | `riscv` | 32, 64 | `pc` | `sp` |
| PowerPC | `ppc` | `ppc` | 32, 64 | `pc` | `r1` |

**Разрешение псевдонимов** обрабатывается автоматически:
- `amd64` → `x86_64`
- `aarch64` → `arm64`
- `arm` с `bits=64` → `arm64`
- `arm` с `bits=16` или `bits=32` → `arm32`

Такие инструменты, как `Radare2_esil_emulate`, `assemble_instructions` и `r2_simulate_patch`, используют этот реестр для корректной настройки среды анализа для любого целевого двоичного файла.

---

## Система кэширования результатов

Два уровня кэширования минимизируют избыточные вычисления:

### Кэш результатов инструмента (`result_cache.py`)

Декоратор `@cache_tool_result` кэширует вывод любого инструмента на основе SHA256-хеша двоичного файла и именованных аргументов инструмента:```
Cache key = SHA256( "<tool_name>::{sorted_json_kwargs}" )

Бэкенд хранилища: база данных SQLite через r2_db.py, доступная через инструменты get_cached_result() и set_cached_result().

Метрики: попадания и промахи кэша отслеживаются через metrics_collector.record_cache_hit() и record_cache_miss(), видны через инструмент get_tool_metrics.

Кэш анализа (analysis_cache.py)

Многоуровневый кэш, специально предназначенный для результатов декомпиляции (которые дорого вычислять):

Импорт/экспорт: Инструменты export_analysis_cache и import_analysis_cache позволяют сохранять состояние кэша в файлы rcpack и загружать из них для обмена между средами.


Система ИИ-памяти

Система ИИ-памяти (memory_tools.py + core/memory.py) обеспечивает постоянное и доступное для запросов хранилище результатов анализа между сессиями. Это позволяет ИИ:

  • Помнить, что он ранее обнаружил о бинарном файле
  • Перекрёстно ссылаться на результаты между разными образцами
  • Тегировать и искать сессии по теме, семейству вредоносных программ или технике

Как это работает```

create_memory_session("analysis of ransomware sample") │ ├── store_analysis_finding("Found AES-256 encryption at 0x401000", tags=["crypto", "ransomware"]) ├── store_analysis_finding("C2 beacon interval: 30 seconds", tags=["c2", "network"]) └── tag_analysis_session(tags=["ransomware", "financial-sector"])

Later, in a different session:

query_analysis_memories("ransomware encryption") → Returns previous findings about ransomware encryption patterns

get_binary_analysis_context("sample.exe") → Returns all findings ever recorded for this binary

root@kitploit:~
**Storage:** Async SQLite database at the path configured by `MEMORY_DB_PATH` (default: `~/.reversecore_mcp/memory.db`).

**Portability:** Use `export_memory_store` and `import_memory_store` to transfer the entire memory database between environments.

---

## Web Dashboard

When running in HTTP mode (`MCP_TRANSPORT=http`), a web dashboard is available at `http://localhost:8000/dashboard`. It provides:

- Binary upload with drag-and-drop
- Real-time analysis status
- Interactive function list and disassembly view
- IOC extraction results
- Server health monitoring

**Tech stack:** FastAPI + Jinja2 templates + HTMX (loaded locally from `dashboard/static/`, no CDN dependency for CSP compliance).

**Security features:**
- CSRF tokens on all state-changing forms
- Jinja2 auto-escaping enabled
- All user input sanitized via `html.escape()` before display
- Path traversal protection via `validate_file_path()`

---

## Deployment

### Production Checklist

Before deploying to production:

| Item | How |
|---|---|
| Set API key | `MCP_API_KEY=<strong-random-key>` |
| Use non-root user | Built-in: container runs as `appuser` (UID 1000) |
| Set resource limits | Default: 2 CPU / 4 GB RAM in `docker-compose.yml` |
| Enable structured logging | `LOG_FORMAT=json` for log aggregation |
| Configure Redis | `REDIS_URL=redis://<host>:6379/0` for task queue and caching |
| Set workspace path | `REVERSECORE_WORKSPACE=/path/to/isolated/directory` |
| Review rate limits | `REVERSECORE_RATE_LIMIT=60` (requests/min, adjust as needed) |
| Enable sandbox | `REVERSECORE_SANDBOX_ENABLED=true` for dynamic analysis isolation |

### Health Checks

The server provides HTTP health check endpoints for orchestration:```bash
# Liveness (always 200 if process is running)
curl http://localhost:8000/health/live

# Readiness (checks tool availability)
curl http://localhost:8000/health/ready

# Full health (requires API key if configured)
curl -H "X-API-Key: <key>" http://localhost:8000/health

Эти конечные точки освобождены от аутентификации по API-ключу, чтобы балансировщики нагрузки и оркестраторы контейнеров могли их проверять.

Проверка здоровья контейнера

Docker-образ включает встроенную инструкцию HEALTHCHECK, которая проверяет TCP-подключение к порту 8000 каждые 30 секунд. Docker и Kubernetes автоматически перезапускают нездоровые контейнеры.


Устранение неполадок

Частые проблемы

Инструмент возвращает RCMCP-E003: Tool not found

Требуемый CLI-инструмент не установлен в окружении.

Решение: Если вы используете Docker, убедитесь, что инструмент присутствует в базовом образе:```bash docker exec reversecore-mcp-arm64 which r2 yara binwalk tsk_recover gdb

root@kitploit:~
Если вы используете локальную установку Python, установите недостающий инструмент:```bash
# macOS
brew install radare2 yara binwalk sleuthkit

# Ubuntu/Debian
apt install radare2 yara binwalk sleuthkit
Ошибка тайм-аута (RCMCP-E002 / RCMCP-E200)

Анализ превысил установленное время ожидания.

Решение: Увеличьте время ожидания:```bash export REVERSECORE_DEFAULT_TOOL_TIMEOUT=300 # 5 minutes

root@kitploit:~
Для больших бинарных файлов (>100 МБ) рассмотрите возможность использования вариантов быстрого сканирования:
- `run_capa_quick` вместо `run_capa`
- `detect_packer` вместо `detect_packer_deep`
</details>

<details>
<summary><b>Ошибка обхода пути (RCMCP-E302)</b></summary>

Вы указали файл за пределами рабочего каталога.

**Решение:** Сначала скопируйте файл в рабочий каталог:```
copy_to_workspace("/path/to/file.exe")

Или смонтируйте дополнительные каталоги в режиме только для чтения:```bash export REVERSECORE_READ_DIRS=/opt/samples,/mnt/evidence

root@kitploit:~
</details>

<details>
<summary><b>Контейнер Docker не запускается на Apple Silicon</b></summary>

Убедитесь, что вы используете профиль ARM64:```bash
docker compose --profile arm64 up -d

Или используйте скрипт автоматического обнаружения:```bash ./scripts/run-docker.sh

root@kitploit:~
</details>

<details>
<summary><b>Отказ в подключении к Redis</b></summary>

Очередь задач требует запущенного экземпляра Redis.

**Решение:** Запустите Redis вместе с основным сервисом:```bash
docker compose --profile arm64 up -d   # Starts both reversecore and redis

Или отключите функции, зависящие от Redis, не задавая REDIS_URL.

r2ghidra декомпиляция выдаёт пустой результат

Обычно это означает, что функция не была проанализирована заранее.

Решение: Запустите анализ перед декомпиляцией:``` Radare2_analyze_binary("sample.exe") Radare2_decompile_function("sample.exe", "main")

root@kitploit:~
</details>

---

## FAQ

<details>
<summary><b>Заменяет ли этот проект Ghidra или IDA Pro?</b></summary>

Нет. Этот проект — дополнение, а не замена. Для декомпиляции он использует r2ghidra (движок декомпилятора Ghidra, встроенный в Radare2). Он не предоставляет графический интерфейс и не имеет интерактивного рабочего процесса анализа полноценного дизассемблера. Его цель — позволить ИИ-ассистентам выполнять задачи анализа программно.
</details>

<details>
<summary><b>Нужна ли отдельная установка Ghidra или JDK?</b></summary>

Нет. Плагин r2ghidra встраивает движок декомпилятора Ghidra непосредственно в Radare2. Ни JDK, ни установки Ghidra, ни файлов проекта Ghidra не требуется. Достаточно `r2` со скомпилированным плагином `r2ghidra`.
</details>

<details>
<summary><b>Какие MCP-клиенты поддерживаются?</b></summary>

Любой клиент, реализующий спецификацию [Model Context Protocol](https://modelcontextprotocol.io/). Протестировано с: Claude Desktop, Cursor, Windsurf и Google Antigravity. Сервер поддерживает оба транспорта — stdio и HTTP/SSE.
</details>

<details>
<summary><b>Можно ли анализировать Windows PE-файлы в Linux/macOS?</b></summary>

Да. Статический анализ (дизассемблирование, декомпиляция, извлечение строк, извлечение IOC, сканирование YARA) работает с любым форматом файлов независимо от ОС хоста. Динамический анализ (эмуляция, фаззинг) может иметь ограничения в зависимости от целевой архитектуры.
</details>

<details>
<summary><b>Насколько безопасно анализировать вредоносное ПО с помощью этого инструмента?</b></summary>

Docker-контейнер обеспечивает изоляцию: пользователь без прав root, отсутствие сети по умолчанию в CI, ограничения ресурсов. Для анализа живого вредоносного ПО мы рекомендуем запускать в выделенной виртуальной машине или использовать функцию песочницы (`REVERSECORE_SANDBOX_ENABLED=true`). Инструменты статического анализа (r2, YARA, strings) никогда не выполняют целевой бинарный файл.
</details>

<details>
<summary><b>Каков максимальный размер файла?</b></summary>

Ограничения по умолчанию:
- Загрузка: 100 МБ (`MAX_UPLOAD_SIZE`)
- Разбор LIEF: 1 ГБ (`REVERSECORE_LIEF_MAX_FILE_SIZE`)
- Вывод инструментов: 10 МБ (`REVERSECORE_MAX_OUTPUT_SIZE`)

Все ограничения настраиваются через переменные окружения.
</details>

---

## Благодарности

Этот проект построен на основе работы многих проектов с открытым исходным кодом:

| Проект | Роль в Reversecore MCP |
|---|---|
| [Radare2](https://radare.org/) | Дизассемблирование, эмуляция, анализ бинарных файлов |
| [r2ghidra](https://github.com/radareorg/r2ghidra) | Движок декомпилятора Ghidra для Radare2 |
| [FastMCP](https://github.com/jlowin/fastmcp) | Фреймворк MCP-сервера |
| [YARA](https://virustotal.github.io/yara/) | Сопоставление с образцом для обнаружения вредоносного ПО |
| [LIEF](https://lief-project.github.io/) | Разбор форматов бинарных файлов (PE, ELF, Mach-O) |
| [CAPA](https://github.com/mandiant/capa) | Обнаружение возможностей Mandiant FLARE |
| [angr](https://angr.io/) | Движок символьного выполнения |
| [Capstone](https://www.capstone-engine.org/) | Фреймворк дизассемблирования |
| [Keystone](https://www.keystone-engine.org/) | Фреймворк ассемблирования |
| [pwntools](https://github.com/Gallopsled/pwntools) | Набор инструментов для разработки эксплойтов |
| [ROPgadget](https://github.com/JonathanSalwan/ROPgadget) | Поиск ROP-гаджетов |
| [Volatility3](https://github.com/volatilityfoundation/volatility3) | Фреймворк криминалистического анализа памяти |
| [Scapy](https://scapy.net/) | Анализ сетевых пакетов |
| [Sleuth Kit](https://sleuthkit.org/) | Набор инструментов криминалистического анализа дисков |
| [Binwalk](https://github.com/ReFirmLabs/binwalk) | Анализ прошивок |
| [Detect It Easy](https://github.com/horsicq/DIE-engine) | Обнаружение упаковщиков/компиляторов |

---

## Лицензия

MIT — подробнее см. в [LICENSE](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/LICENSE).

---

<div align="center">

**[GitHub](https://github.com/sjkim1127/Reversecore_MCP)** · **[PyPI](https://pypi.org/project/reversecore-mcp/)** · **[FastMCP Docs](https://github.com/jlowin/fastmcp)** · **[MCP Spec](https://modelcontextprotocol.io/)** · **[Radare2](https://radare.org/)** · **[YARA](https://virustotal.github.io/yara/)**

</div>
Скачать инструмент
DomainWhat you can do
Static analysisDisassembly, decompilation (r2ghidra), binary parsing (LIEF), packer detection (DIE), capability detection (CAPA), string extraction, firmware scanning (binwalk)
Dynamic & symbolicESIL emulation, angr symbolic execution, taint analysis, fuzzing harness generation
Malware analysisIOC extraction, YARA scanning, dormant backdoor detection, adaptive vaccine generation, autonomous vulnerability hunting
Vulnerability researchDangerous API detection, ROP gadget discovery, heap exploit analysis, crash triage, PoC generation
Digital forensicsMemory forensics (Volatility3), PCAP analysis (Scapy), disk forensics (Sleuth Kit), artifact correlation
Source code auditPython AST scanning, C/C++ regex pattern scanning
ReportingSession-based reports with MITRE ATT&CK mapping, SIGMA rule generation, VEX reports, email delivery
VariableDefaultDescription
MCP_TRANSPORTstdioРежим транспорта: stdio или http
REVERSECORE_WORKSPACE./ (cwd)Каталог рабочей области анализа
REVERSECORE_READ_DIRS""Список дополнительных каталогов только для чтения через запятую
REVERSECORE_STRICT_PATHSfalseВызывать ошибки для отсутствующих путей вместо предупреждений
REVERSECORE_STRUCTURED_ERRORSfalseВключить структурированные ответы об ошибках с кодами ошибок
REVERSECORE_DEFAULT_TOOL_TIMEOUT120Тайм-аут выполнения инструмента по умолчанию (в секундах)
REVERSECORE_MAX_OUTPUT_SIZE10000000Максимальный размер вывода для инструментов (байт)
VariableDefaultDescription
MCP_HOST0.0.0.0Сетевой интерфейс для привязки (автоматически заменяется на 127.0.0.1 при отсутствии API-ключа)
MCP_PORT8000Порт для HTTP-сервера
MCP_API_KEY(не задано)API-ключ для HTTP-аутентификации (X-API-Key или Authorization: Bearer)
REVERSECORE_RATE_LIMIT60Максимум запросов в минуту (только для HTTP-режима, через slowapi)
MAX_UPLOAD_SIZE100000000Максимальный размер загрузки (по умолчанию 100 МБ)
FILE_RETENTION_MINUTES1440Срок хранения загруженных файлов (по умолчанию 24 часа)
VariableDefaultDescription
REVERSECORE_R2_POOL_SIZE3Количество подключений Radare2 в пуле
REVERSECORE_R2_POOL_TIMEOUT30Тайм-аут получения подключения из пула
REVERSECORE_R2_EXTENSIONS""Список классов расширений r2 через запятую (module:ClassName)
REVERSECORE_GHIDRA_MAX_PROJECTS3Максимальное количество кэшируемых проектов декомпилятора r2ghidra
REVERSECORE_GHIDRA_EXTENSIONS""Список классов расширений Ghidra через запятую
MAX_EMULATION_INSTRUCTIONS1000Максимальное количество инструкций эмуляции ESIL
VariableDefaultDescription
REVERSECORE_SANDBOX_ENABLEDfalseВключить выполнение в песочнице для инструментов динамического анализа
REVERSECORE_SANDBOX_MODEautoРежим песочницы: auto, host, container, disabled
REVERSECORE_SANDBOX_DOCKER_IMAGEreversecore-sandbox:latestDocker-образ для выполнения в песочнице
REVERSECORE_SANDBOX_CPU_LIMIT1.0Лимит ядер CPU для контейнеров песочницы
REVERSECORE_SANDBOX_MEMORY_LIMIT512mЛимит памяти для контейнеров песочницы
REVERSECORE_SANDBOX_PIDS_LIMIT100Лимит PID для контейнеров песочницы
REVERSECORE_SANDBOX_USERnobodyПользователь без root-прав для выполнения в песочнице
VariableDefaultDescription
REDIS_URLredis://localhost:6379/0URL Redis для очереди задач и кэширования результатов
MEMORY_DB_PATH~/.reversecore_mcp/memory.dbПуть к SQLite-базе данных памяти ИИ
REVERSECORE_LIEF_MAX_FILE_SIZE1000000000Максимальный размер файла для анализа LIEF (1 ГБ)
VariableDefaultDescription
LOG_LEVELINFOУровень детализации журнала: DEBUG, INFO, WARNING, ERROR
LOG_FILE<tempdir>/reversecore/app.logПуть к файлу журнала
LOG_FORMAThumanФормат журнала: human (читаемый) или json (структурированный)
КонтрольРеализация
Отсутствие shell-инъекцийВсе вызовы subprocess используют списки аргументов, а не строки shell (execution.py)
Предотвращение обхода путиvalidate_file_path() и validate_binary_path() разрешают символические ссылки и ограничивают доступ рабочим каталогом (validators.py)
Смягчение TOCTOUФлаг bypass_cache=True повторно проверяет пути для предотвращения состояний гонки
Очистка входных данныхВсе параметры очищаются перед выполнением (security.py)
Защита от CSRFФормы панели управления требуют проверки CSRF на основе токенов (dashboard/__init__.py)
КонтрольРеализация
Аутентификация, устойчивая к атакам по времениsecrets.compare_digest() для сравнения API-ключей (web/auth.py)
Ограниченные векторы аутентификацииПринимаются только заголовки X-API-Key и Authorization: Bearer; без параметров запроса и cookie
Резервный режим только через loopbackБез MCP_API_KEY доступ по HTTP ограничен адресом 127.0.0.1 (web/middleware.py)
Ограничение частоты запросовНастраиваемые поминутные лимиты через slowapi
Заголовки безопасностиHSTS, X-Content-Type-Options, X-Frame-Options, CSP во всех HTTP-ответах (web/middleware.py)
Минимизированный /healthПубличная конечная точка возвращает только {"status": "alive"}; подробности доступны после аутентификации (web/endpoints.py)
Опциональная песочница на основе контейнеров для инструментов динамического анализа
КонтрольРеализация
Сканирование секретовGitleaks запускается при каждом коммите (pre-commit хук + CI)
SASTBandit сканирует весь Python-код при каждом коммите
CodeQLСтатический анализ GitHub CodeQL при каждом push в main
Аудит зависимостейpip-audit при каждом push — без непроверенных CVE
Сканирование контейнеровTrivy сканирует Docker-образы на наличие уязвимостей (от LOW до CRITICAL)
Контроль безопасности эксплойтовШаблоны POC сканируются с помощью Bandit; фаззинг DAST на основе Hypothesis; проверяется изоляция контейнеров
МаркерНазначение
@pytest.mark.unitБыстрые модульные тесты
@pytest.mark.integrationТесты, требующие Docker или внешних инструментов
@pytest.mark.slowДлительные тесты
@pytest.mark.benchmarkБенчмарки производительности
@pytest.mark.securityТесты валидации границ безопасности
СервисПрофильОписание
reversecore-mcpdefault, x86Intel/AMD x86_64
reversecore-mcp-arm64arm64, macosApple Silicon ARM64
redisвсе профилиRedis 7 Alpine для очереди задач и кэширования
КомпонентМинимумРекомендуется
ЦП4 ядра8+ ядер
ОЗУ8 ГБ16 ГБ
Хранилище20 ГБ50 ГБ SSD
ОСLinux / macOSСреда Docker (любая ОС)
Docker20.10+24.0+
Python (локальный режим)3.103.11 или 3.12
ИсключениеКодТипКогда
ReversecoreErrorRCMCP-E000UNKNOWN_ERRORБазовый класс для всех ошибок
ValidationErrorRCMCP-E001VALIDATION_ERRORНекорректный ввод, неверные параметры
ExecutionTimeoutErrorRCMCP-E002TIMEOUT_ERRORИнструмент превысил время ожидания
ToolNotFoundErrorRCMCP-E003TOOL_ERRORТребуемый CLI-инструмент не установлен
OutputLimitExceededErrorRCMCP-E004OUTPUT_ERRORВывод превысил максимальный размер
ToolExecutionErrorRCMCP-E005EXECUTION_ERRORПодпроцесс вернул ненулевой код возврата
BinaryAnalysisErrorRCMCP-E100BINARY_ANALYSIS_ERRORОбщий сбой анализа бинарного файла
DecompilationErrorRCMCP-E101DECOMPILATION_ERRORНе удалась декомпиляция r2ghidra
DisassemblyErrorRCMCP-E102DISASSEMBLY_ERRORСбой дизассемблирования Radare2
StructureRecoveryErrorRCMCP-E103STRUCTURE_RECOVERY_ERRORНе удалось восстановить структуры C
SignatureGenerationErrorRCMCP-E104SIGNATURE_GENERATION_ERRORСбой генерации YARA/сигнатур
EmulationErrorRCMCP-E105EMULATION_ERRORСбой эмуляции ESIL
ToolTimeoutErrorRCMCP-E200TOOL_TIMEOUT_ERRORВнешний инструмент превысил время ожидания
GhidraConnectionErrorRCMCP-E201GHIDRA_CONNECTION_ERRORПроблема с подключением r2ghidra
Radare2ErrorRCMCP-E202RADARE2_ERRORСбой выполнения команды Radare2
WorkspaceErrorRCMCP-E300WORKSPACE_ERRORОшибка доступа к файлам рабочей области
SecurityViolationErrorRCMCP-E301SECURITY_VIOLATIONНарушение политики безопасности
PathTraversalErrorRCMCP-E302PATH_TRAVERSALОбнаружена попытка обхода пути
УровеньБэкендФормат ключаTTLНазначение
L1Redisghidra:decompile:{file_hash}:{function_address}:{decompiler}1 час (3600s)Быстрый, общий для сессий
L2SQLiteТаблица decompilation_cacheПостоянныйПереживает перезапуски Redis