# jTrans：面向二进制代码相似性检测的跳转感知 Transformer

> jTrans 使用 BERT 风格的 Transformer 为二进制函数生成嵌入，以支持相似性检索。其跳转感知表示让直接跳转的操作数词元与跳转目标的位置嵌入共享参数，从而无需单独的图神经网络即可将控制流引入指令序列。模型先以掩码语言建模和跳转目标预测进行预训练，再以余弦三元组目标在同一源码不同优化级别编译出的函数上微调。论文还发布了 BinaryCorp，它由 gcc 与 g++ 编译 Arch Linux 官方仓库及 AUR 中的 C/C++ 软件包构建而成。

- 作者：Hao Wang; Wenjie Qu; Gilad Katz; Wenyu Zhu; Zeyu Gao; Han Qiu; Jianwei Zhuge; Chao Zhang
- 原标题：jTrans: Jump-Aware Transformer for Binary Code Similarity Detection
- 发表载体：ACM ISSTA 2022
- 发表状态：会议论文
- 出版／提交日期：2022 年 7 月 18 日
- 日期依据：ACM 提交的 Crossref 元数据将 published／纸质与在线出版日期均记为 2022-07-18；该日期取自出版方元数据，而非 7 月 18–22 日的会议日期。
- arXiv 首次提交：2022 年 5 月 25 日
- arXiv：2205.12713
- 已复核的 arXiv 版本：v1
- DOI：10.1145/3533767.3534367
- 来源复核于：2026-10-18
- 收录于：2026-10-19
- 原始论文：<https://dl.acm.org/doi/10.1145/3533767.3534367>
- PDF：<https://arxiv.org/pdf/2205.12713v1>
- 代码：<https://github.com/vul337/jTrans>
- BibTeX：<https://awesomerea.org/papers/citations/paper-jtrans.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-jtrans/>
- 记录 JSON：<https://awesomerea.org/papers/paper-jtrans/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-jtrans/index.md)

## 研究范围与局限

模型仅在单一架构上训练（据论文讨论部分为 x86），未评估跨架构检索。方法只编码直接跳转，间接跳转目标不在研究范围内。反汇编与函数提取依赖 IDA Pro 7.5，上游的边界识别错误未被衡量。BinaryCorp 在 O0–O3 与 Os 之间配对 gcc／g++ 构建结果，并按项目划分训练集与测试集；它不涵盖混淆或其他编译器，只有漏洞检索实验额外加入 clang 变体。作者报告在 BinaryCorp-26M、候选池规模为 10,000 时，平均 Recall@1 为 62.5%，最佳基线为 32.0%；随着候选池增大，准确率仍会下降，作者也指出真实场景的候选池更大。漏洞检索实验使用八个 CVE，每个有十个变体。基线来自 2022 年，其中 Asm2Vec 与 OrderMatters 为重新实现，因此该比较不能确立当前排名。相似性排序只给出候选匹配，并不恢复源码、名称或类型。

## 与本合集的关联

补充基于学习的二进制代码相似性检索。它可辅助逆向工程中的函数匹配、库识别与已知漏洞检索，与反编译和符号恢复研究互补。

## 发表与复核说明

arXiv 摘要页将论文标题写作“jTrans: Jump-Aware Transformer for Binary Code Similarity”；其唯一版本 v1 的 PDF 使用完整的 ISSTA 标题、ACM 引用格式及 DOI，备注也注明 ISSTA 2022。Crossref 与 PDF 一致给出八位作者顺序、DOI、第 1–13 页及 CC BY 4.0 许可。2025-04-10 提交中的 README 声明 MIT 许可，并列出 Linux、Python 3.8+、PyTorch 1.10+、CUDA 10.2+，以及用于数据集处理的 IDA Pro 7.5+。训练好的模型、实验文件、处理后的 BinaryCorp 及其原始二进制托管在作者实验室的 GitHub 之外的文件服务器上，其可用性与代码仓库无关。发布的数据加载代码将每个函数截断为 512 个词元位置。BinaryCorp 中的软件包各自保留原有许可。

## 一手来源

1. <https://dl.acm.org/doi/10.1145/3533767.3534367>
2. <https://api.crossref.org/works/10.1145/3533767.3534367>
3. <https://arxiv.org/abs/2205.12713>
4. <https://arxiv.org/pdf/2205.12713v1>
5. <https://github.com/vul337/jTrans/blob/1d405156865e3c582e4f183cbaa623b700ea0e9e/README.md>
6. <https://github.com/vul337/jTrans/blob/1d405156865e3c582e4f183cbaa623b700ea0e9e/LICENSE>
7. <https://github.com/vul337/jTrans/blob/1d405156865e3c582e4f183cbaa623b700ea0e9e/datautils/README.md>
8. <https://github.com/vul337/jTrans/blob/1d405156865e3c582e4f183cbaa623b700ea0e9e/data.py>
9. <https://github.com/vul337/jTrans/blob/1d405156865e3c582e4f183cbaa623b700ea0e9e/finetune.py>

## 关于此条目

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