ファームウェア解析スキル
ファームウェアファイルを完全に解析し、TAの抽出から詳細分析までを行います。
実行フロー
Phase 1: ファームウェア情報収集
bash
# ファイル基本情報 file <firmware_path> ls -lh <firmware_path> # バイナリ構造確認 binwalk <firmware_path>
Phase 2: TA抽出
bash
# ファームウェアからTA抽出 ta-inspector extract <firmware_path> --vendor <vendor> --model <model>
結果確認:
- •抽出されたTAの数
- •各TAのTEE種別
- •UUID(あれば)
Phase 3: 抽出結果の確認
bash
# 抽出されたTAの一覧 ta-inspector list --limit 20 # 統計情報 ta-inspector stats
Phase 4: TA詳細分析(Ghidra連携)
抽出されたTAをGhidraで解析:
- •
基本情報取得
- •
mcp__ghidra__list_exports- エントリポイント確認 - •
mcp__ghidra__list_imports- TEE API使用状況 - •
mcp__ghidra__list_strings- 興味深い文字列
- •
- •
エントリポイント解析 OP-TEE TAの場合、以下の関数を探す:
- •
TA_CreateEntryPoint - •
TA_OpenSessionEntryPoint - •
TA_InvokeCommandEntryPoint - •
TA_CloseSessionEntryPoint - •
TA_DestroyEntryPoint
- •
- •
暗号処理の特定
- •
mcp__ghidra__search_functions_by_nameで "Cipher", "Digest", "Key" 等を検索 - •TEE API呼び出しを追跡
- •
Phase 5: レポート生成
以下の形式でレポートを作成:
markdown
# ファームウェア解析レポート ## 基本情報 - ファイル: <path> - ベンダー: <vendor> - モデル: <model> - サイズ: <size> ## 抽出結果 - 抽出TA数: X個 - TEE種別内訳: - OP-TEE: X個 - QSEE: Y個 - Kinibi: Z個 ## TA一覧 | # | TEE | UUID | 暗号化 | サイズ | |---|-----|------|--------|--------| | 1 | OP-TEE | xxxx-... | No | 32KB | ## 詳細分析(各TAについて) ### TA 1: <uuid> - **エントリポイント**: 検出済み/未検出 - **TEE API使用**: - TEE_AllocateOperation (暗号処理) - TEE_OpenPersistentObject (セキュアストレージ) - **主要機能**: <推定される機能> - **セキュリティ懸念**: <あれば> ## 所見 <全体的な分析結果>
使用例
code
/analyze-firmware ./firmware/RT-AX88U_3.0.0.4.bin --vendor ASUS --model RT-AX88U
注意事項
- •大きなファームウェアは展開に時間がかかる
- •Ghidra解析にはGhidraでファイルを開いている必要がある
- •暗号化されたTAは詳細解析が制限される