# Polyglot：基于动态二进制分析的协议报文格式自动提取

> Polyglot 通过监测程序二进制如何处理接收到的报文来推断其格式，作者称这一方法为“影随”（shadowing）。执行监控器对网络输入施加污点标记并记录指令轨迹；离线分析再依据受污点数据参与的内存访问与循环条件识别长度字段、指针字段等指向字段，依据受污点字节与常量之间的比较识别分隔符，依据指令如何组合输入字节识别多字节定长字段，并依据成功的比较提取协议关键字。该方法适用于剥离符号的 IA-32 二进制，无需源码或调试信息。

- 作者：Juan Caballero; Heng Yin; Zhenkai Liang; Dawn Song
- 原标题：Polyglot: Automatic Extraction of Protocol Message Format using Dynamic Binary Analysis
- 发表载体：ACM CCS 2007
- 发表状态：会议论文
- 出版／提交日期：2007 年 10 月 28 日
- 日期依据：ACM 提交的 Crossref 元数据将纸质与在线出版日期均记为 2007-10-28。本条目采用该日期，而非论文所印 10 月 29 日至 11 月 2 日的会议日期。
- DOI：10.1145/1315245.1315286
- 来源复核于：2026-10-19
- 收录于：2026-10-28
- 原始论文：<https://dl.acm.org/doi/10.1145/1315245.1315286>
- PDF：<https://dl.acm.org/doi/pdf/10.1145/1315245.1315286>
- BibTeX：<https://awesomerea.org/papers/citations/paper-polyglot.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-polyglot/>
- 记录 JSON：<https://awesomerea.org/papers/paper-polyglot/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-polyglot/index.md)

## 研究范围与局限

方法每次提取一条接收报文的格式，且只覆盖提供给分析的报文；从未出现的报文仍然未知，程序发送的报文也不在分析范围内。它不推断协议状态机。评测覆盖 11 个 2007 年前后的程序，实现 DNS、HTTP、IRC、ICQ 与 Samba 五种协议，以 Windows 服务端为主，另含一个 ICQ 客户端和一个 Linux 上的 Samba 服务端；每种协议选取一条代表性报文，并与 Wireshark 0.99.5 的解析器对比。字段格式不包括数据类型与编码；分析以字节为粒度，因此会遗漏不足一字节的标志位；字段语义仅限于指向字段，不识别时间戳、校验和或地址。报文边界依赖同步协议这一假设；ICQ 长度字段之后未使用的定长字段被并入了变长字段。作者也说明这些技术尚不能完全抵御混淆。

## 与本合集的关联

补充依据运行中的实现、以二进制分析推断协议报文格式的研究，合集中的 BinPRE 条目延续了这一方向，并与合集里基于流量的协议研究互补。

## 发表与复核说明

Crossref 将标题记为“Polyglot”，副标题为小写的“automatic extraction of protocol message format using dynamic binary analysis”，并记录四位作者顺序及页码 317–329；本条目采用论文所印的大小写。托管在 Dawn Song 伯克利网站上的 13 页 ACM 排版副本载有 CCS’07 版权声明，页码从 317 起。加州大学河滨分校托管有一份含附录的 15 页作者版本，注明正式版本发表于 CCS’07。执行监控器引自作者此前的工作，并未随论文发布。论文未提供代码或项目链接，因此两者均为 null。

## 一手来源

1. <https://dl.acm.org/doi/10.1145/1315245.1315286>
2. <https://api.crossref.org/works/10.1145/1315245.1315286>
3. <https://people.eecs.berkeley.edu/~dawnsong/papers/2007%20p317-caballero.pdf>
4. <https://www.cs.ucr.edu/~heng/pubs/polyglot-ccs07.pdf>

## 关于此条目

已依据论文及一手来源复核。请通过原始论文或 BibTeX 引用原作者。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
