# 基于可解释特征工程重新审视二进制代码相似性分析及经验教训

> 构建可复现的交叉编译基准 BinKit，包含由 51 个 GNU 软件包生成的 243,128 个二进制和 36,256,322 个函数，覆盖八种架构、九个 GCC 与 Clang 版本、五个优化级别，以及 PIE、LTO、禁止内联和 Obfuscator-LLVM 等选项构成的 1,352 种组合。可解释基线 TikNib 基于简单的前语义函数特征，衡量编译器、编译选项与架构如何改变这些特征。作者报告称，少量基本特征即可接近深度学习工具的准确率，加入类型特征后 AUC 超过 0.99，并将失败案例归因于 IDA Pro 分析错误、编译器后端差异和架构特定代码。

- 作者：Dongkwan Kim; Eunsoo Kim; Sang Kil Cha; Sooel Son; Yongdae Kim
- 原标题：Revisiting Binary Code Similarity Analysis Using Interpretable Feature Engineering and Lessons Learned
- 发表载体：IEEE Transactions on Software Engineering
- 发表状态：期刊论文
- 出版／提交日期：2023 年 4 月
- 日期依据：IEEE 向 Crossref 登记的第 49 卷第 4 期纸本刊期日期为 2023-04-01，本目录采用月份精度；不以 2020-11-21 的 arXiv v1 日期或 2022 年 6 月的录用说明替代期刊刊期日期。
- arXiv 首次提交：2020 年 11 月 21 日
- arXiv：2011.10749
- 已复核的 arXiv 版本：v4
- DOI：10.1109/TSE.2022.3187689
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始论文：<https://doi.org/10.1109/TSE.2022.3187689>
- PDF：<https://arxiv.org/pdf/2011.10749v4>
- 代码：<https://github.com/SoftSec-KAIST/BinKit>
- BibTeX：<https://awesomerea.org/papers/citations/paper-binkit.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-binkit/>
- 记录 JSON：<https://awesomerea.org/papers/paper-binkit/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-binkit/index.md)

## 研究范围与局限

研究对象是函数级的前语义（语法与结构）特征，样本为从源码编译、带调试信息以构建真实标签的 Linux GNU 软件包；语义特征、基于 NLP 的模型以及整个二进制或其他相似性任务不在评测范围内。AUC 超过 0.99 的结果所用参数与返回类型通过 Ctags 和调试信息从源码获得，并非从剥离符号的二进制中恢复。与现有最优方法的比较是将 TikNib 在 VulSeeker 的 ASE 数据集上的 AUC 与 VulSeeker 作者报告的数值对照，而非重新运行，并且省略了原论文使用的固件映像。混淆仅涵盖 Obfuscator-LLVM 的指令替换、虚假控制流和控制流平坦化，且只应用一次。实验使用 IDA Pro 6.95，作者也无法排除 MIPS 特征提取有误的可能。结果不能用于对后续学习模型或大语言模型方法排名。

## 与本合集的关联

补充二进制函数匹配的公开可复现基准与可解释基线，并记录编译设置和反汇编器错误如何使相似性结果产生偏差，与 jTrans 等学习模型互补。

## 发表与复核说明

IEEE TSE 第 49 卷第 4 期，页码 1661–1682；Crossref 记录自 2023-04-01 起适用 CC BY 4.0 许可。所审阅的 arXiv v4（2022-07-07）注明于 2022 年 6 月录用；其页眉仍为 2020 年 11 月，这是模板日期而非出版日期。IEEE 与 Crossref 标题中的 “Using” 首字母大写，arXiv 则写作 “using”。在所审阅的 BinKit 提交 f6565a3（2023-12-15，MIT）中，README 介绍了 BinKit 2.0，包含 371,928 个二进制、1,904 种选项组合、23 个编译器并新增 Ofast 级别，论文并未评测该版本；README 的 BinKit 1.0 部分与论文的 243,128 个二进制和 1,352 种组合一致，将四种混淆选项计为编译器（共 13 个），并在 Ubuntu 16.04 上测试。论文版数据集、特征 pickle 文件与工具链需从 Google Drive 下载。分析工具 TikNib 是独立的 MIT 仓库，审阅提交为 3b7c165（2025-05-18）；其 README 为论文设置提供 IDA Pro 6.95 脚本，另提供 IDA Pro 7.5 脚本。

## 一手来源

1. <https://doi.org/10.1109/TSE.2022.3187689>
2. <https://api.crossref.org/works/10.1109/TSE.2022.3187689>
3. <https://arxiv.org/abs/2011.10749>
4. <https://arxiv.org/pdf/2011.10749v4>
5. <https://github.com/SoftSec-KAIST/BinKit/blob/f6565a37049d94a1835dd8459a9d40460daf7fe0/README.md>
6. <https://github.com/SoftSec-KAIST/BinKit/blob/f6565a37049d94a1835dd8459a9d40460daf7fe0/LICENSE.txt>
7. <https://github.com/SoftSec-KAIST/TikNib/blob/3b7c16566726d52fff12ba896749cd9da8d96f67/README.md>
8. <https://github.com/SoftSec-KAIST/TikNib/blob/3b7c16566726d52fff12ba896749cd9da8d96f67/LICENSE.txt>

## 关于此条目

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