# 越仔细观察，学到的越多：用于协议状态机学习的灰盒方法

> StateInspector 将主动消息查询与运行时内存快照结合起来，学习协议的 Mealy 状态机，无需目标实现的源代码。它识别可能决定状态的堆内存位置，并通过污点分析与混合执行合并状态；作者在 TLS 1.2 和 WPA/2 实现上进行了评估。

- 作者：Chris McMahon Stone; Sam L. Thomas; Mathy Vanhoef; James Henderson; Nicolas Bailluet; Tom Chothia
- 原标题：The Closer You Look, The More You Learn: A Grey-box Approach to Protocol State Machine Learning
- 发表载体：ACM CCS 2022
- 发表状态：会议论文
- 出版／提交日期：2022 年 11 月 7 日
- 日期依据：ACM 提交的 Crossref 记录将在线及印刷出版日期均列为 2022 年 11 月 7 日；该日期并非仅根据会议日程推定。
- DOI：10.1145/3548606.3559365
- 来源复核于：2026-10-17
- 收录于：2026-10-17
- 原始论文：<https://doi.org/10.1145/3548606.3559365>
- PDF：<https://tomchothia.gitlab.io/Papers/greyboxstatelearning_ccs2022.pdf>
- 代码：<https://github.com/ChrisMcMStone/state-inspector>
- BibTeX：<https://awesomerea.org/papers/citations/paper-stateinspector.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-stateinspector/>
- 记录 JSON：<https://awesomerea.org/papers/paper-stateinspector/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-stateinspector/index.md)

## 研究范围与局限

假设协议可抽象为有限 Mealy 状态机、已知输入字母表能到达相关状态，且决定状态的内存位于堆上并可由初始化查询触及。状态合并依赖所配置的搜索深度与符号执行前瞻上限。缺失的输入或存储在其他位置的状态可能导致行为未被建模；测试驱动程序构造的错误消息、响应抽象方式和超时也可能产生误导性转移。学习出的模型与有界检查不能证明实现完全等价，也不恢复未知消息格式或重建应用源代码。

## 与本合集的关联

提供从可执行协议实现中重建通信状态行为、检查其与预期流程偏差的具体方法，可与消息格式推断互补。

## 发表与复核说明

核查的是作者托管的 19 页版本；ACM 提交的元数据将论文集页码列为 2265–2278。公开代码记录了较早的 Linux 环境，包括 Python 2、OpenJDK 14、Maven、针对各协议的输入与重置测试驱动程序，以及目标相关的 ptrace 钩子。污点分析路径需要 Triton 和 IDA Pro/Wine；省略该路径可能因计数器而无法终止。所检查仓库中未发现项目整体许可证；各组件许可与专有工具使用权需分别处理。

## 一手来源

1. <https://doi.org/10.1145/3548606.3559365>
2. <https://api.crossref.org/works/10.1145/3548606.3559365>
3. <https://tomchothia.gitlab.io/Papers/greyboxstatelearning_ccs2022.pdf>
4. <https://github.com/ChrisMcMStone/state-inspector/blob/103494e6d30fd7741e74393d844212acb4daf683/README.md>
5. <https://github.com/ChrisMcMStone/state-inspector/blob/103494e6d30fd7741e74393d844212acb4daf683/.gitmodules>
6. <https://github.com/ChrisMcMStone/state-inspector/blob/103494e6d30fd7741e74393d844212acb4daf683/ptrace-statemem/LICENSE>
7. <https://github.com/ChrisMcMStone/state-inspector/blob/103494e6d30fd7741e74393d844212acb4daf683/blackbox/statelearner/LICENSE>

## 关于此条目

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