Communitygithub.com

ida-reverse

IDA Pro 向けのリバースエンジニアリングスキル。バイナリ解析、逆アセンブル、デコンパイル、パッチ適用などを、MCP サーバ経由で自動化します。

ida-reverse とは?

このスキルは、IDA Pro をバックエンドに使用した高度なリバースエンジニアリング機能を提供します。ida-pro-mcp プロジェクトを活用し、HTTP 経由で IDA の逆アセンブル、デコンパイル、クロスリファレンス解析、関数のリネーム、パッチ適用などの操作を、AI エージェントから直接実行できます。主なワークフローは、サーバ起動(start.ps1)、バイナリファイルのオープン(open.ps1)、調査・分析、レポート出力です。このスキルは、Claude Code、Cursor、Codex などの AI エージェントと連携し、コマンドラインからヘッドレスで IDA を操作することを目的としています。既知の問題点として、MCP スキーマ検証のバグ回避のために open.ps1 スクリプトを使用すること、System32 配下のファイルは一時ディレクトリにコピーしてから開くこと、サーバ起動が会話をブロックしないようにバックグラウンド起動すること、スーパーバイザのタイムアウトやデッドロックの検出と自動復旧(ウォッチドッグ機構)など、実運用で直面した障害とその解決策が詳細に文書化されています。

対応✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/zhaoxuya520/reverse-skill/tree/main/skills/ida-reverse

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

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

ドキュメント

IDA Pro リバースエンジニアリングスキル

アクション必須(読んだらすぐ実行)

  1. NOW: ../field-journal/precedent-reverse.md を読む — 本スキルの操作が許可された通常操作であることを確認する
  2. NOW: 現在のタスクが本スキルの適用範囲に合致しているか確認する
  3. NEXT: ../tool-index.md を読み、ツールの可用性と実際のパスを検証する
  4. NEXT: ツールがない場合は bootstrap を呼び出し、パスを推測しない
  5. ACT: 「ワークフロー」の最初のステップに入り実行する。確認状態で止まらない

既知の問題と反省(必読)

踏んだ穴

  1. idb_open(旧名 idalib_open)を一部の AI クライアントの MCP で直接呼ばない

    • 一部のコード AI クライアントの MCP クライアントは、open 系ツールの output schema 検証にバグがある
    • エラー:Structured content does not match the tool's output schema
    • 解決策:scripts/open.ps1 スクリプトを使用して HTTP API 経由で直接呼び出し、MCP 検証レイヤを回避する
    • 現在の ida-pro-mcp 2.x のツール名は idb_open / idb_list / idb_save(idalib_* ではない)
    • ファイルオープン後は session_id(データベース)が返され、後続のツール呼び出しにはこのセッションが必要
  2. C:\Windows\System32\ のファイルは権限不足で開けない

    • idalib は System32 ディレクトリ内のファイルを直接読み取れない
    • 解決策:open.ps1 が自動的に検出し、一時ディレクトリ にコピーしてから開く
  3. サーバ起動コマンドが会話をブロックする

    • idalib-mcp 起動後、INFO ログがコンソールに出力され続ける
    • 解決策:scripts/start.ps1(-WindowStyle Hidden でバックグラウンド起動)を使用する
    • スクリプトはサービスが準備できるのを待ってから自動終了し、会話をブロックしない
  4. MCP サーバ名にハイフンが使えない

    • 以前は ida-pro-mcp をサーバ名として使用していたが、ツール登録に問題が発生する可能性がある
    • 現在の設定:サーバ名 idapro、ツールプレフィックス idapro_*
  5. Remote HTTP vs Local Stdio

    • type:"local"(stdio)モード:idalib_open でも schema 検証の問題が発生する
    • type:"remote"(HTTP)モード:スクリプトで直接ファイルを開き、その後 MCP ツールを使用できる
    • 現在の方式:Remote HTTP モード
  6. PR #389 で schema の問題の一部が修正された

    • 作者 mrexodia が issue #388 を受けて PR #389 で修正をマージ
    • HTTP モードの structuredContent schema は修正されたが、一部のコード AI クライアント側の検証にまだ問題がある
    • 最新の main ブランチのバージョンがインストール済み
  7. idalib のタイムアウトにより orphan worker プロセスがファイルをロックする

    • 最初の open.ps1 がタイムアウトすると、idalib の python worker 子プロセスが orphan になり、.id0/.id1/.nam を掴み続ける可能性がある
    • 後続のあらゆるツールや IDA GUI への手動ドラッグで「権限不足」エラーが発生する
    • 禁止:taskkill /F /T でプロセスツリーを殺す — /T は GUI の ida.exe 子プロセスも一緒に殺してしまう
    • 解決策:start.ps1 は、ポートがリッスンされていないか、tools/list が高速で返ってくるが py_eval(旧 supervisor)がない場合のみ managed supervisor を置き換える;RPC がタイムアウトしても 13337 がまだリッスンしている場合はビジーと見なして殺さない。ライブラリを開くとき、open.ps1 が opening.lock を書き込み、watchdog は -Force しない
    • デッドロックの例外:tools/list が 3 分以上連続して失敗(last-healthy タイムスタンプで判断、プロセス作成時間ではない)し、実行中の opening.lock がなく、GUI がポートを占有していない場合のみ、-Force で supervisor を置き換える。それでも ida.exe は殺さない
    • 最終手段:open.ps1 が古いライブラリがロックされていることを検出すると、自動的に Temp にコピーし、GUID プレフィックスを付けて開く
  8. 自動解析付きで開くとフリーズしたように見える

    • idalib_open(run_auto_analysis=true) は長時間パケットを返さない可能性があるが、バックエンドでは実際に開いて解析中である
    • 以前はユーザー側で「PowerShell の出力がずっとない」と見え、スクリプトのフリーズと誤判断されやすかった
    • 現在の解決策:open.ps1 に -TimeoutSeconds を追加し、バックグラウンドリクエスト+フォアグラウンドポーリング+定期的な進捗出力に変更
    • セッションの準備が整ったかをポーリングし、準備完了したら OK:ファイル名:session_id を早期に返す。タイムアウトしたら ERR:open_timeout_xxs を返す
  9. HTTP MCP がログイン後に静かに終了する

    • Cursor/Claude の type: http はプロセスを代わりに起動しない;古いタスクスケジューラはログイン時に一度だけ実行される
    • pythonw はコンソールを持たず、クラッシュしても Application ログは空
    • 解決策:start.ps1 はデフォルトで正常なら再利用;watchdog.ps1 が毎分巡回;ログは %LOCALAPPDATA%\reverse-skill\ida-mcp\
    • インストール:scripts/install-autostart.ps1。HTTP クライアントが起動時にポートがまだ上がっていない場合、MCP パネルで手動で一度リフレッシュする必要がある
  10. Streamable HTTP GET /mcp がシングルスレッドの supervisor をブロックする

    • 一部の HTTP MCP クライアントは /mcp に対して長期間の GET 接続(SSE)を送信する。stock の idalib_supervisor は background=False の HTTPServer を使用し、一度に一つのリクエストしか処理しない
    • 結果:tools/list がタイムアウトし、クライアントが idapro をエラーとマークする
    • 解決策:run-supervisor.py で HTTP を ThreadingHTTPServer に変更し、GET /mcp を受け入れる;パッチが失敗した場合はスキップして supervisor を起動する。ブロックされた場合は scripts/recover.ps1(即座に -Force)を使用する

ワークフロー原則

ステップ何をする何を使う
1HTTP サーバーが実行中であることを確認するscripts/start.ps1(引数なし)
2対象のバイナリファイルを開くscripts/open.ps1 -Path "xxx.exe"
3MCP 分析ツールを使用するidapro_* / HTTP tools を直接呼び出す(約 65 個、バージョンによる)
4分析完了ツールは自動利用可能

スクリプトリソース

start.ps1 — MCP HTTP サーバを起動する

パス:scripts/start.ps1

  • IDADIR(環境変数 / ポータブル版デスクトップパス / 一般的なインストールパス)を自動解決する
  • 優先的に IDA 付属の Python314\python.exe -m ida_pro_mcp.idalib_supervisor を使用する
  • デフォルトでまず http://127.0.0.1:13337/mcp をプローブし、正常なら OK:<n>:reuse を出力して終了する
  • 13337 がリッスン中だが tools/list がタイムアウト → WARN:busy / OK:busy:reuse、殺さない(ライブラリを開いているか GUI が占有している場合、パケットを返せない)
  • tools/list が 3 分以上連続して失敗(last-healthy タイムスタンプ)し、opening.lock がない → デッドロックと見なし、INFO:deadlock を出力し -Force で supervisor を置き換える。進行中の idb_open と GUI はこのパスを通らない
  • ポートがリッスンされていない、py_eval がない、または上記のデッドロックの場合のみ managed supervisor を置き換える;決して ida.exe を殺さず、taskkill /T も使用しない
  • GUI が 13337 を占有している場合、WARN:gui_busy を出力して終了し、別の supervisor は起動しない
  • 成功すると OK:<ツール数>(現在約 66)を出力し、失敗すると ERR:timeout を出力する
  • supervisor ログ:%LOCALAPPDATA%\reverse-skill\ida-mcp\supervisor.log
  • サーバーはバックグラウンドで実行され、会話をブロックしない

呼び出し方:

powershell -File "<skill-root>\ida-reverse\scripts\start.ps1"

watchdog.ps1 / recover.ps1 / install-autostart.ps1 — 生存維持

  • watchdog.ps1:13337 をプローブ;正常なら reuse(last-healthy をリフレッシュ);GUI / open.ps1 の開庫ロック / last-healthy が 3 分未満の busy → reuse;tools/list の連続失敗が 3 分を超えた場合のみ start.ps1 -Force
  • recover.ps1:即座に start.ps1 -Force(ida.exe は殺さない)。HTTP クライアントが idapro をエラーとマークした場合にこれを使用する
  • install-autostart.ps1:タスクスケジューラ reverse-skill-ida-mcp(ログイン時 + 毎分)を登録する
  • ログ:%LOCALAPPDATA%\reverse-skill\ida-mcp\watchdog.log

open.ps1 — バイナリファイルを開く

パス:scripts/open.ps1

  • HTTP API 経由で idb_open を直接呼び出し、MCP schema 検証を回避する
  • System32 パスを自動検出し、一時ディレクトリにコピーする
  • 同じ名前の古いデータベースファイル(.id0/.id1/.nam/.til/.i64)を自動削除する
  • 古いライブラリがロックされている場合、自動的に縮退:Temp に GUID プレフィックスを付けてコピーし、開く。エラーにはしない
  • オープンリクエストをバックグラウンドで実行し、長時間の同期待機によるスクリプトの応答なしを防ぐ
  • -TimeoutSeconds をサポートし、タイムアウトすると ERR:open_timeout_xxs を返し、無限にブロックされない
  • 10 秒ごとに INFO:opening:経過時間/タイムアウト秒数 を出力し、解析中であることが分かるようにする
  • 成功すると OK:ファイル名:session_id を出力し、縮退時には (temp copy) というマークが付く
  • 失敗した場合は自動的に Temp コピーで再試行する

呼び出し方:

powershell -File "<skill-root>\ida-reverse\scripts\open.ps1" -Path "C:\path\to\file.exe"

オプションパラメータ:

# SessionId を指定
powershell -File "scripts\open.ps1" -Path "file.exe" -SessionId "my_session"

# 自動解析をスキップ(大容量ファイル推奨)
powershell -File "scripts\open.ps1" -Path "large.exe" -NoAutoAnalysis

# タイムアウトを設定し、自動解析時の長時間応答なしを防ぐ
powershell -File "scripts\open.ps1" -Path "file.exe" -TimeoutSeconds 600

出力ルール:

# 解析進行中(10 秒ごとに出力)
INFO:opening:11/600s

# 成功して開いた
OK:sample.exe:abcd1234

# 成功して開いたが、ロックファイルのため Temp コピーに縮退
OK:1234abcd-sample.exe:abcd1234 (temp copy)

# タイムアウト上限に達した
ERR:open_timeout_600s

実測メモ:

  • Snipaste.exe の自動解析は実測で約 324s かかって成功を返した。これは「解析に時間がかかっている」のであって「スクリプトがデッドロックしている」わけではない
  • したがって、GUI プログラムややや複雑なサンプルに遭遇した場合は、明示的に -TimeoutSeconds 600 を設定することを推奨する

コアツール一覧

概要分析(最初のステップ)

  • idapro_survey_binary(detail_level="minimal") — クイック概要:関数数、文字列、セグメント、エントリポイント、インポート分類(暗号化/ネットワーク/ファイルIO)
  • idapro_list_funcs(queries) — 関数一覧(ページネーション、名前でフィルタリング)
  • idapro_list_globals(queries) — グローバル変数一覧
  • idapro_entity_query(kind, filter) — 統一クエリ:functions/globals/imports/strings/names

逆コンパイルと逆アセンブル

  • idapro_decompile(addr) — 疑似コードに逆コンパイル
  • idapro_disasm(addr, max_instructions=N) — 逆アセンブル
  • idapro_analyze_function(addr, include_asm=false) — 総合分析(疑似コード+文字列+定数+呼び出し元+呼び出し先+ブロック)
  • idapro_func_profile(queries) — 関数概要指標

クロスリファレンスとデータフロー

  • idapro_xrefs_to(addrs) — 対象アドレスを参照しているものを調べる
  • idapro_xref_query(addr, direction) — 高度な xref クエリ(方向/タイプフィルタリング)
  • idapro_callees(addrs) — 子関数一覧
  • idapro_callgraph(roots, max_depth) — コールグラフ
  • idapro_trace_data_flow(addr, direction, max_depth) — データフロー追跡(forward/backward)

検索

  • idapro_find_regex(pattern, limit) — 正規表現で文字列を検索
  • idapro_search_text(pattern) — 逆アセンブルリスト内のテキストを検索
  • idapro_find_bytes(patterns, limit) — バイトパターン検索(?? ワイルドカード対応)
  • idapro_find(type, targets) — 高度な検索(即値/文字列/参照)

メモリとデータ

  • idapro_get_bytes(addrs) — 生のバイトを読み取る
  • idapro_get_string(addrs) — 文字列を読み取る
  • idapro_get_int(queries) — 整数値を読み取る
  • idapro_get_global_value(queries) — グローバル変数の値を読み取る
  • idapro_read_struct(queries) — 構造体フィールドの値を読み取る
  • idapro_search_structs(filter) — 構造体を検索する

変更操作

  • idapro_set_comments(items) — コメントを追加する(逆アセンブル+逆コンパイルの双方向同期)
  • idapro_append_comments(items) — コメントを追記する
  • idapro_rename(batch) — 一括リネーム(関数/グローバル/ローカル/スタック変数)
  • idapro_patch_asm(items) — アセンブリ命令をパッチする
  • idapro_patch(patches) — バイトをパッチする
  • idapro_define_func(items) — 関数を定義する
  • idapro_undefine(items) — 定義を解除する
  • idapro_define_code(items) — バイトをコードに変換する

型システム

  • idapro_declare_type(decls) — C 構造体/列挙型/共用体を宣言する
  • idapro_set_type(edits) — 型を関数/グローバル/ローカルに適用する
  • idapro_infer_types(addrs) — 型を推論する
  • idapro_type_query(queries) — 宣言された型をクエリする
  • idapro_type_inspect(queries) — 型の詳細を表示する

スタックフレーム

  • idapro_stack_frame(addrs) — スタックフレーム変数を表示する
  • idapro_declare_stack(items) — スタック変数を宣言する
  • idapro_delete_stack(items) — スタック変数を削除する

シグネチャ

  • idapro_make_signature(addrs) — アドレスからユニークなバイトシグネチャを生成する
  • idapro_make_signature_for_function(addrs) — 関数のシグネチャを生成する
  • idapro_find_xref_signatures(addrs) — アドレスを参照するコードのシグネチャを生成する

デバッガ(?ext=dbg が必要)

  • idapro_open_file(file_path) — GUI IDA インスタンスでファイルを開く
  • デバッガツールはデフォルトで非表示。URL パラメータ ?ext=dbg で有効化

セッション管理(ida-pro-mcp 2.x)

  • idapro_idb_open / HTTP idb_open — ⚠️ open.ps1 を使って開くことを推奨
  • idapro_idb_list / HTTP idb_list — 全セッションを一覧表示
  • idapro_idb_save / HTTP idb_save — データベースを保存
  • ほとんどの分析ツールには database=<session_id> パラメータが必要(open.ps1 が出力する session)

その他

  • idapro_int_convert(inputs) — 進数変換(必ずこれを使うこと。自分で計算しない!)
  • idapro_export_funcs(addrs, format) — 関数をエクスポート(json/c_header/prototypes)
  • idapro_py_eval(code) — IDA のコンテキストで Python を実行
  • idapro_server_health() — サーバーのヘルスチェック
  • idapro_server_warmup() — サブシステムをウォームアップ(文字列キャッシュ、Hex-Rays など)

リバースエンジニアリング完全ワークフロー

Step 1: サーバーを起動

パス A — Headless idalib(有効なライセンスが必要)

powershell -File "scripts/start.ps1"

OK:<ツール数>(現在約 65)が出力されれば準備完了。

パス B — GUI + プラグイン(idalib ライセンスが失敗した場合や対話的分析が必要な場合)

powershell -File "scripts/start-gui.ps1" -Path "C:\目標.exe"

またはポータブル版の Launch-IDA-Pro.cmd をダブルクリックし、IDA でサンプルを開く。

Output ウィンドウに [MCP] ... port=13337 と表示されたら、MCP ツールが使用可能。

一般的な連携手順は LOCAL-SETUP.md を参照。

Step 2: ファイルを開く

Headless の場合:

powershell -File "scripts/open.ps1" -Path "C:\目標.exe" -TimeoutSeconds 600

OK:ファイル名:session_id が出力されれば成功(後ろに (temp copy) が付いている場合は、自動的に一時コピーに縮退したことを示す)。

ERR:idalib_license:... が出力された場合は、パス B(GUI モード)に切り替え、open.ps1 を繰り返し再試行しない。

GUI モード:IDA で直接サンプルを開けばよく、open.ps1 は不要。

Step 3: 全体概要(インポートテーブルは必須)

idapro_survey_binary(detail_level="minimal")

注目点:

  • アーキテクチャ(x86/x64/ARM)
  • エントリポイント(main/WinMain/DllMain)
  • 興味深い文字列(URL、パス、エラーメッセージ)
  • インポート分類(MUST):暗号化関数 / ネットワーク API / ファイル操作 / プロセスインジェクション / レジストリ — 必ず Evidence として記録する(推奨 ID:E-imports)。idapro_entity_query(kind="imports") または survey 出力の imports セクションを使用可能
  • DLL/SYS:エクスポートテーブルとインポートテーブルを併記する(Evidence E-exports)
  • .NET:従来の IAT がない場合、モジュール/メタデータ/マネージド参照サマリを同等のアンカーとして使用し、E-imports セマンティックスロットに書き込む
  • クリーンなインポートテーブル:動的ロードの疑いを指摘し、動的 API ブレークポイント検証を促す
  • 人気の関数(xref カウントの高い関数は、重要なロジックである可能性が高い)

ハードゲート:imports ビュー/分類サマリ(または正当な同等アンカー)を Evidence に書き込む前は、MUST NOT で Step 4 の深掘り結論に入ってはいけない。MUST NOT で survey 完了を主張してはいけない。インポートテーブルが空の場合やクエリに失敗した場合でも、失敗した現象を MUST で記録すること。パッキングされた IAT の修復に失敗した場合は、MUST で E-iat-repair-fail を記録し、動的デバッグに移行して API をキャッチする。静的解析に固執してはいけない。ユーザーがインポートテーブル/IAT の再チェックを要求した場合は、MUST で指名されたステップを再実行すること(ブロック時は実行可能性の門閂:説明+確認;強制時は quality=unreadable とマーク)。無関係なステップに変更してはいけない。

Step 4: 重要な関数を深掘り

idapro_analyze_function(addr="重要な関数名")

または:

idapro_decompile(addr="関数名")
idapro_disasm(addr="関数名", max_instructions=50)

Step 5: データフローとクロスリファレンス

idapro_xrefs_to(addrs="重要なアドレス/文字列")
idapro_callgraph(roots=["重要な関数"], max_depth=3)
idapro_trace_data_flow(addr="重要なアドレス", direction="backward", max_depth=5)

Step 6: 記録と最適化

idapro_set_comments(items=[{"addr": "0x140001000", "comment": "あなたの理解"}])
idapro_rename(batch={"func": [{"addr": "関数アドレス", "name": "意味のある名前"}]})

Step 7: レポートを出力

分析完了後、report.md を生成して発見事項と手順を記録する。

プロンプトエンジニアリングガイドライン

  1. 自分で進数計算をしない — 数値変換が必要な場合は常に idapro_int_convert を使用する
  2. survey してから深掘り — まず概要を確認し、的を絞って分析する
  3. 継続的にコメントとリネームを行う — 分析中に関数名や変数名を更新し続け、後続の分析精度を高める
  4. クロスリファレンスを追跡する — 興味深いデータ/文字列を見つけたら、xrefs_to で誰がそれを参照しているかを確認する
  5. 難読化コードに遭遇したら — まず文字列の復号、インポートハッシュの除去、コントロールフロー平坦化の除去などの前処理を行う
  6. C++ STL コード — FLIRT/Lumina でライブラリ関数を特定してから、ビジネスロジックを分析する
  7. ブルートフォースはしない — 分析は逆アセンブリから解決策を導き出すべきであり、簡単な Python で計算を補助する
  8. 「No database bound」が出たら — まだバイナリファイルを開いていない。先に open.ps1 を実行する
  9. 「Failed to open database」が出たら — 古いデータベースファイルがロックされている可能性がある。open.ps1 が自動的に Temp コピーに縮退する(出力に (temp copy) マークが付く)
  10. 自動解析付きで GUI/複雑なサンプルを開くとき — デフォルトで -TimeoutSeconds 600 を追加し、長時間の INFO:opening:... をスクリプトフリーズと誤判断しないこと

ルーティングコンテキスト

上流エントリ: skills/SKILL.md(統括)、routing.md 上流代替: radare2/(IDA を開きたくない場合、まず r2 でクイック偵察が可能) 下流出口:

  • Frida による動的検証が必要 → reverse-engineering/tools-dynamic.md
  • シンボリック実行/angr が必要 → reverse-engineering/tools-dynamic.md
  • 汎用的なリバースエンジニアリング方法論が必要 → reverse-engineering/SKILL.md

同階層の関連モジュール: radare2/(IDA が利用できない場合の代替手段)


オンデマンドブートストラップ(On-Demand Bootstrap)

本スキルのエントリスクリプトは、統合ブートストラップシステムに接続されています。

自動化能力の境界

ツール自動インストール可能インストール方法説明
idalib-mcp✓pip install (from GitHub)start.ps1 がない場合に自動インストール
IDA Pro 本体✗商用ソフトウェア。手動インストールが必要IDADIR 環境変数をインストールディレクトリに設定する

インストール手順(検証済み)

:: 1. IDA パスを設定(実際の IDA インストールディレクトリに置き換える)
setx IDADIR "<あなたのIDAインストールディレクトリ>"

:: 2. GitHub から ida-pro-mcp をインストール(PyPI の ida-mcp は別プロジェクト。間違えないこと!)
pip install git+https://github.com/mrexodia/ida-pro-mcp.git

:: 3. IDA プラグインをインストール(Streamable HTTP + Global + 全クライアントを選択)
ida-pro-mcp --install

:: 4. IDA Pro を再起動し、対象ファイルを開く
:: プラグインは自動的に 127.0.0.1:13337 でリッスンする

:: 5. 確認
ida-pro-mcp --config

⚠️ 注意:PyPI の ida-mcp パッケージ(作者 jtsylve)は別のプロジェクトです。私たちが必要としているものではありません。 GitHub から mrexodia/ida-pro-mcp をインストールする必要があります。

ブートストラップトリガーポイント

  • scripts/start.ps1:idalib-mcp がない場合、自動的に bootstrap-reverse.ps1 を呼び出す
  • MCP 登録:bootstrap は自動的に idapro を Claude MCP 設定に書き込む

前提条件

  • IDA Pro がインストールされ、IDADIR 環境変数が設定されていること(またはスクリプト内のデフォルトパスが正しいこと)
  • IDA 付属の Python314 内の ida-pro-mcp を使用することを推奨(ポータブル版には組み込み済み)
  • 一般的なローカル設定:
    • User env IDADIR → IDA インストールディレクトリ(ida.exe を含む)
    • オプションで ~\Tools\bin\idalib-mcp.cmd / ida-pro-mcp.cmd ラッパー
    • クライアント MCP サーバ名は idapro → http://127.0.0.1:13337/mcp のみを残す

タスク完了セルフチェック(完了を主張する前に MUST で通過)

  • ワークフローの各ステップを実行したか(読んだだけではないか)?
  • survey/imports は Evidence に書き込んだか(E-imports または同等)?DLL/SYS は E-exports を含むか?IAT の失敗は E-iat-repair-fail を記録したか?
  • ユーザーがインポートテーブル/IAT の再実行を要求した場合、同じステップを再実行したか?
  • tool-index に基づいて実際のツールパスを使用したか?
  • 再現可能な証拠(コマンド/スクリプト/スクリーンショット/レポート)を生成したか?
  • RULES で要求されている Checklist 項目を完了し、書き戻したか?

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication, authorization, rate-limit, and CI/CD testing.

apk-reverse

在 CLI 环境下做 Android APK 逆向时使用。适用于 APK 解包、Java 反编译、smali 修改、重打包、Frida 动态 Hook,以及按需切换到 so/native 分析。优先使用本机已安装的 jadx、apktool、frida、adb、ida-reverse、radare2。

attack-chain

Use for authorized multi-stage attack-path planning and orchestration when a task spans reconnaissance, initial access, privilege escalation, lateral movement, or impact assessment. Route single-stage tasks directly to their specialist skill.

binary-diff

|

binary-ninja-reverse

Use for authorized binary analysis in Binary Ninja, including HLIL/MLIL/LLIL inspection, strings/imports/exports, cross-references, types, patch review, Python API automation, and optional Binary Ninja MCP or localhost HTTP integration.

browser-automation

|

browser-extension-reverse

Use for authorized reverse engineering of browser extensions (Chrome/Firefox) including manifest analysis, background workers, and extension-based credential or traffic logic recovery.

case-review

Reviews a reverse-skill case package for scope readiness, Evidence to Finding to Path traceability, work item coverage, timeline references, and optional artifact hash integrity before report handoff.

cloud-k8s

Use for authorized cloud, container, and Kubernetes security assessment including metadata SSRF, IAM misconfig, container escape paths, and cluster RBAC review.

code-audit

Use for authorized source-code security review and SAST workflows including Semgrep, CodeQL patterns, dangerous API hunting, and fix verification.

ctf-sandbox

Thin PRIMARY for CTF / AWD / 靶场 multi-type orchestration. Hands off to the sidecar CTF-Sandbox-Orchestrator. Use when the user says CTF, AWD, 靶场, or 比赛题 and no more specific pwn/APK/IDA route already won.

database-security

Use for authorized database security assessment covering PostgreSQL/MySQL/MSSQL/Mongo/Redis exposure, authz, UDF/command paths, and misconfiguration review.

diagram-generator

generate, refine, validate, and render diagrams from natural language, notes, code snippets, schemas, tables, or existing diagram source. use for flowcharts, swimlanes, sequence diagrams, state diagrams, er diagrams, class diagrams, architecture/c4-style diagrams, dependency graphs, gantt charts, mind maps, user journeys, sankey-style flows, org charts, network graphs, and other visual models. supports mermaid by default, graphviz dot for complex graph layout, plantuml for uml-heavy engineering diagrams, and svg output when direct markup is more reliable.

digital-forensics

Use for authorized digital forensics including memory dumps, disk timelines, PCAP investigation, artifact triage, and IR evidence preservation.

docs-generator

|

dotnet-reverse

.NET / C# 二进制逆向。当目标是 .NET assembly(PE 头含 CLR、.exe/.dll 托管程序)、C# 编译产物(含 NativeAOT)、红队 Sharp* 工具(Rubeus / SharpHound / SharpHound 等)、.NET 混淆程序(ConfuserEx / SmartAssembly / Babel / Eazfuscator)、.NET loader / info-stealer / 套壳 malware 时使用。优先用 dnSpyEx + de4dot,需要 AI 直接操作时联动 dnSpy MCP。不用于纯 native 二进制(走 reverse-engineering / ida-reverse)。

edr-bypass-re

|

email-security

Use for authorized email security review including phishing analysis, header authentication (SPF/DKIM/DMARC), BEC patterns, and mailbox token abuse research.

firmware-pentest

|

ghidra-reverse

Use for free/open reverse engineering with Ghidra (headless or GUI), including decompile, cross-refs, and optional Ghidra MCP workflows when IDA is unavailable.

関連スキル