STOP. エンドポイントを呼び出す前にこのSKILL.MD全体を読んでください。
analyze-elf は何をしますか?
コンパイルされたELFバイナリから機能をリバースエンジニアリングします。逆アセンブラではなく、「このバイナリは何をするのか?」に答える機能抽出器です。
使用するタイミング
- コンパイルされたCLIツール(Bun SEA、Go、Rust、C/C++)の動作を理解する
- CLIコマンド、フラグ、ヘルプテキストを抽出する
- ステートマシン、プロトコルスキーマ、イベントタイプを復元する
- JSON-RPCメソッドとZodデータモデルをマッピングする
- Mermaidダイアグラムを含む起訴概要ウォークスルーを生成する
クイックスタート
# 主要コマンド — 機能を抽出し、ウォークスルーを生成
.pi/skills/analyze-elf/run.sh features /path/to/binary --goal "ミッションシステムを理解する"
# /treesitterによるAST解析(低速、より深く)
.pi/skills/analyze-elf/run.sh features /path/to/binary --ast --goal "すべてのRPCメソッドを探す"
# プログラムで使用するためのJSON出力
.pi/skills/analyze-elf/run.sh features /path/to/binary --output-format json
# 低レベルELF情報(ヘッダー、シンボル、ランタイム検出)
.pi/skills/analyze-elf/run.sh elf /path/to/binary
# 正規表現による文字列抽出
.pi/skills/analyze-elf/run.sh strings /path/to/binary --pattern "mission|worker"
コマンド
| コマンド | 説明 |
|---|---|
features | 主要. 機能を抽出し、Mermaidダイアグラム付きのウォークスルーを生成 |
elf | 低レベル: ヘッダー、セクション、シンボル、ランタイム検出 |
strings | 正規表現フィルタリングされた文字列抽出 |
featuresが抽出するもの
| カテゴリ | 方法 | 例 |
|---|---|---|
| CLIコマンド | ヘルプテキストのパターンマッチング | exec、daemon、mcp |
| ステートマシン | 列挙型代入パターン (M.State="value") | orchestrator_turn、paused |
| イベントタイプ | KH.literal("type_name") パターン | mission_accepted、worker_completed |
| JSON-RPCメソッド | method: KH.literal("name") パターン | droid.session_notification |
| Zodスキーマ | KH.object({...}) フィールド抽出 | Feature、WorkerHandoff、State |
| npmパッケージ | バンドルされたpackage.jsonの "name": "pkg" | @grpc/grpc-js |
| APIルート | /api/ および /v1/ パスリテラル | /api/auth/login |
| クラス/関数 | /treesitterによるAST(--astフラグ使用時) | MissionRunner、spawnWorker |
構成
/treesitter(AST解析)
--astが指定されると、このスキルは:
.rodataからJSソース文字列を切り出す- JSを含む行(関数/クラス/インポート/Zodパターン)にフィルタリング
- チャンクを
/treesitter parse --language javascriptにパイプする - クラス、関数、メソッドシグネチャを抽出する
/create-walkthrough(自動生成)
featuresコマンドは以下の内容を含む起訴概要を生成します:
- Mermaid CLIコマンドツリー
- Mermaid ステートマシンダイアグラム
- Mermaid イベントタイプ分類図
- フィールドタイプ付きスキーマテーブル
- リスク評価(「何が問題になるか」)
/create-figure
elfコマンドを介して、DOT形式の依存関係モジュールダイアグラムを利用可能。/create-figureを通じてレンダリングします。
依存関係
pyelftools— 構造化ELF解析httpx— /scillm API呼び出しtyper— CLIloguru— ロギング- システム:
binutils(readelf、nm、strings)