# CNNPRE：基于 CNN 的协议逆向方法（IEEE Access 2023）

> CNNPRE 的研究代码与数据。CNNPRE 是 Javad Garshasbi 与 Mehdi Teimouri 于 2023 年发表在 IEEE Access 上、用于协议逆向工程的报文类型识别方法。仓库中唯一的 Colab 笔记本把每条报文补齐后的比特串转为缩放的灰度图像，借助在 ImageNet 上预训练的 ResNet50 进行迁移学习以提取特征，加入报文方向和长度分组编码，用 UMAP 降维后再以凝聚聚类和 HDBSCAN 对报文聚类，并将各聚类结果与已标注的报文类型比较评分。笔记本附有从 ARP、DNS 到 SMTP、GSM 等十二种协议的预处理报文数据集。

- 类型：研究
- 目标：协议
- 类别：协议分析工具
- 关联：学习资源
- 来源复核于：2026-10-27
- 收录于：2026-11-03
- 原始资源：<https://github.com/JG91/CNNPRE>
- 一手来源：<https://github.com/JG91/CNNPRE/blob/c7679ee4fb20fd7c3ff712b3e1287bdbbf171421/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/cnnpre/>
- 记录 JSON：<https://awesomerea.org/resources/cnnpre/record.json>
- 英文版：[English](https://awesomerea.org/resources/cnnpre/index.md)

## 使用条件与局限

- 论文：Javad Garshasbi、Mehdi Teimouri，《CNNPRE: A CNN-Based Protocol Reverse Engineering Method》，IEEE Access 第 11 卷，第 116255–116268 页，2023 年，DOI 10.1109/ACCESS.2023.3325391；Crossref 标注其采用 CC BY-NC-ND 4.0 许可。仓库审阅对象为 2026-01-13 的最新提交（一次 README 更新）；笔记本最后修改于 2023-07-06，没有发布版本。
- 唯一的代码是为 Google Colab 编写的 cnnpre.ipynb。它用 pip 安装 umap-learn 和 hdbscan，用 apt 安装 TeX Live 与 pandoc 以导出 PDF，其余依赖 Colab 预装的 TensorFlow、scikit-learn、OpenCV、pandas 和 yellowbrick，均未固定版本。它会下载 ImageNet 预训练的 ResNet50 权重，读取写死的 CSV 文件（GSM5000-hex.csv），换用其他数据集时需修改报文数量，最后几个单元格还会挂载 Google Drive 来转换笔记本。没有软件包、命令行工具或测试。
- 输入是按报文组织的 CSV，包含方向、已标注的报文类型以及每条报文的十六进制和比特串。Data/ 收录 ARP、DHCP、DNS、FTP、GSM、HTTP、ICMP、NBNS、NTP、POP、SMTP 和 Syslog 的预处理 CSV，PCAP/ 收录 GSM 捕获文件 44CON-gsm-uplink-downlink-sim-example.pcap，README 指出其余数据来源是公开的 WRCCDC 2021 地区赛流量。仓库未提供从 PCAP 转换为 CSV 的预处理脚本，因此新协议需要自行转换，而笔记本的评估指标还需要真实的报文类型标注。
- 笔记本只涉及报文类型聚类，不包括字段、语义或状态机推断。其中标为 K-Means 的结果用 K-means 肘部法确定聚类数，实际却用凝聚聚类完成聚类；保存的输出只显示一次 GSM 运行。准确率数据来自论文。
- GitHub 未检测到许可证，仓库也没有许可证文件，因此代码和预处理数据集均未声明复用条款；论文的许可只适用于文章本身，不适用于仓库，捕获流量遵循其来源的条款。

## 一手来源

1. <https://github.com/JG91/CNNPRE/blob/c7679ee4fb20fd7c3ff712b3e1287bdbbf171421/README.md>
2. <https://github.com/JG91/CNNPRE/blob/c7679ee4fb20fd7c3ff712b3e1287bdbbf171421/cnnpre.ipynb>
3. <https://github.com/JG91/CNNPRE/tree/c7679ee4fb20fd7c3ff712b3e1287bdbbf171421/Data>
4. <https://github.com/JG91/CNNPRE/tree/c7679ee4fb20fd7c3ff712b3e1287bdbbf171421/PCAP>
5. <https://doi.org/10.1109/ACCESS.2023.3325391>

## 同分区更多条目：文档与学习资源

- [RPISEC 恶意软件分析课程（CSCI 4976）](https://awesomerea.org/zh/resources/rpisec-malware-analysis-course/index.md) · 学习资源
- [Corkami 文件格式图解海报集](https://awesomerea.org/zh/resources/corkami-pics/index.md) · 学习资源
- [《Practical Malware Analysis》恶意软件分析实战指南](https://awesomerea.org/zh/resources/practical-malware-analysis/index.md) · 学习资源
- [Windows 恶意软件分析培训第一卷（malware_training_vol1）](https://awesomerea.org/zh/resources/malware-training-vol1/index.md) · 学习资源
- [esp-idf-injection-ng ESP-IDF 帧发送限制分析](https://awesomerea.org/zh/resources/esp-idf-injection-ng/index.md) · 研究
- [RE-Workstation 逆向分析知识库](https://awesomerea.org/zh/resources/re-workstation/index.md) · 学习资源

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
