Callee-Dataset
收藏github2023-12-17 更新2024-05-31 收录
下载链接:
https://github.com/Learner0x5a/Callee-Dataset
下载链接
链接失效反馈官方服务:
资源简介:
本数据集用于x86_64架构的间接调用识别,基于SPEC CPU 2006和UniBench基准测试构建。数据集包含收集的间接调用的汇编函数,每个文件对应一个二进制文件,每行包含{调用点偏移 | 调用点函数指令}和{被调用者偏移 | 被调用者函数指令}。此外,还包括一个csv文件,记录了间接调用的详细信息。
This dataset is designed for the identification of indirect calls on the x86_64 architecture, constructed based on the SPEC CPU 2006 and UniBench benchmarks. The dataset includes collected assembly functions of indirect calls, with each file corresponding to a binary file. Each line contains {call site offset | call site function instruction} and {callee offset | callee function instruction}. Additionally, a CSV file is included, documenting detailed information about the indirect calls.
创建时间:
2023-12-17
原始信息汇总
数据集概述
数据集名称
Callee-Dataset
数据集目的
用于x86_64间接调用识别。
数据集内容
funcs目录:包含收集的间接调用的汇编函数。callee子目录:包含收集的被调用函数的文件,每个文件对应一个二进制文件,每行包含{callee_offset | callee_function_insns}。callsite子目录:包含收集的调用点的文件,每个文件对应一个二进制文件,每行包含{callsite_offset | callsite_function_insns}。
icall.release.csv文件:包含间接调用的信息,列有(callsite_offset, callee_offset, callsite_binary, callee_binary)。
数据集构建基础
- 基准测试:
- 工具:
引用信息
- 相关研究:
- Zhu, Wenyu et al. "kTrans: Knowledge-Aware Transformer for Binary Code Embedding." arXiv preprint arXiv:2308.12659 (2023).
- Zhu, Wenyu et al. "Callee: Recovering Call Graphs for Binaries with Transfer and Contrastive Learning." 2023 IEEE Symposium on Security and Privacy (SP), 2023.
搜集汇总
数据集介绍

构建方式
Callee-Dataset的构建基于x86_64架构的间接调用识别任务,主要依托于SPEC CPU 2006和UniBench两个基准测试集。通过ibresolver工具,该数据集从二进制程序中提取了间接调用的相关信息。具体而言,数据集包含两个主要部分:callee和callsite,分别存储了被调用函数和调用点的汇编指令信息。每个二进制文件对应一个文件,文件中的每一行记录了函数偏移量及其对应的汇编指令。此外,数据集还提供了一个包含间接调用信息的CSV文件,详细记录了调用点偏移量、被调用函数偏移量以及对应的二进制文件。
特点
Callee-Dataset的特点在于其专注于x86_64架构下的间接调用识别,提供了丰富的汇编函数信息。数据集中的每个调用点和被调用函数都通过偏移量和汇编指令的形式进行了精确记录,便于研究人员进行深入分析。此外,数据集的构建结合了转移学习和对比学习的思想,能够有效提升间接调用识别的准确性。数据集的结构清晰,文件组织合理,便于用户快速定位所需信息。
使用方法
Callee-Dataset的使用方法较为直观。用户可以通过funcs目录下的callee和callsite文件夹获取具体的汇编函数信息,每个文件对应一个二进制程序,文件中的每一行记录了函数偏移量及其对应的汇编指令。此外,icall.release.csv文件提供了间接调用的详细信息,用户可以通过该文件快速获取调用点和被调用函数的对应关系。数据集的使用场景广泛,适用于二进制代码嵌入、代码相似性检测以及混合模糊测试等任务。用户还可以结合转移学习和对比学习的方法,进一步提升间接调用识别的效果。
背景与挑战
背景概述
Callee-Dataset是一个专注于x86_64架构间接调用识别的数据集,由Wenyu Zhu等研究人员于2023年构建。该数据集的核心研究问题在于如何通过深度神经网络(DNNs)自动识别间接调用模式,从而恢复二进制程序的调用图。这一研究问题在二进制代码分析领域具有重要意义,尤其是在跨过程分析任务和基于调用图的应用中。Callee-Dataset的构建基于SPEC CPU 2006和UniBench等基准测试,并利用了ibresolver工具进行数据收集。该数据集的研究成果已在IEEE Symposium on Security and Privacy等顶级会议上发表,显著提升了二进制代码相似性检测和混合模糊测试等应用的性能。
当前挑战
Callee-Dataset面临的挑战主要集中在两个方面。首先,间接调用目标的识别本身具有较高的复杂性,现有解决方案普遍存在较高的误报率和漏报率,导致调用图的不准确性。其次,构建大规模间接调用数据集的计算成本较高,深度神经网络需要大量标注数据才能达到高性能,而间接调用的标注过程耗时且资源密集。为解决这一问题,研究人员采用了迁移学习策略,通过易于收集的直接调用数据预训练模型,再针对间接调用进行微调。尽管这一方法显著提升了模型的性能,但如何进一步降低数据收集成本并提高模型的泛化能力仍是未来研究的关键挑战。
常用场景
经典使用场景
Callee-Dataset在二进制代码分析领域具有重要应用,特别是在间接调用识别方面。该数据集通过提供大量的间接调用样本,帮助研究人员和开发者训练和验证模型,以准确识别二进制程序中的间接调用目标。这一过程对于构建精确的调用图至关重要,而调用图是进行跨过程分析和安全漏洞检测的基础。
实际应用
在实际应用中,Callee-Dataset被广泛用于二进制代码相似性检测和混合模糊测试。通过准确识别间接调用目标,该数据集能够显著提升这些应用的性能。例如,在二进制代码相似性检测中,准确的调用图可以帮助识别恶意软件的变种;在混合模糊测试中,精确的间接调用识别可以提高测试的覆盖率和效率,从而发现更多的安全漏洞。
衍生相关工作
Callee-Dataset的发布催生了一系列相关研究,特别是在二进制代码嵌入和调用图恢复领域。基于该数据集,研究人员提出了kTrans模型,利用知识感知的Transformer进行二进制代码嵌入,进一步提升了二进制代码分析的性能。此外,Callee-Dataset还为其他研究提供了宝贵的数据支持,推动了二进制代码分析技术的发展。
以上内容由遇见数据集搜集并总结生成



