REFUSE-BENCH
收藏arXiv2024-10-30 更新2024-11-03 收录
下载链接:
https://github.com/FutureComputing4AI/Reverse-Engineering-Function-Search
下载链接
链接失效反馈官方服务:
资源简介:
REFUSE-BENCH是由巴尔的摩马里兰大学创建的一个用于二进制函数相似性检测的基准数据集。该数据集包含243,128个二进制文件,涵盖了多种编译配置和优化设置,旨在模拟真实世界的计算机安全场景。数据集的创建过程包括从GitHub上抓取源代码并进行编译,确保了数据的高质量和多样性。REFUSE-BENCH主要应用于逆向工程、恶意软件分析和漏洞检测等领域,旨在评估和提升现有二进制函数相似性检测模型的性能。
REFUSE-BENCH is a benchmark dataset for binary function similarity detection, developed by the University of Maryland, Baltimore. This dataset contains 243,128 binary files covering various compilation configurations and optimization settings, designed to simulate real-world computer security scenarios. The dataset was created by scraping source code from GitHub and compiling it, ensuring high data quality and diversity. REFUSE-BENCH is mainly applied in fields such as reverse engineering, malware analysis and vulnerability detection, aiming to evaluate and improve the performance of existing binary function similarity detection models.
提供机构:
巴尔的摩马里兰大学
创建时间:
2024-10-30
原始信息汇总
数据集概述
数据集名称
- Assemblage
数据集描述
- Assemblage 是一个用于评估函数相似性模型的数据集。
相关模型
- 该数据集用于评估以下五个模型:
- jTrans
- GNN from Li et. al
- Naive Multiheaded-Attention Transformer Encoder
- Ghidras BSim Plugin
- REFuSe
数据集构建
- 提供了构建 Assemblage 数据集的配方和运行 BSim 实验的代码。
- 有关如何从配方中重现数据集的指南可以在 这里 找到。
数据处理
- 提供了预处理数据以进行实验的代码。
模型训练
- 提供了在 Assemblage 数据上训练模型的代码。
模型评估
- 提供了在数据集上评估模型的代码。
搜集汇总
数据集介绍

构建方式
REFUSE-BENCH 数据集的构建旨在解决现有二进制函数相似性检测基准与实际应用需求之间的差距。该数据集通过收集和编译来自 GitHub 的 C 和 C++ 源代码,使用 Microsoft Visual Studio 编译器在不同的架构、编译器版本、优化级别和构建模式下生成二进制文件。数据集包括 807,133 个二进制文件和 263,205,895 个函数。为了确保数据集的质量和多样性,研究团队采取了多种措施,如分区训练和测试集、过滤重复函数以及应用额外的常见函数过滤器,以减少训练和测试集之间的函数重叠。
特点
REFUSE-BENCH 数据集的主要特点在于其规模和多样性。该数据集包含了大量来自不同源代码和编译配置的二进制文件,涵盖了广泛的开发者和编码风格。此外,数据集还包括了真实的恶意软件样本和常见的库函数,以更好地模拟实际应用场景。通过这些特点,REFUSE-BENCH 能够提供一个更为真实和全面的评估环境,帮助研究人员和从业者更好地理解和改进二进制函数相似性检测模型。
使用方法
REFUSE-BENCH 数据集适用于评估和开发二进制函数相似性检测模型。研究者和开发者可以使用该数据集来训练和测试他们的模型,特别是在处理大规模二进制文件和复杂编译配置时。数据集提供了详细的标签和元数据,便于进行精确的模型评估和比较。此外,REFUSE-BENCH 还支持多种评估指标,如平均倒数排名(MRR)和召回率@k(Recall@k),以全面衡量模型的性能。通过使用 REFUSE-BENCH,研究者和开发者可以更好地理解现有模型的优缺点,并推动该领域的进一步发展。
背景与挑战
背景概述
REFUSE-BENCH,由Rebecca Saul、Chang Liu等人于2024年构建,旨在解决二进制函数相似性检测(BFSD)这一核心安全任务中的挑战。BFSD在逆向工程、恶意软件分析和漏洞检测等领域具有广泛应用。传统的手动分析方法耗时且复杂,而现有的自动化解决方案往往依赖于复杂的反汇编和反编译工具、图分析等高成本预处理步骤。REFUSE-BENCH通过构建高质量的数据集和测试,更好地反映了现实世界的使用案例,解决了数据重复和准确标注等问题,并首次对基于机器学习的二进制函数相似性模型在Windows数据上的表现进行了严肃评估。
当前挑战
REFUSE-BENCH面临的挑战包括:1) 解决二进制函数相似性检测中的领域问题,如逆向工程和恶意软件分析中的复杂性;2) 在构建过程中遇到的挑战,如数据重复、准确标注和处理不同编译器优化等问题。此外,该数据集还需要应对大规模数据处理和多样性不足的问题,以确保模型在不同场景下的泛化能力。
常用场景
经典使用场景
REFUSE-BENCH 数据集在二进制函数相似性检测领域中扮演着重要角色,其经典使用场景主要集中在逆向工程、恶意软件分析和漏洞检测等关键安全任务中。该数据集通过提供高质量的数据集和测试,更好地反映了现实世界的使用案例,解决了数据重复和准确标注等问题。
解决学术问题
REFUSE-BENCH 数据集解决了当前研究环境中与实际应用需求之间的多个差异,特别是在处理复杂汇编代码和确定函数等价性的NP难题方面。它通过引入新的基准,揭示了简单基线模型在多个设置中能够达到最先进的性能,挑战了复杂模型和高度工程化特征的传统假设。
衍生相关工作
REFUSE-BENCH 数据集的引入催生了一系列相关研究工作,特别是在机器学习应用于二进制分析领域。例如,Gemini 和 jTrans 等模型在处理二进制函数相似性检测时,借鉴了 REFUSE-BENCH 的方法和数据集。这些工作不仅提升了模型的性能,还推动了整个领域的发展,展示了简单方法在复杂任务中的显著价值。
以上内容由遇见数据集搜集并总结生成



