mcp_reverse_engineering について
mcp_reverse_engineeringは、コマンドライン、Python API、MCP サーバーからリバースエンジニアリングツールを実行するサンドボックス環境です。ファイルシステム分離、タイムアウト、引数検証により、バイナリ解析時の実行を制限します。
主な機能
- 01解析ツールへの統一アクセス
- 02ファイルシステム分離での実行
- 03タイムアウトと引数検証
- 04コマンドライン、Python API、MCP サーバー
活用シーン
- 01バイナリから可読文字列を抽出
- 02objdumpによるバイナリの逆アセンブル
- 03readelfによるELFヘッダーの確認
MCP 対応
strings、objdump、readelf、binwalkなどのリバースエンジニアリングツールをMCP クライアントに公開します。ツール実行はサンドボックスのワークスペースと安全制限の対象です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-reverse-engineering
セキュリティ制限を備え、さまざまなリバースエンジニアリングツールへの統一インターフェースを提供する、サンドボックス化されたリバースエンジニアリング用MCP(Model Context Protocol)ツールです。
目的
このプロジェクトは、コマンドラインまたはMCPプロトコル経由でリバースエンジニアリングツールを実行するための、安全なサンドボックス環境を提供します。一般的なリバースエンジニアリングユーティリティ(strings、objdump、readelf、binwalkなど)を、ファイルシステムの分離、タイムアウト、引数の検証といった安全機能とともにラップします。
インストール
pip install mcp-reverse-engineering
開発用の場合:
pip install -e ".[dev]"
MCP サーバーのインストール
Claude DesktopでMCP サーバーとして使用するには:
mcp install src/mcp_reverse_engineering/server.py
使用方法
CLI
# Extract strings from a binary
mcp-re --tool strings --file /path/to/binary
# Disassemble a binary
mcp-re --tool objdump --args "['-d']" --file /path/to/binary
# Analyze ELF headers
mcp-re --tool readelf --args "['-h', '-s']" --file /path/to/elf
# Run binwalk for firmware analysis
mcp-re --tool binwalk --file /path/to/firmware.bin
Python API
from mcp_reverse_engineering import ReverseEngineeringEngine
# Create engine with default config
engine = ReverseEngineeringEngine(
workspace="./workspace",
timeout=30,
)
# List available tools
print(engine.list_available_tools())
# Execute a tool
result = engine.execute_tool("strings", ["-n", "8"], "/path/to/binary")
print(result)
MCP サーバー
from mcp_reverse_engineering.server import mcp, strings, objdump, readelf, binwalk
# Run the server (stdio transport for Claude Desktop)
if __name__ == "__main__":
mcp.run()
API
ReverseEngineeringEngine
リバースエンジニアリングツールを実行するメインクラスです。
engine = ReverseEngineeringEngine(
workspace: str = "./workspace", # Sandbox directory
timeout: int = 30, # Tool execution timeout
config_path: str | Path | None = None, # YAML config path
)
メソッド:
execute_tool(tool_name: str, args: List[str], file_path: Optional[str] = None) -> str- ツールを実行しますlist_available_tools() -> List[str]- 有効なツールを一覧表示しますget_tool_documentation(tool_name: str) -> Dict[str, Any]- ツールのドキュメントを取得しますget_mcp_tools() -> List[Dict[str, Any]]- MCPツールのスキーマを取得します
利用可能なツール
| ツール | カテゴリ | 説明 |
|---|---|---|
| file | file_tools | ファイルの種類を判定します |
| strings | file_tools | 印字可能な文字列を抽出します |
| hexdump | file_tools | 16進ダンプ |
| xxd | file_tools | 16進ダンプ |
| objdump | binary_tools | バイナリを逆アセンブルします |
| readelf | binary_tools | ELFヘッダーを読み取ります |
| binwalk | firmware_tools | ファームウェアを解析します |
開発
# Clone the repository
git clone https://github.com/daedalus/mcp_reverse_engineering.git
cd mcp_reverse_engineering
# Install dependencies
pip install -e ".[test]"
# Run tests
pytest
# Format code
ruff format src/ tests/
# Lint
ruff check src/ tests/
# Type check
mypy src/
# Install pre-commit hooks
pip install pre-commit
pre-commit install
MCP サーバーの設定
mcp-name: io.github.daedalus/mcp-reverse-engineering
要件
- Python 3.11+
- 外部ツール:binwalk、radare2、ghidraなど(別途インストールが必要です)
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。