mcpField
M
mcp_reverse_engineering

mcp_reverse_engineering

ローカル
github.com/daedalusセキュリティ126 週間前に更新

mcp_reverse_engineering について

mcp_reverse_engineeringは、コマンドライン、Python API、MCP サーバーからリバースエンジニアリングツールを実行するサンドボックス環境です。ファイルシステム分離、タイムアウト、引数検証により、バイナリ解析時の実行を制限します。

主な機能

  1. 01解析ツールへの統一アクセス
  2. 02ファイルシステム分離での実行
  3. 03タイムアウトと引数検証
  4. 04コマンドライン、Python API、MCP サーバー

活用シーン

  1. 01バイナリから可読文字列を抽出
  2. 02objdumpによるバイナリの逆アセンブル
  3. 03readelfによるELFヘッダーの確認

MCP 対応

strings、objdump、readelf、binwalkなどのリバースエンジニアリングツールをMCP クライアントに公開します。ツール実行はサンドボックスのワークスペースと安全制限の対象です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"daedalus-mcp-reverse-engineering": {
"command": "uvx",
"args": [
"mcp_reverse_engineering"
]
}
}
}
起動コマンドuvx mcp_reverse_engineering

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp_reverse_engineering0.1.0.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-reverse-engineering

セキュリティ制限を備え、さまざまなリバースエンジニアリングツールへの統一インターフェースを提供する、サンドボックス化されたリバースエンジニアリング用MCP(Model Context Protocol)ツールです。

PyPI Python RuffAsk DeepWiki

目的

このプロジェクトは、コマンドラインまたは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ツールのスキーマを取得します
利用可能なツール
ツールカテゴリ説明
filefile_toolsファイルの種類を判定します
stringsfile_tools印字可能な文字列を抽出します
hexdumpfile_tools16進ダンプ
xxdfile_tools16進ダンプ
objdumpbinary_toolsバイナリを逆アセンブルします
readelfbinary_toolsELFヘッダーを読み取ります
binwalkfirmware_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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。