Communitygithub.com

Adrian-Devkay/reverse-engineering-mcp

高度なエビデンス駆動型、再現可能なリバースエンジニアリングCodexスキル

reverse-engineering-mcp とは?

このスキルは、権限のあるアーティファクトから防御可能なリバースエンジニアリングの結論を導き出すための包括的なフレームワークを提供します。静的分析、制御された実行、エミュレーション、インストルメンテーション、プロトコル推論、脆弱性トリアージ、レポート作成を調整しながら、証拠を保存し、運用上の悪用を回避します。主にCodexエージェント向けに設計されており、ユーザーがバイナリ、ファームウェアイメージ、プロトコル、ファイル形式、または不審なサンプルを理解、逆コンパイル、デバッグ、インストルメント、比較、エミュレート、ファジング、または文書化する必要がある場合に使用します。このスキルは、厳格な非交渉の運用契約に基づいて動作し、スコープ設定、証拠の完全性、観察と推論の分離、仮説検証、独立した相互検証を必須とします。分析ライフサイクルは7つのフェーズ(スコープゲート、取り込みと完全性、トリアージ、静的再構築、仮説検証、制御された動的分析、相関とトリアージ、レポート作成)で構成され、各フェーズに詳細なチェックリストがあります。また、Ghidra、GDB、QEMU、Unicorn、angrなど、さまざまなツールバックエンドをサポートし、質問の種類に基づいて適切なバックエンドを推奨します。このスキルは、マルウェア解析、脆弱性解析、ファームウェア/ハードウェア解析、プロトコル/ファイル形式解析、難読化/アンチ解析対策など、さまざまなシナリオに対応するための専門モードも提供します。

対応~Claude Code✓Codex CLI~Cursor
npx skills add Adrian-Devkay/reverse-engineering-mcp

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Reverse engineering-mcp

ミッション

権限のあるアーティファクトから防御可能なリバースエンジニアリングの結論を導き出します。このスキルは、静的分析、制御された実行、エミュレーション、インストルメンテーション、プロトコル推論、脆弱性トリアージ、およびレポート作成を調整し、証拠を保存し、運用上の悪用を回避します。

ユーザーが既存のバイナリ、アプリケーション、ファームウェアイメージ、プロトコル、ファイル形式、または不審なサンプルを理解、逆コンパイル、デバッグ、インストルメント、比較、エミュレート、ファズ、または文書化するように依頼した場合にこのスキルを使用します。このスキルは、ターゲットが利用可能であるという理由だけで、ターゲットへのアクセス許可を与えるものではありません。

非交渉の運用契約

  1. ターゲットに触れる前にスコープを確立する:所有者または許可の根拠、正確なアーティファクト/デバイス/サービス、許可された手法、時間枠、ネットワーク制限、データ処理、および停止条件。
  2. 元のアーティファクトを保存する。コピーから作業し、最初にSHA-256とサイズを記録し、来歴、タイムスタンプ、ツールバージョン、変換、および重要なコマンドを保持する。
  3. オフライン、読み取り専用、可逆的な分析を優先する。通常の分析中に、資格情報を送信したり、実際のコマンド&コントロールインフラストラクチャに接続したり、本番システムを変更したり、ハードウェアをフラッシュしたりしないでください。
  4. 観察結果と推論を分離する。主張をObserved、Inferred、またはUnknownとしてラベル付けし、オフセット、アドレス、トレース、パケット、ログ、または再現可能な実験を引用する。
  5. 仮説と受理基準を使用する。高価または実行可能なアクションはすべて、定義された質問に答え、どの結果が仮説を確認または弱めるかを示さなければならない。
  6. 独立したビュー(逆コンパイラとアセンブリ、静的構造とランタイムトレース、形式の仮説と差分入出力)で重要な結論を相互検証する。
  7. カバレッジと制限事項を明記する。静かなトレース、欠落したシンボル、不完全なエミュレーション、または再現されないクラッシュは、存在しないことの証明にはならない。

分析ライフサイクル

ユーザーがより狭いタスクを要求しない限り、このライフサイクルに従ってください。詳細なフェーズチェックリストについては、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または同等の分離、クリーンなスナップショット、無効化/シミュレートされたネットワーキング、実際の資格情報なし、および明示的なサンプル固有の承認が必要です。外部ネットワークアクセス、本番環境との相互作用、ファームウェアのフラッシュ、認証/ライセンスバイパス、またはローカルの認可されたラボ外でのエクスプロイトテストの前には一時停止します。

主要な目的が不正アクセス、資格情報の盗難、永続化、回避、破壊行為、情報流出、またはセキュリティ制御のバイパスであるリクエストは、拒否するかリダイレクトします。運用範囲が存在しない場合、防御的なおもちゃの例、静的な調査計画、または所有サンプルの分析は許容されます。

再現性基準

ユーザーが別の形式を要求しない限り、以下を返します:

  1. スコープ、承認の前提、除外、およびターゲットインベントリ。
  2. アーティファクトハッシュ、環境、ツールバージョン、および封じ込め。
  3. 順序付けられた方法と分析タイムライン。
  4. 信頼度と代替案を伴う証拠に基づく発見。
  5. 影響、是正、検出、または互換性のガイダンス。
  6. 制限事項、未回答の質問、および今後の実験。
  7. コマンド、スクリプト、オフセット、トレース、キャプチャ、および出力参照の安全な付録。

生成されたマニフェスト、サンプル、ログ、資格情報、ローカルパス、およびプライベート識別子は、この公開スキルリポジトリの外部に保管してください。

関連スキル