protocol-reverse について
protocol-reverseは、許可された範囲でネットワークプロトコル、通信データ、シリアライズ形式を解析するスキルです。サンプルの分類とフレーム解析から、メッセージ辞書、再現可能なデコード、証拠の整理までを扱います。
主な機能
- 01TCP、UDP、アプリケーションプロトコルの解析
- 02PCAPからのフレーム構造復元
- 03シリアライズ形式と暗号化の調査
- 04メッセージ状態機械の作成
- 05メッセージ表とデコード証拠の作成
活用シーン
- 01独自バイナリプロトコルの解析
- 02ProtobufやgRPC通信の解析
- 03WebSocketやMQTTメッセージの復元
- 04PCAPからのフィールドと状態機械の特定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ zhaoxuya520/ reverse-skill --skill protocol-reverseインストール後、Claude Code で/protocol-reverseを入力して読み込まれたか確認します。
同梱ファイルreferences/protocol-workflow.md
詳細
プロトコルリバースエンジニアリング
ACTION REQUIRED(読了後すぐに実行)
NOW:../field-journal/precedent-reverse.mdを読む — 授权と通常操作の境界を確認するNOW: タスクがプロトコル/トラフィック/シリアライゼーション形式のリバースか確認する(純粋な Web パラメータ署名でない場合 →js-reverse/へ)NOW: 対象となるネットワーク対話がある場合 →../scripts/case-init.ps1で scope を完了する。authが granted でない場合、対象への ACT は禁止NEXT:../tool-index.mdを読む。ツールが不足している場合は bootstrap(tshark/wireshark などは手動が必要な場合あり)ACT: ワークフロー Phase 1 に入り、フレームレイアウトまたはメッセージ辞書のドラフトを作成する
適用シーン
- カスタム TCP/UDP バイナリプロトコル
- Protobuf / gRPC / FlatBuffers / MessagePack
- WebSocket / MQTT / 独自 RPC
- PCAP / PCAPNG からのフィールドとステートマシンの復元
- クライアント-サーバー間の検証、シーケンス番号、暗号化フレームヘッダー
本 skill を使わない場合
| 状況 | 行き先 |
|---|---|
| HTTP パラメータ署名 / JS 暗号化のみ | js-reverse/ |
| TLS 証明書の問題のみ | pentest-tools/ またはブラウザプロキシ |
| ファームウェア内プロトコルスタックの深掘り + エミュレーション | firmware-pentest/ の後に本 skill へ戻る |
ワークフロー
Phase 1 — 収集とトリアージ
□ 拿到样本:PCAP / 代理导出 / 客户端日志 / 二进制
□ 标记方向:C→S / S→C;是否有握手、心跳、重连
□ 固定头?魔数?长度字段?TLV?定长?
□ 是否压缩(zlib/gzip/lz4)或加密(AES/ChaCha 帧内)
□ tshark -r cap.pcap -T fields -e frame.number -e ip.src -e tcp.payload
Phase 2 — フレームレイアウトの復元
□ 对齐多个同类消息,找不变字节 / 自增序列号
□ 长度字段:大端/小端、含头/不含头
□ 校验:CRC16/32、checksum、HMAC 位置
□ 画出状态机:Connect → Auth → Ready → Request/Response → Close
□ 工具:Wireshark 自定义 dissector 草稿 / ImHex / 010 Editor 模板 / Kaitai Struct
Phase 3 — シリアライゼーションと暗号化
□ Protobuf:.proto 恢复(blackboxprotobuf / pbtk / protoc --decode_raw)
□ gRPC:HTTP/2 headers + protobuf body
□ 加密:找密钥派生(客户端 so/dll/JS)→ 联合 ida-reverse / js-reverse / apk-reverse
□ 重放:仅在授权 scope 内;先无害字段再敏感操作
Phase 4 — 成果物
MUST 产出:
- 消息类型表(name / opcode / fields)
- 至少 1 条可复现的解码命令或脚本
- Evidence:原始 hex 摘录 + 解码结果(脱敏)
ツールチェーン
| ツール | 必須 | 用途 | 自举 |
|---|---|---|---|
| tshark / Wireshark | 強く推奨 | PCAP 解析 | 手動 / winget |
| Python3 | はい | デコードスクリプト | システム |
| blackboxprotobuf | 任意 | 未知の protobuf | pip |
| ImHex / 010 | 任意 | 構造テンプレート | 手動 |
| IDA / r2 / Ghidra | 必要に応じて | クライアントのシリアライゼーション関数 | 対応する skill を参照 |
参考
references/protocol-workflow.md— フレームレイアウトと Protobuf のクイックリファレンス- 関連:
../ida-reverse/../js-reverse/../firmware-pentest/../pentest-tools/
ルーティングコンテキスト
上流: MASTER-ROUTING R21 · routing.md
下流: クライアントアルゴリズムが必要 → ida-reverse/js-reverse;リプレイの悪用が必要 → pentest-tools/api-security
同階層: malware-analysis(C2 プロトコル)、digital-forensics(トラフィックフォレンジック)
タスク完了セルフチェック
- メッセージレイアウトまたはステートマシンを復元したか(単に hex を貼っただけではないか)?
- 再現可能なデコードコマンドがあるか?
- scope / マスキングを遵守したか?
- field-journal / レポート Checklist に書き戻したか?
コメント
Markdown 対応