二进制逆向工程综合报告生成Skill binary-re-synthesis

这是一个用于二进制逆向工程分析的专业技能,能够将初步检查、静态分析和动态分析阶段收集的证据进行综合,验证假设,并生成结构化的分析报告。该技能包含完整的报告模板、置信度校准、质量检查清单和多种输出格式(如Markdown、JSON、STIX),适用于恶意软件分析、软件安全审计、漏洞研究等场景。关键词:二进制分析,逆向工程,报告生成,恶意软件分析,安全审计,证据链,假设验证,结构化报告。

逆向工程 2 次安装 41 次浏览 更新于 3/1/2026

name: binary-re-synthesis description: 当准备好记录发现、生成报告或总结二进制分析结果时使用。将分析发现编译成结构化报告——关联初步检查/静态/动态阶段的事实,验证假设,生成带有证据链的文档。关键词 - “总结发现”、“生成报告”、“记录分析”、“我们发现了什么”、“撰写结果”、“导出发现”

分析综合(第5阶段)

目的

将所有收集到的知识汇编成可操作的情报。根据证据验证假设。生成带有可追溯发现的结构化报告。

何时使用

  • 已从初步检查 + 静态 + 动态分析中收集到足够的事实
  • 准备为交接或归档记录理解
  • 需要向利益相关者展示发现
  • 在结束分析会话之前

综合流程

步骤1:证据审查

收集所有记录的知识:

收集到的事实:
- 来自初步检查:架构、ABI、依赖项、功能
- 来自静态分析:函数、交叉引用、反编译
- 来自动态分析:系统调用、网络、文件访问

形成的假设:
- 有支持证据的
- 有矛盾证据的
- 未解决的假设

剩余的问题:
- 阻碍性问题(阻止得出结论)
- 开放性问题(未来调查)

步骤2:假设验证

对于每个假设,确定状态:

证据状态 状态 行动
强力支持,无矛盾 已确认 包含在结论中
部分支持,部分矛盾 不确定 记录双方证据
强力矛盾 已反驳 解释错误原因
双方均无证据 未验证 列为未知

步骤3:关联分析

跨阶段连接发现:

静态发现:地址0x8400处的函数调用socket()、connect()、SSL_read()
动态发现:观察到connect()连接到192.168.1.100:8443
找到的字符串:"api.vendor.com/telemetry"

关联结论:
函数0x8400是用于向api.vendor.com:8443通过TLS提交遥测数据的网络初始化函数。

步骤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句话概述发现内容]

## 工件信息

| 属性 | 值 |
|----------|-------|
| 文件名 | [名称] |
| SHA256 | [哈希值] |
| 架构 | [架构] |
| Libc | [glibc/musl/uclibc] |
| 已剥离 | [是/否] |
| 分析日期 | [日期] |
| 分析师 | [人类 + Claude] |

## 识别

**文件类型:** ELF [32/64]位 [LSB/MSB] [可执行文件/共享对象]

**目的(假设):** [我们相信此二进制文件的作用]

**置信度:** [高/中/低] - [简要理由]

## 功能摘要

### 已确认的功能
- [功能1] - 证据:[来源]
- [功能2] - 证据:[来源]

### 潜在功能(未验证)
- [功能] - 原因:[为何怀疑]

## 技术发现

### 关键函数

| 地址 | 推断名称 | 目的 | 置信度 |
|---------|---------------|---------|------------|
| 0x8400 | network_init | 初始化网络连接 | 高 |
| 0x9200 | parse_config | 解析JSON配置 | 中 |
| 0x10800 | main_loop | 主执行循环 | 高 |

### 外部通信

| 目的地 | 端口 | 协议 | 目的 |
|-------------|------|----------|---------|
| api.vendor.com | 8443 | HTTPS | 遥测提交 |

### 文件系统访问

| 路径 | 访问 | 目的 |
|------|--------|---------|
| /etc/config.json | 读取 | 配置 |
| /var/log/app.log | 写入 | 日志记录 |

## 证据日志

### 已确认的假设

**H1:二进制文件是遥测客户端**
- 状态:已确认
- 支持证据:
  - 导入libcurl(HTTP客户端)
  - 在0x12340处找到字符串"telemetry"
  - 观察到connect()连接到api.vendor.com:8443
- 矛盾证据:无

### 已反驳的假设

**H2:二进制文件充当服务器**
- 状态:已反驳
- 原因:未观察到bind/listen/accept导入或调用

### 未解决的问题

- Q1:什么触发遥测提交?(基于时间还是事件?)
- Q2:收集什么数据?(需要更深入的动态分析)

## 建议

### 安全审查
- [ ] 验证TLS证书验证
- [ ] 检查硬编码凭据
- [ ] 审计数据收集范围

### 进一步分析
- [ ] 在执行期间捕获网络流量
- [ ] 详细分析配置格式
- [ ] 测试配置错误时的行为

## 附录

### A. 工具输出
[关键分析步骤的截断原始输出]

### B. 时间线
[所采取分析步骤的时序日志]

### C. 文件哈希
[所有分析文件的SHA256]

置信度校准

使用一致的置信度级别:

级别 含义 所需证据
几乎确定 多个独立来源确认
很可能正确 一些证据,无矛盾
可能 有限证据,有些不确定性
推测性 猜测 基于模式,非直接证据

质量检查清单

最终确定报告前:

  • [ ] 所有假设都有明确状态(已确认/已反驳/不确定)
  • [ ] 每个结论都有可追溯的证据
  • [ ] 记录的剩余未知项
  • [ ] 技术细节准确(地址、名称)
  • [ ] 没有将推测作为事实呈现
  • [ ] 建议是可操作的

知识日志记录

综合后,为情景记忆记录最终摘要:

[BINARY-RE:synthesis] {文件名} (sha256: {哈希值})
分析完成:{日期}
完成阶段:{初步检查|静态|动态|综合}

=== 最终结论 ===

主要目的:{二进制文件的作用}
置信度:{高|中|低}

已确认的假设:
  已确认:{假设}(证据:{事实})

已反驳的假设:
  已反驳:{假设}(原因:{矛盾证据})

关键功能:
  - {功能}:{证据摘要}

安全发现:
  {严重|高|中|低|信息}:{发现}(位置:{地址/函数})

剩余未知项:
  未解决:{问题}

建议:
  - {可操作建议}

=== 证据索引 ===
事实:跨阶段记录{数量}个
假设:{已确认}/{总数}
问题:{已回答}/{总数}

示例最终条目

[BINARY-RE:synthesis] thermostat_daemon (sha256: a1b2c3d4...)
分析完成:2024-01-15
完成阶段:初步检查、静态、动态、综合

=== 最终结论 ===

主要目的:向供应商云报告温度/湿度的物联网遥测客户端
置信度:高

已确认的假设:
  已确认:"向api.thermco.com报告的遥测客户端"(证据:URL字符串、curl导入、观察到connect())
  已确认:"30秒报告间隔"(证据:主循环中的sleep(30)、strace时间)

已反驳的假设:
  已反驳:"可能有本地Web服务器"(原因:无bind/listen/accept导入或调用)

关键功能:
  - HTTPS客户端:libcurl + libssl,连接到api.thermco.com:443
  - 配置解析:启动时读取/etc/thermostat.conf
  - 日志记录:写入/var/log/thermostat.log

安全发现:
  低:未检测到证书固定(标准libssl使用)
  信息:配置文件可能包含API凭据(需要审查)

剩余未知项:
  未解决:遥测载荷中的确切数据字段
  未解决:认证机制(API密钥位置)

建议:
  - 审查/etc/thermostat.conf中的敏感数据
  - 监控网络流量以确认载荷内容
  - 如果不需要遥测,考虑阻止

=== 证据索引 ===
事实:跨阶段记录23个
假设:2/3已确认
问题:4/6已回答

输出格式

结构化JSON(用于工具/数据库)

{
  "artifact": { "sha256": "...", "arch": "arm" },
  "conclusions": [
    {
      "statement": "二进制文件是遥测客户端",
      "confidence": 0.9,
      "evidence": ["fact_001", "fact_012", "obs_003"]
    }
  ],
  "capabilities": {
    "network_client": true,
    "network_server": false
  },
  "open_questions": ["Q1:触发机制"]
}

Markdown(用于人类读者)

参见上方模板。

STIX/TAXII(用于威胁情报)

如果二进制文件可能恶意,格式化发现以供共享:

{
  "type": "malware",
  "spec_version": "2.1",
  "id": "malware--...",
  "name": "telemetry-client",
  "malware_types": ["spyware"],
  "capabilities": ["exfiltrates-data"],
  "implementation_languages": ["c"]
}

后续步骤

综合后:

  • 归档分析工件
  • 与利益相关者共享报告
  • 记录经验教训
  • 如果需要,更新工具配置