2024 · 期刊论文
CodeArt:在缺少符号时通过注意力正则化改进代码模型
CodeArt: Better Code Models by Attention Regularization When Symbols Are Lacking
CodeArt 基于 jTrans 的 BinaryCorp 构建的 2,600 万个剥离符号的 x86-64 函数,从零开始预训练一个 BERT 规模的编码器。它不依赖符号,而是利用 IDA Pro 控制流图和面向二进制的数据流分析计算控制依赖与数据依赖,再通过注意力掩码,使每个词元只能关注与其存在传递依赖关系的指令、同一条指令内的词元以及全局 [CLS] 词元;预训练时同时遮蔽词元并扰动依赖图。作者将其微调用于二进制相似性分析、恶意软件家族分类和类型推断,报告相对已有模型的提升为:在 500 个函数的候选池中相似性 recall@1 由 53% 升至 64%,恶意软件家族分类 LRAP 由 49% 升至 60%,类型推断平均 F1 由 74% 升至 94%。
研究范围与局限
模型仅处理 x86-64,函数由 IDA Pro 反汇编,输入上限为 512 个词元。相似性任务在 BinaryCorp-3M 上微调,以 Coreutils 作验证集,在 Curl、Binutils、ImageMagick、SQLite、OpenSSL 和 PuTTY 六个项目上测试,基线为 GNN、GMN、jTrans 与 DiEmph;PuTTY 的函数较短,CodeArt 在其上仅与 DiEmph 相当。类型推断使用 StateFormer 数据集中的 x86-64 部分及 35 个标签,并与 StateFormer 已报告的结果比较,而非重新运行。恶意软件分类使用来自 VirusTotal 与 VirusShare、属于最常见 100 个家族的 5,484 个样本,对比 jTrans 和重新实现的 CNN。所有提升都是相对这些基线和设定而言。CodeArt 输出嵌入及特定任务的预测,既不是反编译器,也不是恶意软件检测器。
与本合集的关联
补充面向剥离符号二进制函数的通用预训练方法,以程序依赖关系代替缺失的符号,并在支持逆向工程的相似性分析、类型推断和恶意软件家族分类任务上评估。
发表与复核详情
- 发表载体
- Proceedings of the ACM on Software Engineering (FSE 2024)
- 发表状态
- 期刊论文
- 出版/提交日期
- 2024 年 7 月 12 日
- 日期依据
- ACM 提交的 Crossref 元数据将纸质与在线出版日期均记为 2024-07-12;本条目不以引用格式中的 2024 年 7 月期号日期或 FSE 2024 会议日期替代该日期。
- arXiv 首次提交
- 2024 年 2 月 19 日
- arXiv
- 2402.11842
- 已复核的 arXiv 版本
- v1
- DOI
- 10.1145/3643752
Crossref 记录该文刊于 Proceedings of the ACM on Software Engineering 第 1 卷 FSE 期,页码 562–585,七位作者顺序与 arXiv 一致。ACM 文章页面拒绝自动访问,因此出版信息以 Crossref 为准,所审阅的文本是唯一版本 arXiv v1(2024-02-19),其中带有 PACMSE 引用格式与 DOI。摘要按相似性分析、类型推断、恶意软件的顺序列出三项提升;贡献列表与评估部分则将 LRAP 49%→60% 归于恶意软件家族分类,将 F1 74%→94% 归于类型推断,本条目以后者为准。论文链接 ziansu/codeart。在所审阅的 2025-03-10 提交中,仓库声明 MIT 许可证,README 指向 artifacts 分支;README-docker.md 介绍了一个 3.8 GB、带 Gradio 演示界面的 Docker 镜像,并链接 Hugging Face 上的 PurCL CodeArt-Artifacts 合集,其中的检查点与数据集(包括最常见 100 个恶意软件家族的数据)均未声明许可证。REQUIREMENTS 文件要求 Docker、64 GB 内存、24 GB 显存 GPU 及最多 100 GB 磁盘空间。本次未下载或运行任何内容。
来源复核于
本合集仅做来源复核,未重新运行论文实验。请通过原始论文或 BibTeX 引用原作者。
一手来源
- https://dl.acm.org/doi/10.1145/3643752
- https://api.crossref.org/works/10.1145/3643752
- https://arxiv.org/abs/2402.11842
- https://arxiv.org/pdf/2402.11842v1
- README.md GitHub · ziansu/codeart · 修订 0f78714
- LICENSE GitHub · ziansu/codeart · 修订 0f78714
- README-docker.md GitHub · ziansu/codeart · 修订 0f78714
- REQUIREMENTS GitHub · ziansu/codeart · 修订 0f78714
- https://huggingface.co/collections/PurCL/codeart-artifacts-662e73dcd9b837e4b970c9be