# Assemblage：面向机器学习的二进制数据集自动构建

> Assemblage 是一个分布式系统，从 GitHub 与 vcpkg 爬取 C/C++ 项目，在多种编译器配置下构建，并记录源码到二进制的映射，包括函数地址、源代码、注释以及 PDB 或 DWARF 调试信息。该系统在 AWS 上运行约一年，以 Visual Studio 2015–2022 在不同优化级别、架构及 Debug／Release 模式下构建出 89 万个 Windows PE 二进制，另以 GCC 与 Clang 构建出 42.8 万个 Linux ELF 二进制，共涵盖 29 种配置。案例研究将这些数据用于 PassTell 编译器溯源、图神经网络与 jTrans 函数相似性检测，以及比较 XDA 与 IDA 的函数边界识别。

- 作者：Chang Liu; Rebecca Saul; Yihao Sun; Edward Raff; Maya Fuchs; Townsend Southard Pantano; James Holt; Kristopher Micinski
- 原标题：Assemblage: Automatic Binary Dataset Construction for Machine Learning
- 发表载体：NeurIPS 2024 Datasets and Benchmarks
- 发表状态：会议论文
- 出版／提交日期：2024 年（具体日期未核实）
- 日期依据：NeurIPS 官方论文集与出版方提交的 Crossref 元数据标明出版年份为 2024；Crossref 未提供更精确的出版日期。arXiv 首次提交日期另行记录。
- arXiv 首次提交：2024 年 5 月 7 日
- arXiv：2405.03991
- 已复核的 arXiv 版本：v2
- DOI：10.52202/079017-1871
- 来源复核于：2026-10-27
- 收录于：2026-11-03
- 原始论文：<https://proceedings.neurips.cc/paper_files/paper/2024/hash/6bbefc73a187dd42e0dc065b4e7a0615-Abstract-Datasets_and_Benchmarks_Track.html>
- PDF：<https://proceedings.neurips.cc/paper_files/paper/2024/file/6bbefc73a187dd42e0dc065b4e7a0615-Paper-Datasets_and_Benchmarks_Track.pdf>
- 代码：<https://github.com/Assemblage-Dataset/Assemblage>
- 项目：<https://assemblage-dataset.net/>
- BibTeX：<https://awesomerea.org/papers/citations/paper-assemblage.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-assemblage/>
- 记录 JSON：<https://awesomerea.org/papers/paper-assemblage/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-assemblage/index.md)

## 研究范围与局限

这些二进制均由 GitHub 与 vcpkg 上的开源项目构建，其中许多是小型学生项目或实用工具，因此不能代表商业、加壳或混淆软件。Assemblage 不独立检测恶意软件，作者依赖 GitHub 禁止恶意软件的政策，并计划在后续版本中加入扫描。论文报告的构建成功率在 Windows 上约为 30%，在 Linux 上为 7%。公开数据集仅包含采用宽松许可证的仓库，因此可下载的副本只是论文语料的子集；元数据中的仓库链接会把二进制与作者的 GitHub 主页关联起来。案例研究在原有协议下以最小改动重新训练现有模型，展示的是 Windows 与 Linux 之间的泛化差距（例如 jTrans 在 Windows 上的 MRR 为 0.52，在 Linux 上为 0.83），而非新的分析方法。

## 与本合集的关联

补充一篇提供源码与调试信息映射的 Windows PE 二进制数据集论文，与本节反编译研究所用的 Linux ELF 函数语料互补。

## 发表与复核说明

Crossref 与 NeurIPS 论文集页面给出八位作者顺序、第 37 卷及第 58698–58715 页；Crossref 只记录年份。论文集页面的 2024-12-16 引用日期也出现在另一篇 NeurIPS 2024 论文的页面上，因此保留年份精度。审阅了 arXiv v2（2024-11-02），其注释标明 NeurIPS；v1 提交于 2024-05-07。在所审阅的 f8ac584 提交（2026-08-08）中，仓库 README 称代码采用 MIT 许可证，公开数据集是宽松许可子集；pyproject.toml 声明 MIT，但没有 LICENSE 文件，GitHub 也未识别出许可证。README 还说明代码库于 2026 年 7 月重构并加入 Rust 构建器，Windows／MSVC 构建位于 backend/assemblage/legacy/ 下且需要 Windows 主机，pre-refactor 分支保留了此前的代码。Hugging Face 上的 changliu8541/Assemblage_PE（公开副本含 9.1 万个 Windows PE 二进制）与 Assemblage_LinuxELF 数据卡声明许可证为“other”，并要求用户遵守各源仓库的许可证。

## 一手来源

1. <https://proceedings.neurips.cc/paper_files/paper/2024/hash/6bbefc73a187dd42e0dc065b4e7a0615-Abstract-Datasets_and_Benchmarks_Track.html>
2. <https://proceedings.neurips.cc/paper_files/paper/2024/file/6bbefc73a187dd42e0dc065b4e7a0615-Paper-Datasets_and_Benchmarks_Track.pdf>
3. <https://api.crossref.org/works/10.52202/079017-1871>
4. <https://arxiv.org/abs/2405.03991v2>
5. <https://arxiv.org/pdf/2405.03991v2>
6. <https://github.com/Assemblage-Dataset/Assemblage/blob/f8ac584038ea2c0a9f0732dd4a64bbfa6f41c012/README.md>
7. <https://github.com/Assemblage-Dataset/Assemblage/blob/f8ac584038ea2c0a9f0732dd4a64bbfa6f41c012/pyproject.toml>
8. <https://huggingface.co/datasets/changliu8541/Assemblage_PE/blob/19a8f947f5a04d03edea78e61790226b55f92ac2/README.md>
9. <https://huggingface.co/datasets/changliu8541/Assemblage_LinuxELF/blob/5d58b08b500ea279a9880f80fd4b217e1897035a/README.md>

## 关于此条目

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