Reversecore MCP逆向工程服务 是 AI Skill Hub 本期精选MCP工具之一。综合评分 8.2 分,整体质量较高。我们强烈推荐将其纳入你的 AI 工具库,帮助提升工作效率。
安全优先的MCP服务器,集成Ghidra和Radare2等逆向工程工具,为AI智能体提供程序分析和反编译能力。适合安全研究员、逆向工程师和AI应用开发者,可自动化二进制分析工作流。
Reversecore MCP逆向工程服务 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
安全优先的MCP服务器,集成Ghidra和Radare2等逆向工程工具,为AI智能体提供程序分析和反编译能力。适合安全研究员、逆向工程师和AI应用开发者,可自动化二进制分析工作流。
Reversecore MCP逆向工程服务 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/sjkim1127/Reversecore_MCP
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"reversecore-mcp------": {
"command": "npx",
"args": ["-y", "reversecore_mcp"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 Reversecore MCP逆向工程服务 执行以下任务... Claude: [自动调用 Reversecore MCP逆向工程服务 MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"reversecore_mcp______": {
"command": "npx",
"args": ["-y", "reversecore_mcp"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
<img src="icon.png" alt="Reversecore MCP" width="480" />
pytest tests/unit/ -v
pytest tests/integration/ -v
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 4 cores | 8+ cores |
| RAM | 8 GB | 16 GB |
| Storage | 20 GB | 50 GB SSD |
| OS | Linux / macOS | Docker environment (any OS) |
| Docker | 20.10+ | 24.0+ |
| Python (local mode) | 3.10 | 3.11 or 3.12 |
---
All analysis engines (Radare2, r2ghidra, YARA, Binwalk, Sleuth Kit, GDB, etc.) come pre-installed:
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
git clone https://github.com/sjkim1127/Reversecore_MCP.git
cd Reversecore_MCP
./scripts/run-docker.sh # auto-detects Intel / Apple Silicon
Or manually:
docker compose --profile x86 up -d # Intel/AMD
docker compose --profile arm64 up -d # Apple Silicon (M1/M2/M3)
If you have the container running via Docker Compose, this mode channels stdio directly into the running container. Zero startup latency, persistent memory, and full tool availability.
{
"mcpServers": {
"Reversecore_MCP": {
"command": "docker",
"args": [
"exec",
"-i",
"-e",
"MCP_TRANSPORT=stdio",
"reversecore-mcp-arm64",
"python",
"-m",
"reversecore_mcp.server"
]
}
}
}
Replacereversecore-mcp-arm64withreversecore-mcpif you are on Intel/AMD.
---
Runs a fresh, isolated container for every session:
<details> <summary>🍎 macOS</summary>
{
"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"
]
}
}
}
</details>
<details> <summary>🐧 Linux</summary>
{
"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"
]
}
}
}
</details>
<details> <summary>🪟 Windows</summary>
{
"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"
]
}
}
}
</details>
⚠️ Important — File Paths Inside Docker Your local folder is mounted to/app/workspaceinside the container. Always reference files by filename only, not by your local full path. | ❌ Wrong | ✅ Correct | |---|---| |r2_decompile("/Users/john/samples/mal.exe")|r2_decompile("mal.exe")|
---
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
The Docker build uses a two-layer approach to keep build times manageable:
A multi-stage build that compiles all slow-to-build, rarely-changing dependencies from source:
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)
This image is rebuilt only when tool versions change. Build time: ~12 minutes.
Inherits from the base image and copies application code:
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"]
Build time: ~60 seconds.
Three services with architecture-specific profiles:
| Service | Profile | Description |
|---|---|---|
reversecore-mcp | default, x86 | Intel/AMD x86_64 |
reversecore-mcp-arm64 | arm64, macos | Apple Silicon ARM64 |
redis | all profiles | Redis 7 Alpine for task queue and caching |
Resource limits: 2.0 CPU cores, 4 GB memory per container.
---
Prompts are pre-built analysis workflows that prime the AI with a structured persona, step-by-step tool usage sequences, and evidence classification rules. You activate them by referencing the prompt name in your AI client.
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..."
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..."
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
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)."
---
pip install reversecore-mcp
reversecore-mcp
Prerequisites: Radare2 must be installed on your system (r2 --version). YARA is installed automatically viayara-python.
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
Prerequisites for local mode: Radare2 must be installed on your system (r2 --version). Individual tool backends (YARA, LIEF, Capstone, etc.) are installed via pip. For full forensics support, you'll also need Volatility3, Scapy, and Sleuth Kit.
---
For network-based streaming (Server-Sent Events):
{
"mcpServers": {
"Reversecore_MCP": {
"url": "http://localhost:8000/mcp/sse"
}
}
}
---
All settings can be provided via environment variables or a .env file (see .env.example). Settings are managed via Pydantic BaseSettings with the REVERSECORE_ prefix.
| Variable | Default | Description |
|---|---|---|
MCP_TRANSPORT | stdio | Transport mode: stdio or http |
REVERSECORE_WORKSPACE | ./ (cwd) | Analysis workspace directory |
REVERSECORE_READ_DIRS | "" | Comma-separated list of additional read-only directories |
REVERSECORE_STRICT_PATHS | false | Raise errors for missing paths instead of warnings |
REVERSECORE_STRUCTURED_ERRORS | false | Enable structured error responses with error codes |
REVERSECORE_DEFAULT_TOOL_TIMEOUT | 120 | Default tool execution timeout in seconds |
REVERSECORE_MAX_OUTPUT_SIZE | 10000000 | Maximum output size for tools (bytes) |
| Variable | Default | Description |
|---|---|---|
MCP_HOST | 0.0.0.0 | Host interface to bind (auto-overrides to 127.0.0.1 if no API key) |
MCP_PORT | 8000 | Port for HTTP server |
MCP_API_KEY | *(unset)* | API key for HTTP authentication (X-API-Key or Authorization: Bearer) |
REVERSECORE_RATE_LIMIT | 60 | Max requests per minute (HTTP mode only, via slowapi) |
MAX_UPLOAD_SIZE | 100000000 | Maximum upload size (100 MB default) |
FILE_RETENTION_MINUTES | 1440 | Retention period for uploaded files (24h default) |
| Variable | Default | Description |
|---|---|---|
REVERSECORE_R2_POOL_SIZE | 3 | Number of Radare2 connections in the pool |
REVERSECORE_R2_POOL_TIMEOUT | 30 | Timeout for acquiring a connection from the pool |
REVERSECORE_R2_EXTENSIONS | "" | Comma-separated list of r2 extension classes (module:ClassName) |
REVERSECORE_GHIDRA_MAX_PROJECTS | 3 | Max cached r2ghidra decompiler projects |
REVERSECORE_GHIDRA_EXTENSIONS | "" | Comma-separated list of Ghidra extension classes |
MAX_EMULATION_INSTRUCTIONS | 1000 | Maximum ESIL emulation instructions |
| Variable | Default | Description |
|---|---|---|
REVERSECORE_SANDBOX_ENABLED | false | Enable sandbox execution for dynamic analysis tools |
REVERSECORE_SANDBOX_MODE | auto | Sandbox mode: auto, host, container, disabled |
REVERSECORE_SANDBOX_DOCKER_IMAGE | reversecore-sandbox:latest | Docker image for sandbox execution |
REVERSECORE_SANDBOX_CPU_LIMIT | 1.0 | CPU core limit for sandbox containers |
REVERSECORE_SANDBOX_MEMORY_LIMIT | 512m | Memory limit for sandbox containers |
REVERSECORE_SANDBOX_PIDS_LIMIT | 100 | PID limit for sandbox containers |
REVERSECORE_SANDBOX_USER | nobody | Non-root user for sandbox execution |
The reversecore_mcp/core/ directory contains the shared infrastructure that all tools build on:
| Module | Purpose |
|---|---|
config.py | Pydantic BaseSettings with 34+ environment variables |
security.py | Input sanitization, command argument validation |
validators.py | File and binary path validation with TOCTOU mitigation, symlink resolution |
r2_pool.py | Thread-safe Radare2 connection pool with configurable size |
r2_helpers.py | Structured Radare2 output parsing |
metrics.py | Per-tool execution times, call counts, error rates, cache statistics |
memory.py | Async SQLite-backed AI memory store for persisting analysis findings across sessions |
mitre_mapper.py | MITRE ATT&CK technique ID mapping engine |
evidence.py | Evidence classification system: OBSERVED, INFERRED, POSSIBLE |
resilience.py | Retry, circuit-breaker, and timeout decorator patterns |
task_queue.py | Background task queue via Redis + arq |
extension_registry.py | Plugin registration and lifecycle management |
arch_registry.py | Multi-architecture mapping (x86, x86_64, ARM32, ARM64, MIPS, RISC-V, PPC → r2 arch/bits/registers) |
result_cache.py | SHA256-based tool result caching decorator (@cache_tool_result) |
analysis_cache.py | Multi-level decompilation cache (L1: Redis, L2: SQLite) |
result.py | ToolSuccess / ToolError Pydantic models |
exceptions.py | 17 exception classes with RCMCP-E* error codes |
decorators.py | @log_execution, @track_metrics |
error_handling.py | @handle_tool_errors decorator |
error_formatting.py | Structured error response formatting |
execution.py | Safe subprocess execution with timeout and output limits |
command_spec.py | Command specification for subprocess calls |
loader.py | Dynamic tool module loader |
plugin.py | Plugin base class |
extension.py | Extension base class |
container.py | Container/sandbox execution support |
audit.py | Audit logging |
binary_cache.py | Binary file caching |
json_utils.py | JSON serialization via orjson (3-5x faster than stdlib json) |
logging_config.py | Loguru-based structured logging |
report_generator.py | Report rendering engine (Markdown, PDF via xhtml2pdf) |
resource_manager.py | MCP resource lifecycle management |
sast/python_ast_scanner.py | Python AST-based vulnerability scanner |
sast/regex_scanner.py | C/C++ regex-based vulnerability scanner |
sast/rule_manager.py | SAST rule loading and management |
---
| # | Tool | Backend | Description |
|---|---|---|---|
| 1 | run_strings | strings CLI | ASCII/Unicode string extraction with configurable min-length |
| 2 | run_binwalk | Binwalk | Firmware deep-scan for embedded signatures and filesystems |
| 3 | run_binwalk_extract | Binwalk | Extract embedded files discovered by binwalk |
| 4 | parse_binary_with_lief | LIEF | Full PE/ELF/Mach-O header, section, import/export, TLS parsing |
| 5 | detect_packer | DIE | Quick packer/compiler detection |
| 6 | detect_packer_deep | DIE (diec) | Deep packer/protector analysis via Detect It Easy |
| 7 | run_capa | CAPA (Mandiant FLARE) | Capability detection — "encrypts data", "creates persistence", etc. |
| 8 | run_capa_quick | CAPA | Quick capability scan with a rule subset |
| 9 | generate_signature | Radare2 | Generate binary signatures for identification |
| 10 | generate_yara_rule | Radare2 + YARA | Generate YARA detection rules from binary patterns |
| 11 | generate_advanced_yara_rule | Radare2 + YARA | Advanced YARA rules with behavioral indicators |
| 12 | scan_for_versions | LIEF + strings | Scan binary for embedded version strings |
| 13 | extract_rtti_info | Radare2 | Extract C++ RTTI (Run-Time Type Information) |
| 14 | diff_binaries | Radare2 | Semantic binary diff between two file versions |
| 15 | analyze_variant_changes | Radare2 | Analyze changes between binary variants |
| 16 | match_libraries | Radare2 | Identify statically linked libraries by function fingerprint |
| 17 | patch_diff_1day | Radare2 + heuristics | Automated patch diff analysis for 1-day vulnerability research |
| 18 | analyze_patch_diff_auto | Radare2 + inference | Automated patch vulnerability inference |
| 19 | emulate_binary | Radare2 ESIL | Register/memory-traced code emulation |
| 20 | generate_fuzzing_harness | Qiling + AFL++ | Generate a fuzzing harness targeting a specific function |
| 21 | run_fuzzing_campaign | AFL++ | Run a full fuzzing campaign with crash collection |
| 22 | triage_crash | GDB | Crash parsing and exploitability assessment |
| 23 | verify_path_and_get_args | angr | Symbolic execution — prove path reachability and compute concrete inputs |
| 24 | taint_trace | Radare2 + angr | Data-flow taint analysis from sources to sinks |
---
| # | Tool | Backend | Description |
|---|---|---|---|
| 25 | audit_source_code | AST + Regex | Python AST scanning + C/C++ regex scanning for dangerous patterns |
---
File Operations (5 tools)
| # | Tool | Description |
|---|---|---|
| 26 | run_file | File type, architecture, and compiler fingerprinting |
| 27 | copy_to_workspace | Copy a file into the analysis workspace |
| 28 | create_directory | Create a directory in the workspace |
| 29 | list_workspace | List all files in the workspace |
| 30 | scan_workspace | Full workspace scan with file metadata |
Patch Explanation (1 tool)
| # | Tool | Description |
|---|---|---|
| 31 | explain_patch | Explain a binary patch in natural language |
Assembler (1 tool)
| # | Tool | Backend | Description |
|---|---|---|---|
| 32 | assemble_instructions | Keystone | Assemble instructions to machine code (x86, ARM, MIPS, etc.) |
AI Memory Management (11 tools)
These tools let the AI persist and recall findings across analysis sessions using an async SQLite database:
| # | Tool | Description |
|---|---|---|
| 33 | create_memory_session | Start a new memory session for an analysis |
| 34 | store_analysis_finding | Persist an analysis finding with tags |
| 35 | query_analysis_memories | Search past findings by query |
| 36 | get_binary_analysis_context | Retrieve all context for a specific binary |
| 37 | tag_analysis_session | Add tags to a session for organization |
| 38 | search_memories_by_tag | Find sessions/findings by tag |
| 39 | delete_analysis_session | Remove a session and its findings |
| 40 | cleanup_expired_sessions | Remove sessions older than a threshold |
| 41 | list_analysis_sessions | List all active sessions |
| 42 | export_memory_store | Export all memories to a portable format |
| 43 | import_memory_store | Import memories from an export file |
Server Monitoring (2 tools)
| # | Tool | Description |
|---|---|---|
| 44 | get_server_health | Uptime, memory usage, loaded tools, Python version |
| 45 | get_tool_metrics | Per-tool call counts, mean execution times, error rates, cache hit/miss |
---
All Radare2 tools use a thread-safe connection pool (r2_pool.py) that automatically manages r2pipe sessions.
| # | Tool | Description |
|---|---|---|
| 46 | Radare2_open_file | Open a binary file in Radare2 |
| 47 | Radare2_close_file | Close a Radare2 session |
| 48 | Radare2_list_open_files | List currently open files |
| 49 | Radare2_analyze_binary | Run full auto-analysis (aaa) |
| 50 | Radare2_list_functions | List all detected functions |
| 51 | Radare2_disassemble_function | Disassemble a specific function |
| 52 | Radare2_disassemble_address | Disassemble at a specific address |
| 53 | Radare2_decompile_function | Decompile via r2ghidra (Ghidra engine embedded in r2, no JVM needed) |
| 54 | Radare2_list_exports | List exported symbols |
| 55 | Radare2_list_imports | List imported functions |
| 56 | Radare2_list_sections | List binary sections with entropy |
| 57 | Radare2_list_strings | List strings found in the binary |
| 58 | Radare2_find_cross_references | Track function calls and data references |
| 59 | Radare2_search_bytes | Search for byte patterns in the binary |
| 60 | Radare2_get_binary_info | Get binary metadata (arch, format, endianness) |
| 61 | Radare2_execute_command | Execute a raw Radare2 command |
| 62 | Radare2_esil_emulate | ESIL emulation at a specific address |
| 63 | Radare2_get_hexdump | Hex dump at a virtual address |
| 64 | Radare2_get_cfg_data | Extract control flow graph data |
| 65 | Radare2_generate_cfg_png | Generate CFG as PNG image |
| 66 | Radare2_generate_callgraph | Generate function call graph |
| 67 | Radare2_recover_structures | Auto-recover C structs and persist to annotation database |
| 68 | Radare2_decompile_with_r2ghidra | High-quality C decompilation with caching |
| 69 | Radare2_annotate_binary | Add annotations to the binary |
| 70 | Radare2_get_annotations | Retrieve annotations |
| 71 | Radare2_export_annotations | Export annotations to file |
| 72 | Radare2_import_annotations | Import annotations from file |
| 73 | Radare2_detect_crypto_constants | Detect cryptographic constants (AES S-box, etc.) |
| 74 | Radare2_find_gadgets | Find ROP/JOP gadgets |
| 75 | Radare2_calculate_entropy | Calculate per-section entropy |
---
| # | Tool | Backend | Description |
|---|---|---|---|
| 76 | dormant_detector | Radare2 + heuristics | Find hidden backdoors, orphan functions, time-bombs, logic bombs |
| 77 | adaptive_vaccine | YARA + Radare2 | Generate detection YARA rules + binary patches to neutralize threats |
| 78 | vulnerability_hunter | Radare2 + analysis | Detect dangerous API patterns (strcpy, sprintf) and ROP gadget chains |
| 79 | extract_iocs | Regex + LIEF | Extract IPs, URLs, domains, hashes, registry keys, crypto addresses |
| 80 | run_yara | YARA | Scan with custom rule files and built-in rulesets |
| 81 | generate_poc_exploit | pwntools | Generate proof-of-concept exploit code |
| 82 | build_rop_chain | ROPgadget + pwntools | Automated ROP chain construction |
| 83 | autonomous_vuln_hunt | Radare2 + angr | Autonomous vulnerability hunting pipeline |
| 84 | analyze_heap_exploit | Radare2 + heuristics | Heap exploitation analysis (UAF, double-free, overflow) |
---
Memory Forensics (6 tools)
| # | Tool | Backend | Description |
|---|---|---|---|
| 85 | memory_analyze | Volatility3 | Full memory dump analysis |
| 86 | memory_list_processes | Volatility3 | List running processes from memory dump |
| 87 | memory_detect_injections | Volatility3 | Detect code injection in process memory |
| 88 | memory_extract_strings | Volatility3 | Extract strings from process memory |
| 89 | memory_dump_module | Volatility3 | Dump a loaded module from memory |
| 90 | memory_list_symbols | Volatility3 | List symbols from memory |
Disk Forensics (6 tools)
| # | Tool | Backend | Description |
|---|---|---|---|
| 91 | disk_list_partition | Sleuth Kit | List disk partitions |
| 92 | disk_list_files | Sleuth Kit | List files in a disk image |
| 93 | disk_recover_deleted | Sleuth Kit | Recover deleted files |
| 94 | disk_analyze_mft | Sleuth Kit | Analyze NTFS Master File Table |
| 95 | disk_extract_file | Sleuth Kit | Extract a file from disk image |
| 96 | disk_hash_verify | Sleuth Kit | Verify file integrity via hash |
Network Forensics (5 tools)
| # | Tool | Backend | Description |
|---|---|---|---|
| 97 | pcap_analyze | Scapy | PCAP analysis: protocol breakdown, anomalies |
| 98 | pcap_list_connections | Scapy | List all network connections |
| 99 | pcap_extract_dns | Scapy | Extract DNS queries and responses |
| 100 | pcap_extract_c2 | Scapy | Identify potential C2 communication |
| 101 | pcap_reconstruct_stream | Scapy | Reconstruct TCP streams |
Artifact Analysis (5 tools)
| # | Tool | Backend | Description |
|---|---|---|---|
| 102 | artifact_collect | Custom parsers | Collect browser history, registry hives, event logs, prefetch |
| 103 | artifact_correlate_ioc | Custom parsers | Correlate artifacts with known IOCs |
| 104 | artifact_generate_yara | YARA | Generate YARA rules from artifact patterns |
| 105 | artifact_timeline | Custom parsers | Build timeline from multiple artifact sources |
| 106 | artifact_report | Custom parsers | Generate artifact analysis report |
---
| # | Tool | Description |
|---|---|---|
| 107 | get_system_time | Get server timestamp (prevents AI from hallucinating dates) |
| 108 | set_timezone | Set the reporting timezone |
| 109 | get_timezone_info | Get current timezone information |
| 110 | start_report_session | Start a timed analysis session with unique ID |
| 111 | end_report_session | Finalize session: compute duration, lock IOC/ATT&CK lists |
| 112 | get_report_session_status | Check session status |
| 113 | list_report_sessions | List all active/completed sessions |
| 114 | add_ioc | Collect and tag IOCs during a live session |
| 115 | add_analysis_note | Add categorized notes (finding, warning, behavior) |
| 116 | add_mitre_technique | Document MITRE ATT&CK technique IDs |
| 117 | set_severity | Set session severity (low/medium/high/critical) |
| 118 | create_analysis_report | Render report in 4 modes: full_analysis, quick_triage, ioc_summary, executive_brief |
| 119 | generate_vex_report | Generate a VEX (Vulnerability Exploitability eXchange) report |
| 120 | generate_sigma_rule | Generate SIGMA detection rules |
---
| Variable | Default | Description |
|---|---|---|
REVERSECORE_PLUGIN_DIRS | "" | Comma-separated directories to scan for extension plugins |
REVERSECORE_SAST_RULES_PATH | "" | Path to custom YAML SAST rules file |
---
Every push to main triggers 11 pipeline jobs. All must pass before deployment.
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
Zero-bypass policy: CI/CD failures are never resolved by modifying pipeline configuration. Root causes are always fixed directly in source code or dependencies.
---
Reversecore_MCP 是一个基于 MCP 协议构建的自动化恶意软件分析工具。该项目旨在通过集成先进的反汇编能力,为安全分析师提供高效的自动化分析工作流,支持从样本上传到报告生成的全生命周期管理,是提升恶意软件研究效率的强大助手。
本项目具备强大的自动化分析能力,核心功能涵盖了从样本初步分拣(Triage)到深度反汇编(Decompile)的全过程。通过集成 Ghidra 引擎,它可以实现复杂的代码逻辑分析,并结合专家级推理模式,为安全研究人员提供结构化的证据分类与分析报告。
运行本项目需要安装 Python 3.10+ 环境以及 FastMCP 框架。特别需要注意的是,为了实现高级反汇编功能,系统必须配置 Ghidra。项目提供了自动化安装脚本,可将 Ghidra 部署在项目指定的 Tools 目录下,确保分析环境的完整性。
推荐使用 Docker 进行部署,通过构建 Docker 镜像可以实现跨架构的快速运行。对于开发者,也可以通过 pip 安装 requirements-dev.txt 中的依赖进行本地开发。此外,项目支持通过提供的 PowerShell 或 Shell 脚本自动下载并配置特定版本的 Ghidra,简化了手动配置的复杂度。
项目支持多种交互模式。你可以通过单次 JSON 提交(One-Shot Submission)快速生成恶意软件提交记录;也可以进入交互式会话(Interactive Session),通过一系列指令完成从启动分析、添加 IOC、关联 MITRE ATT&CK 框架到最终生成并发送分析报告的完整闭环操作。
用户可以通过脚本自定义 Ghidra 的版本与安装路径。通过运行 install-ghidra 脚本,系统会自动下载指定版本、解压至指定目录并自动更新项目的 .env 配置文件,设置好 GHIDRA_INSTALL_DIR 环境变量,确保 MCP Client(如 Cursor AI)能够正确调用底层分析引擎。
本项目提供了丰富的 API 接口,支持自动化分析流程中的各个环节。开发者可以通过调用特定的函数实现样本上传、交叉引用(X-Refs)查询、结构体分析以及反汇编指令,从而构建高度定制化的自动化安全分析流水线。
项目内置了标准化的分析工作流:从样本上传(Upload)开始,经过分拣(Triage)、交叉引用(X-Refs)、结构体分析(Structures)、反汇编(Decompile)直至最终的防御建议(Defense)。用户可以使用内置的 full_analysis_mode 进行深度专家级推理分析,或使用 basic_analysis_mode 进行快速分拣。
MCP框架下的专业逆向工程工具集成方案,填补AI智能体在程序分析领域空白,架构设计安全优先,Stars增长稳健,具有专业价值。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
经综合评估,Reversecore MCP逆向工程服务 在MCP工具赛道中表现稳健,质量优秀。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。
| 原始名称 | Reversecore_MCP |
| 原始描述 | 开源MCP工具:A security-first MCP server empowering AI agents to orchestrate Ghidra, Radare2,。⭐62 · Python |
| Topics | 逆向工程MCP服务器GhidraRadare2二进制分析 |
| GitHub | https://github.com/sjkim1127/Reversecore_MCP |
| License | MIT |
| 语言 | Python |
收录时间:2026-05-25 · 更新时间:2026-05-30 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端