binary-re-synthesis
バイナリ解析の結果をまとめ、構造化されたレポートとして出力する際に活用し、初期調査から静的・動的解析までの一連の情報を関連付け、証拠に基づいた報告書を作成するSkill。
📜 元の英語説明(参考)
Use when ready to document findings, generate a report, or summarize binary analysis results. Compiles analysis findings into structured reports - correlates facts from triage/static/dynamic phases, validates hypotheses, generates documentation with evidence chains. Keywords - "summarize findings", "generate report", "document analysis", "what did we find", "write up results", "export findings"
🇯🇵 日本人クリエイター向け解説
バイナリ解析の結果をまとめ、構造化されたレポートとして出力する際に活用し、初期調査から静的・動的解析までの一連の情報を関連付け、証拠に基づいた報告書を作成するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o binary-re-synthesis.zip https://jpskill.com/download/16696.zip && unzip -o binary-re-synthesis.zip && rm binary-re-synthesis.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/16696.zip -OutFile "$d\binary-re-synthesis.zip"; Expand-Archive "$d\binary-re-synthesis.zip" -DestinationPath $d -Force; ri "$d\binary-re-synthesis.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
binary-re-synthesis.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
binary-re-synthesisフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
分析と統合 (フェーズ 5)
目的
収集したすべての知識を実行可能なインテリジェンスにまとめます。証拠に基づいて仮説を検証します。追跡可能な発見を含む構造化されたレポートを作成します。
使用するタイミング
- トリアージ + 静的 + 動的解析から十分な事実が収集された場合
- 引き継ぎまたはアーカイブのために理解を文書化する準備ができた場合
- 関係者に調査結果を提示する必要がある場合
- 分析セッションを終了する前
統合プロセス
ステップ 1: 証拠のレビュー
記録されたすべての知識を収集します。
収集されたFACTS:
- トリアージから: arch、ABI、依存関係、機能
- 静的解析から: 関数、xref、逆コンパイル
- 動的解析から: syscall、ネットワーク、ファイルアクセス
形成されたHYPOTHESES:
- 裏付けとなる証拠あり
- 矛盾する証拠あり
- 未解決の仮説
残されたQUESTIONS:
- 結論を妨げる質問 (Blocking questions)
- 未解決の質問 (Open questions)
ステップ 2: 仮説の検証
各仮説について、ステータスを決定します。
| 証拠の状態 | ステータス | アクション |
|---|---|---|
| 強力な裏付け、矛盾なし | Confirmed | 結論に含める |
| いくつかの裏付け、いくつかの矛盾 | Uncertain | 両方の側面を文書化する |
| 強力な矛盾 | Refuted | 間違っている理由を説明する |
| どちらの証拠もない | Unvalidated | 不明としてリストする |
ステップ 3: 相関分析
フェーズ間で調査結果を関連付けます。
静的解析の発見: 0x8400 の関数が socket()、connect()、SSL_read() を呼び出す
動的解析の発見: 192.168.1.100:8443 への connect() が観察された
文字列の発見: "api.vendor.com/telemetry"
相関された結論:
関数 0x8400 は、TLS 経由で api.vendor.com:8443 へのテレメトリ送信のためのネットワーク初期化です。
ステップ 4: 機能のマッピング
バイナリが実行できることを要約します。
## 機能
### ネットワーク
- [x] HTTP/HTTPS クライアント (libcurl、libssl のインポート)
- [x] カスタム TCP 接続 (socket/connect が観察された)
- [ ] サーバー機能 (bind/listen/accept なし)
### ファイルシステム
- [x] 設定の読み取り (/etc/config.json にアクセス)
- [x] ログの書き込み (/var/log/app.log)
- [ ] 他のプログラムの実行 (exec* 呼び出しなし)
### 暗号化
- [x] TLS 暗号化 (SSL_* のインポート)
- [ ] 対称暗号化 (AES/DES のインポートなし)
- [ ] ハッシュ化 (SHA*/MD5 のインポートなし)
ステップ 5: 動作の概要
観察された/推測された動作を文書化します。
## 動作分析
### 起動シーケンス
1. /etc/config.json から設定をロードする
2. ネットワークサブシステムを初期化する (関数 0x8400)
3. api.vendor.com:8443 への TLS 接続を確立する
4. メインループに入る (関数 0x10800)
### メインループの動作
- 30 秒ごとにセンサーデータをポーリングする (sleep() 呼び出しからのタイミング)
- データを JSON としてフォーマットする (jsmn ライブラリが識別された)
- HTTPS POST で送信する
- 結果を /var/log/app.log に記録する
### エラー処理
- ネットワーク障害: 指数バックオフで再試行する
- 設定エラー: コード 1 で終了する
- 不明なエラー: デフォルト値で続行する
レポートテンプレート
# バイナリ解析レポート
## エグゼクティブサマリー
[発見されたことの 2〜3 文の概要]
## アーティファクト情報
| プロパティ | 値 |
|----------|-------|
| Filename | [name] |
| SHA256 | [hash] |
| Architecture | [arch] |
| Libc | [glibc/musl/uclibc] |
| Stripped | [yes/no] |
| Analysis Date | [date] |
| Analyst | [human + Claude] |
## 識別
**File Type:** ELF [32/64]-bit [LSB/MSB] [executable/shared object]
**Purpose (Hypothesis):** [このバイナリが何をすると思われるか]
**Confidence:** [High/Medium/Low] - [簡単な正当化]
## 機能の概要
### 確認された機能
- [Capability 1] - 証拠: [source]
- [Capability 2] - 証拠: [source]
### 潜在的な機能 (未検証)
- [Capability] - 理由: [疑われる理由]
## 技術的な発見
### 主要な関数
| Address | Inferred Name | Purpose | Confidence |
|---------|---------------|---------|------------|
| 0x8400 | network_init | ネットワーク接続を初期化する | High |
| 0x9200 | parse_config | JSON 設定を解析する | Medium |
| 0x10800 | main_loop | メイン実行ループ | High |
### 外部通信
| Destination | Port | Protocol | Purpose |
|-------------|------|----------|---------|
| api.vendor.com | 8443 | HTTPS | テレメトリ送信 |
### ファイルシステムアクセス
| Path | Access | Purpose |
|------|--------|---------|
| /etc/config.json | Read | 設定 |
| /var/log/app.log | Write | ロギング |
## 証拠ログ
### 確認された仮説
**H1: バイナリはテレメトリクライアントです**
- Status: CONFIRMED
- 裏付けとなる証拠:
- libcurl (HTTP クライアント) のインポート
- 文字列 "telemetry" が 0x12340 に見つかりました
- api.vendor.com:8443 への connect() が観察されました
- 矛盾する証拠: なし
### 反証された仮説
**H2: バイナリはサーバーとして機能します**
- Status: REFUTED
- 理由: bind/listen/accept のインポートまたは呼び出しは観察されませんでした
### 未解決の質問
- Q1: テレメトリ送信のトリガーは何ですか? (タイミングベースまたはイベントベース?)
- Q2: どのようなデータが収集されますか? (より深い動的解析が必要です)
## 推奨事項
### セキュリティレビューの場合
- [ ] TLS 証明書の検証を確認する
- [ ] ハードコードされた認証情報を確認する
- [ ] データ収集範囲を監査する
### さらなる分析の場合
- [ ] 実行中にネットワークトラフィックをキャプチャする
- [ ] 設定形式を詳細に分析する
- [ ] 不正な設定で動作をテストする
## 付録
### A. ツールの出力
[主要な分析ステップからの切り捨てられた生の出力]
### B. タイムライン
[実行された分析ステップの時系列ログ]
### C. ファイルハッシュ
[分析されたすべてのファイルの SHA256]
信頼度の調整
一貫した信頼度レベルを使用します。
| Level | Meaning | Evidence Required |
|---|---|---|
| High | ほぼ確実 | 複数の独立したソースが確認する |
| Medium | 正しい可能性が高い | いくつかの証拠、矛盾なし |
| Low | 可能性がある | 限られた証拠、いくつかの不確実性 |
| Speculative | 推測 | 直接的な証拠ではなく、パターンに基づく |
品質チェックリスト
レポートを最終決定する前に:
- [ ] すべての仮説に明示的なステータスがある (confirmed/refuted/uncertain)
- [ ] すべての結論に追跡可能性があ
(原文がここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Analysis Synthesis (Phase 5)
Purpose
Compile all gathered knowledge into actionable intelligence. Validate hypotheses against evidence. Produce structured reports with traceable findings.
When to Use
- Sufficient facts gathered from triage + static + dynamic analysis
- Ready to document understanding for handoff or archival
- Need to present findings to stakeholders
- Before closing analysis session
Synthesis Process
Step 1: Evidence Review
Gather all recorded knowledge:
FACTS collected:
- From triage: arch, ABI, dependencies, capabilities
- From static: functions, xrefs, decompilation
- From dynamic: syscalls, network, file access
HYPOTHESES formed:
- With supporting evidence
- With contradicting evidence
- Unresolved hypotheses
QUESTIONS remaining:
- Blocking questions (prevent conclusion)
- Open questions (future investigation)
Step 2: Hypothesis Validation
For each hypothesis, determine status:
| Evidence State | Status | Action |
|---|---|---|
| Strong support, no contradictions | Confirmed | Include in conclusions |
| Some support, some contradictions | Uncertain | Document both sides |
| Strong contradictions | Refuted | Explain why wrong |
| No evidence either way | Unvalidated | List as unknown |
Step 3: Correlation Analysis
Connect findings across phases:
Static finding: Function at 0x8400 calls socket(), connect(), SSL_read()
Dynamic finding: connect() to 192.168.1.100:8443 observed
Strings found: "api.vendor.com/telemetry"
CORRELATED CONCLUSION:
Function 0x8400 is network initialization for telemetry submission
to api.vendor.com:8443 over TLS.
Step 4: Capability Mapping
Summarize what the binary CAN do:
## Capabilities
### Network
- [x] HTTP/HTTPS client (libcurl, libssl imports)
- [x] Custom TCP connections (socket/connect observed)
- [ ] Server functionality (no bind/listen/accept)
### File System
- [x] Read configuration (/etc/config.json accessed)
- [x] Write logs (/var/log/app.log)
- [ ] Execute other programs (no exec* calls)
### Cryptography
- [x] TLS encryption (SSL_* imports)
- [ ] Symmetric encryption (no AES/DES imports)
- [ ] Hashing (no SHA*/MD5 imports)
Step 5: Behavioral Summary
Document observed/inferred behavior:
## Behavioral Analysis
### Startup Sequence
1. Load configuration from /etc/config.json
2. Initialize network subsystem (function 0x8400)
3. Establish TLS connection to api.vendor.com:8443
4. Enter main loop (function 0x10800)
### Main Loop Behavior
- Polls sensor data every 30 seconds (timing from sleep() calls)
- Formats data as JSON (jsmn library identified)
- Submits via HTTPS POST
- Logs results to /var/log/app.log
### Error Handling
- Network failures: retry with exponential backoff
- Config errors: exit with code 1
- Unknown errors: continue with default values
Report Template
# Binary Analysis Report
## Executive Summary
[2-3 sentence overview of what was found]
## Artifact Information
| Property | Value |
|----------|-------|
| Filename | [name] |
| SHA256 | [hash] |
| Architecture | [arch] |
| Libc | [glibc/musl/uclibc] |
| Stripped | [yes/no] |
| Analysis Date | [date] |
| Analyst | [human + Claude] |
## Identification
**File Type:** ELF [32/64]-bit [LSB/MSB] [executable/shared object]
**Purpose (Hypothesis):** [What we believe this binary does]
**Confidence:** [High/Medium/Low] - [Brief justification]
## Capabilities Summary
### Confirmed Capabilities
- [Capability 1] - Evidence: [source]
- [Capability 2] - Evidence: [source]
### Potential Capabilities (Unverified)
- [Capability] - Reason: [why suspected]
## Technical Findings
### Key Functions
| Address | Inferred Name | Purpose | Confidence |
|---------|---------------|---------|------------|
| 0x8400 | network_init | Initialize network connection | High |
| 0x9200 | parse_config | Parse JSON configuration | Medium |
| 0x10800 | main_loop | Main execution loop | High |
### External Communications
| Destination | Port | Protocol | Purpose |
|-------------|------|----------|---------|
| api.vendor.com | 8443 | HTTPS | Telemetry submission |
### File System Access
| Path | Access | Purpose |
|------|--------|---------|
| /etc/config.json | Read | Configuration |
| /var/log/app.log | Write | Logging |
## Evidence Log
### Confirmed Hypotheses
**H1: Binary is a telemetry client**
- Status: CONFIRMED
- Supporting evidence:
- Import of libcurl (HTTP client)
- String "telemetry" found at 0x12340
- connect() to api.vendor.com:8443 observed
- Contradicting evidence: None
### Refuted Hypotheses
**H2: Binary acts as server**
- Status: REFUTED
- Reason: No bind/listen/accept imports or calls observed
### Unresolved Questions
- Q1: What triggers telemetry submission? (Timing or event-based?)
- Q2: What data is collected? (Need deeper dynamic analysis)
## Recommendations
### For Security Review
- [ ] Verify TLS certificate validation
- [ ] Check for hardcoded credentials
- [ ] Audit data collection scope
### For Further Analysis
- [ ] Capture network traffic during execution
- [ ] Analyze configuration format in detail
- [ ] Test behavior with malformed config
## Appendices
### A. Tool Outputs
[Truncated raw outputs from key analysis steps]
### B. Timeline
[Chronological log of analysis steps taken]
### C. File Hashes
[SHA256 of all analyzed files]
Confidence Calibration
Use consistent confidence levels:
| Level | Meaning | Evidence Required |
|---|---|---|
| High | Near certain | Multiple independent sources confirm |
| Medium | Likely correct | Some evidence, no contradictions |
| Low | Possible | Limited evidence, some uncertainty |
| Speculative | Guess | Based on patterns, not direct evidence |
Quality Checklist
Before finalizing report:
- [ ] All hypotheses have explicit status (confirmed/refuted/uncertain)
- [ ] Every conclusion has traceable evidence
- [ ] Remaining unknowns are documented
- [ ] Technical details are accurate (addresses, names)
- [ ] No speculation presented as fact
- [ ] Recommendations are actionable
Knowledge Journaling
After synthesis, record final summary for episodic memory:
[BINARY-RE:synthesis] {filename} (sha256: {hash})
Analysis completed: {date}
Phases completed: {triage|static|dynamic|synthesis}
=== FINAL CONCLUSIONS ===
Primary purpose: {what binary does}
Confidence: {HIGH|MEDIUM|LOW}
Confirmed hypotheses:
CONFIRMED: {hypothesis} (evidence: {facts})
Refuted hypotheses:
REFUTED: {hypothesis} (reason: {contradicting evidence})
Key capabilities:
- {capability}: {evidence summary}
Security findings:
{CRITICAL|HIGH|MEDIUM|LOW}: {finding} (location: {addr/function})
Remaining unknowns:
UNRESOLVED: {question}
Recommendations:
- {actionable recommendation}
=== EVIDENCE INDEX ===
Facts: {count} recorded across phases
Hypotheses: {confirmed}/{total}
Questions: {answered}/{total}
Example Final Entry
[BINARY-RE:synthesis] thermostat_daemon (sha256: a1b2c3d4...)
Analysis completed: 2024-01-15
Phases completed: triage, static, dynamic, synthesis
=== FINAL CONCLUSIONS ===
Primary purpose: IoT telemetry client that reports temperature/humidity to vendor cloud
Confidence: HIGH
Confirmed hypotheses:
CONFIRMED: "Telemetry client reporting to api.thermco.com" (evidence: URL string, curl imports, connect() observed)
CONFIRMED: "30-second reporting interval" (evidence: sleep(30) in main loop, strace timing)
Refuted hypotheses:
REFUTED: "May have local web server" (reason: no bind/listen/accept imports or calls)
Key capabilities:
- HTTPS client: libcurl + libssl, connects to api.thermco.com:443
- Config parsing: reads /etc/thermostat.conf at startup
- Logging: writes to /var/log/thermostat.log
Security findings:
LOW: No certificate pinning detected (standard libssl usage)
INFO: Config file may contain API credentials (needs review)
Remaining unknowns:
UNRESOLVED: Exact data fields in telemetry payload
UNRESOLVED: Authentication mechanism (API key location)
Recommendations:
- Review /etc/thermostat.conf for sensitive data
- Monitor network traffic to confirm payload contents
- Consider blocking if telemetry is unwanted
=== EVIDENCE INDEX ===
Facts: 23 recorded across phases
Hypotheses: 2/3 confirmed
Questions: 4/6 answered
Output Formats
Structured JSON (for tools/databases)
{
"artifact": { "sha256": "...", "arch": "arm" },
"conclusions": [
{
"statement": "Binary is telemetry client",
"confidence": 0.9,
"evidence": ["fact_001", "fact_012", "obs_003"]
}
],
"capabilities": {
"network_client": true,
"network_server": false
},
"open_questions": ["Q1: Trigger mechanism"]
}
Markdown (for human readers)
See template above.
STIX/TAXII (for threat intelligence)
If binary is potentially malicious, format findings for sharing:
{
"type": "malware",
"spec_version": "2.1",
"id": "malware--...",
"name": "telemetry-client",
"malware_types": ["spyware"],
"capabilities": ["exfiltrates-data"],
"implementation_languages": ["c"]
}
Next Steps
After synthesis:
- Archive analysis artifacts
- Share report with stakeholders
- Document lessons learned
- Update tool configurations if needed