# BinPRE：增强基于二进制分析的协议逆向工程中的字段推断

> 根据受插桩监测的服务端二进制及输入报文，推断协议报文的字段边界与语义。BinPRE 按处理字节的指令操作符进行分组，使用检测器识别字段类型和功能，再借助相似报文细化结果。作者在八种协议、每种 50 条报文上报告平均字段完美分割率为 0.73，类型／功能推断的 F1 分数为 0.74／0.81。

- 作者：Jiayi Jiang; Xiyuan Zhang; Chengcheng Wan; Haoyi Chen; Haiying Sun; Ting Su
- 原标题：BinPRE: Enhancing Field Inference in Binary Analysis Based Protocol Reverse Engineering
- 发表载体：ACM CCS 2024
- 发表状态：会议论文
- 出版／提交日期：2024 年 12 月 2 日
- 日期依据：出版方提交的 Crossref 元数据将 published／纸质出版日期记为 2024-12-02，另有一项出版方发表历史声明记为 2024-12-09。本条目采用 published／纸质出版日期；10 月 14–18 日的 CCS 会议日期及 9 月的 arXiv 提交日期另行区分。
- arXiv 首次提交：2024 年 9 月 3 日
- arXiv：2409.01994
- 已复核的 arXiv 版本：v1
- DOI：10.1145/3658644.3690299
- 来源复核于：2026-10-17
- 收录于：2026-10-17
- 原始论文：<https://dl.acm.org/doi/10.1145/3658644.3690299>
- PDF：<https://tingsu.github.io/files/ccs24-BinPRE.pdf>
- 代码：<https://github.com/ecnusse/BinPRE>
- BibTeX：<https://awesomerea.org/papers/citations/paper-binpre.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-binpre/>
- 记录 JSON：<https://awesomerea.org/papers/paper-binpre/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-binpre/index.md)

## 研究范围与局限

研究对象是字段推断，不是恢复协议状态机或端点的完整行为。方法需要能够访问并插桩的实现及运行时的报文处理；仅有被动捕获数据并不足够。完美分割率统计被精确分割的字段占全部真实字段的比例，而非完整恢复的协议比例。检测器库覆盖五种语义类型与六种功能。字节级污点分析无法准确解析位标志，也不确立未执行行为。真实标签依据 Wireshark 解析器与协议规范构建；三种二进制分析基线由作者重新实现。报告的模糊测试改进属于下游评估，不是实现等价性的证明。

## 与本合集的关联

补充近期借助可执行程序进行协议字段与语义推断的研究，与合集已有的流量语法推断和协议状态学习形成互补。

## 发表与复核说明

作者发表列表链接了 CCS 排版论文、17 页的 arXiv v1 及产物。六位作者顺序、DOI 和论文集页码与 Crossref 一致。所审阅产物快照日期为 2024-10-25，未声明项目级许可证。README 指定 Ubuntu 20.04、Python 3.8 与 Intel Pin 3.28；流程运行服务端和客户端，并需选择协议与线程。所审阅源码树提供 Modbus 示例，并非完整的八协议评测包；其他服务端、捕获数据及评估用真实标签需要另行配置。README 的 Docker 示例使用特权容器，Dockerfile 获取具名分支，而非所审阅的固定提交。公开可见不授予捆绑二进制或依赖的使用权。

## 一手来源

1. <https://dl.acm.org/doi/10.1145/3658644.3690299>
2. <https://api.crossref.org/works/10.1145/3658644.3690299>
3. <https://tingsu.github.io/files/ccs24-BinPRE.pdf>
4. <https://tingsu.github.io/files/publication.html>
5. <https://arxiv.org/abs/2409.01994>
6. <https://arxiv.org/pdf/2409.01994v1>
7. <https://github.com/ecnusse/BinPRE/blob/9a32bd22b6158d285a237dec10d11403eda8ac4c/README.md>
8. <https://github.com/ecnusse/BinPRE/blob/9a32bd22b6158d285a237dec10d11403eda8ac4c/requirements.txt>
9. <https://github.com/ecnusse/BinPRE/blob/9a32bd22b6158d285a237dec10d11403eda8ac4c/Dockerfile>
10. <https://github.com/ecnusse/BinPRE/blob/9a32bd22b6158d285a237dec10d11403eda8ac4c/install_pin.sh>
11. <https://github.com/ecnusse/BinPRE/blob/9a32bd22b6158d285a237dec10d11403eda8ac4c/Artifact_Evaluation/BinPRE_scripts/run_modbus_client.sh>
12. <https://github.com/ecnusse/BinPRE/blob/9a32bd22b6158d285a237dec10d11403eda8ac4c/Artifact_Evaluation/BinPRE_scripts/run_modbus_server.sh>
13. <https://github.com/ecnusse/BinPRE/blob/9a32bd22b6158d285a237dec10d11403eda8ac4c/Analyzer/config.py>
14. <https://github.com/ecnusse/BinPRE/blob/9a32bd22b6158d285a237dec10d11403eda8ac4c/Analyzer/AAA_Evaluation/Syntax_Evaluator.py>

## 关于此条目

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