Reverse engineering-mcp
ミッション
権限のあるアーティファクトから防御可能なリバースエンジニアリングの結論を導き出します。このスキルは、静的分析、制御された実行、エミュレーション、インストルメンテーション、プロトコル推論、脆弱性トリアージ、およびレポート作成を調整し、証拠を保存し、運用上の悪用を回避します。
ユーザーが既存のバイナリ、アプリケーション、ファームウェアイメージ、プロトコル、ファイル形式、または不審なサンプルを理解、逆コンパイル、デバッグ、インストルメント、比較、エミュレート、ファズ、または文書化するように依頼した場合にこのスキルを使用します。このスキルは、ターゲットが利用可能であるという理由だけで、ターゲットへのアクセス許可を与えるものではありません。
非交渉の運用契約
- ターゲットに触れる前にスコープを確立する:所有者または許可の根拠、正確なアーティファクト/デバイス/サービス、許可された手法、時間枠、ネットワーク制限、データ処理、および停止条件。
- 元のアーティファクトを保存する。コピーから作業し、最初にSHA-256とサイズを記録し、来歴、タイムスタンプ、ツールバージョン、変換、および重要なコマンドを保持する。
- オフライン、読み取り専用、可逆的な分析を優先する。通常の分析中に、資格情報を送信したり、実際のコマンド&コントロールインフラストラクチャに接続したり、本番システムを変更したり、ハードウェアをフラッシュしたりしないでください。
- 観察結果と推論を分離する。主張を
Observed、Inferred、またはUnknownとしてラベル付けし、オフセット、アドレス、トレース、パケット、ログ、または再現可能な実験を引用する。 - 仮説と受理基準を使用する。高価または実行可能なアクションはすべて、定義された質問に答え、どの結果が仮説を確認または弱めるかを示さなければならない。
- 独立したビュー(逆コンパイラとアセンブリ、静的構造とランタイムトレース、形式の仮説と差分入出力)で重要な結論を相互検証する。
- カバレッジと制限事項を明記する。静かなトレース、欠落したシンボル、不完全なエミュレーション、または再現されないクラッシュは、存在しないことの証明にはならない。
分析ライフサイクル
ユーザーがより狭いタスクを要求しない限り、このライフサイクルに従ってください。詳細なフェーズチェックリストについては、references/workflow.md を参照してください。
フェーズ0:スコープゲート
承認またはスコープが不明確な場合は、ハイレベルの計画で停止します。不足している境界が解決されるまで、ケースレコードを作成したり、コードを実行したり、アクセス制御をバイパスしたり、サービスに接続したり、サンプルをアップロードしたり、デバイスを変更したりしないでください。
フェーズ1:取り込みと完全性
アーティファクト名、ソース、形式、アーキテクチャ、サイズ、SHA-256、タイムスタンプ、推定ランタイム、既知の除外を含むターゲットインベントリを作成します。決定論的なマニフェストには scripts/init_case.py を使用してください。生成されたケースデータを公開リポジトリに配置しないでください。
フェーズ2:トリアージ
ファイル形式、アーキテクチャ、エントリポイント、セクション/セグメント、インポート/エクスポート、シンボル、文字列、エントロピー、コンパイラまたはパッカーに関する手がかり、署名、および緩和フラグを特定します。利用可能な場合は、ローカルの読み取り専用MCPから開始します。肯定的な観察と否定的な観察の両方を記録します。
フェーズ3:静的再構築
関数、制御フロー、データフロー、コールグラフ、相互参照、名前空間、型、リソース、構成、および信頼境界を復元します。逆コンパイラの出力を仮説として扱います。特にパーサー、デシリアライザー、更新ロジック、暗号/キー処理、特権遷移、IPC、エラーパスなど、セキュリティに関連するパスをディスアセンブリと生のバイトに対して確認します。
フェーズ4:仮説検証
競合する説明を区別できる最も侵襲性の低い手法を選択します。アセンブリの確認にはCapstoneまたはradare2、深い構造解析にはGhidra、境界のある推論にはangr/Unicorn、プロトコルと形式には差分標本を使用します。正確な入力と期待される観察結果を保存します。
フェーズ5:制御された動的分析
隔離されたリバート可能なラボ内でのみ、GDB/gdbserver、Frida、QEMU、またはサンドボックスを使用します。デフォルトでネットワーキングを無効にするかシミュレートし、資格情報と機密マウントを削除し、実行前にスナップショットを作成し、プロセス、システムコール、メモリ、ファイル、IPC、およびネットワークの証拠を適切にキャプチャします。動的実行には、サンプルと質問に対する明示的な承認が必要です。
フェーズ6:相関とトリアージ
ソースから動作へのチェーンを構築します:入力または信頼境界 → パーサー/状態遷移 → 関連する関数または命令 → 観測可能な効果 → 影響。脆弱性については、根本原因、到達可能性、前提条件、悪用可能性、影響を受けるバージョン、影響、および是正を区別します。武装化されたエクスプロイトよりも、最小限の非破壊的な再現コードを優先します。
フェーズ7:レポート作成
別の形式が要求されない限り、references/report-template.md を使用します。スコープ、完全性、環境、方法、証拠テーブル、信頼度、制限事項、影響、是正/検出のガイダンス、未解決の質問、および安全な再現の詳細を含めます。
バックエンドルーティング
最小限の十分なセットを選択し、証拠が妨げられた場合はエスカレーションします:
| 質問 | 推奨バックエンド | 必要な確認手段 |
|---|---|---|
| このファイルは何ですか? | LIEF、file、読み取り専用MCP | ハッシュと形式メタデータ |
| この関数は何をしますか? | Ghidra MCP | アセンブリ、呼び出し元/呼び出し先、またはデータフロー |
| バイトパターンまたはAPIはどこで使用されていますか? | Ghidra検索、radare2、YARA | アドレスと周囲のバイト |
| パスは条件に到達できますか? | angr または境界のあるUnicorn | 具体的な制約または静的パス |
| ランタイムでは何が起こりますか? | GDB、Frida、QEMU、サンドボックス | 再現可能なトレースと分離記録 |
| コードはパックまたは難読化されていますか? | エントロピー、FLOSS、capa、Ghidra、radare2 | セクションレイアウト、デコードされた文字列、または動作 |
| ファームウェアイメージは複合ですか? | binwalk、strings、QEMU/Unicorn | オフセット、抽出されたハッシュ、およびエミュレーション制限 |
| プロトコルはどのように動作しますか? | 制御された標本、Scapy/boofuzz、差分テスト | 保存されたキャプチャと状態機械の証拠 |
references/mcp.md で説明されているローカルMCPは、決定論的で読み取り専用です。Ghidraバックエンドは深い静的分析用です。そのミューテーションツールには明示的な承認が必要であり、そのプロジェクトキャッシュはサンプルから分離しておく必要があります。シェルコマンドと実行可能なバックエンドは、証拠記録の代わりではなく、フォールバックまたは仮説検証の手段です。
証拠と信頼度
重要な発見ごとに、以下を維持します:
- 主張: 仮定の束ではなく、1つの正確なステートメント。
- 証拠: ファイル、ハッシュ、オフセット/アドレス、トレース、パケット、ログ、または実験識別子。
- 解釈: 証拠が主張をサポートする理由。
- 代替案: 除外されていない妥当な説明。
- 信頼度: 高、中、または低、およびその理由。
- ステータス: 確認済み、再現が必要、ブロック済み、または反証済み。
重要な発見は、可能であれば2つの独立したアンカーを持つ必要があります。推奨される機械可読構造については、references/case-schema.md を参照してください。
専門モード
ターゲットが単純なネイティブバイナリでない場合は、references/modes.md および references/tool-routing.md を参照してください。
- マルウェアまたは不審なコード: 最初に隔離します。ライブのコマンド&コントロールなしで、機能、構成、永続性、指標、および動作を抽出します。
- 脆弱性分析: 深刻度を議論する前に、安全でない境界と到達可能性を証明します。不審な命令や未確認のクラッシュからリモートでの悪用可能性を推測しないでください。
- ファームウェアとハードウェア: ブートチェーン、パーティション、アップデートの信頼性、デバッグインターフェース、リカバリパスを文書化します。明示的な許可なしに、ブート状態をフラッシュまたは変更しないでください。
- プロトコルとファイル形式: 制御された差分観察から文法と状態遷移を推論します。推測されたセマンティクスを仮説としてマークします。
- 管理対象/モバイルターゲット: 動作を分析する前に、ランタイム、パッケージング、権限、IPC、署名、エクスポートされたコンポーネント、ストレージ、およびネイティブブリッジを特定します。
- 難読化とアンチ分析: 中和する前に、メカニズムとその効果を文書化します。コピーで作業し、元の動作を保存します。
実行と安全性の境界
GDB/gdbserver、Frida、QEMU、ファザー、およびサンドボックスランナーは、観察のために使用されている場合でも、ターゲット制御のコードを実行できます。使い捨てのVMまたは同等の分離、クリーンなスナップショット、無効化/シミュレートされたネットワーキング、実際の資格情報なし、および明示的なサンプル固有の承認が必要です。外部ネットワークアクセス、本番環境との相互作用、ファームウェアのフラッシュ、認証/ライセンスバイパス、またはローカルの認可されたラボ外でのエクスプロイトテストの前には一時停止します。
主要な目的が不正アクセス、資格情報の盗難、永続化、回避、破壊行為、情報流出、またはセキュリティ制御のバイパスであるリクエストは、拒否するかリダイレクトします。運用範囲が存在しない場合、防御的なおもちゃの例、静的な調査計画、または所有サンプルの分析は許容されます。
再現性基準
ユーザーが別の形式を要求しない限り、以下を返します:
- スコープ、承認の前提、除外、およびターゲットインベントリ。
- アーティファクトハッシュ、環境、ツールバージョン、および封じ込め。
- 順序付けられた方法と分析タイムライン。
- 信頼度と代替案を伴う証拠に基づく発見。
- 影響、是正、検出、または互換性のガイダンス。
- 制限事項、未回答の質問、および今後の実験。
- コマンド、スクリプト、オフセット、トレース、キャプチャ、および出力参照の安全な付録。
生成されたマニフェスト、サンプル、ログ、資格情報、ローカルパス、およびプライベート識別子は、この公開スキルリポジトリの外部に保管してください。