five

LibAM

收藏
github2024-05-07 更新2024-05-31 收录
下载链接:
https://github.com/Siyuan-Li201/LibAM
下载链接
链接失效反馈
资源简介:
LibAM是一个用于检测二进制文件中第三方库的区域匹配框架的数据集和源代码。

LibAM is a dataset and source code framework designed for detecting region matches of third-party libraries in binary files.
创建时间:
2023-05-04
原始信息汇总

数据集概述

数据集位置

  • 主要数据集: 位于dataset/目录下,包含四个数据集。
  • 自定义数据集: 用户需替换/work/libam/dataset下的dataset2,并确保新数据集结构与dataset2一致。

数据集结构

  • dataset
    • dataset2
      • 1_binary
        • target
        • candidate

数据集使用

  • 准备数据集: 用户需将dataset2dataset3复制到code/libam/data/,并在settings.py中修改DATA_PATH
  • 预处理: 使用IDA Pro提取ACFG和FCG。
  • 特征提取: 运行python 1_preprocess.py进行预处理。
  • 功能嵌入: 运行python 2_embedding.py嵌入函数和FCGs。
  • 函数比较: 运行python 3_func_compare.py,使用Annoy加速向量搜索。
  • TPL检测: 运行python 4_tpl_detection.py,执行Embedded-GNN和Anchor Alignment Algorithm。
  • 区域检测: 运行python 5_area_detection.py,生成重用区域并计算分数。

环境要求

  • Python: 3.8
  • IDA Pro: 6.8 (含Python 2.7包)

结果存储

  • 检测结果: 所有检测结果和中间数据存储在code/libam/data/目录。
  • 最终结果: 位于result/目录,包含论文中的最终检测结果和所有中间数据。

其他

  • 多进程: 默认设置为多进程运行,但可修改为单进程。
  • 依赖文件: requirements.txt位于envs/目录,用于管理Python依赖。
AI搜集汇总
数据集介绍
main_image_url
构建方式
LibAM数据集的构建基于对第三方库在二进制文件中的检测需求,通过收集和整理多个二进制文件及其对应的第三方库信息,形成了一个包含目标文件和候选文件的结构化数据集。该数据集的构建过程涉及对二进制文件的预处理,包括提取ACFG(抽象控制流图)和FCG(函数控制流图),并通过IDA Pro工具进行特征提取。最终,数据集被组织为多个子目录,每个子目录包含目标和候选文件,以便进行后续的检测任务。
特点
LibAM数据集的主要特点在于其结构化的数据组织方式和丰富的特征信息。数据集不仅包含了原始的二进制文件,还提供了预处理后的特征数据,如ACFG和FCG,这些特征数据为后续的函数比较和区域检测提供了坚实的基础。此外,数据集支持大规模分析,通过多进程处理提高了计算效率,同时保留了单进程运行的灵活性,以适应不同的计算环境。
使用方法
使用LibAM数据集可以通过Docker镜像快速启动,用户可以选择复现论文中的实验结果或使用自定义数据集。对于自定义数据集,用户需确保其结构与数据集中的`dataset2`一致,并在`0_prepare_dataset.sh`和`settings.py`中进行相应配置。数据集的使用流程包括预处理二进制文件、嵌入函数和FCG、函数比较、TPL检测任务以及区域检测任务,每个步骤均有对应的Python脚本进行自动化处理。
背景与挑战
背景概述
LibAM数据集由Siyuan-Li201等人创建,旨在解决二进制文件中第三方库检测的核心问题。该数据集基于论文《LibAM: An Area Matching Framework for Detecting Third-party Libraries in Binaries》,于2023年提出,主要研究人员通过构建一个区域匹配框架,推动了二进制分析领域的研究进展。LibAM不仅提供了四个数据集,还包含源代码和实验结果,为研究者提供了复现和进一步研究的工具。该数据集的发布对二进制分析、软件安全等领域具有重要影响,尤其是在第三方库检测方面提供了新的研究视角和方法。
当前挑战
LibAM数据集在构建和应用过程中面临多项挑战。首先,二进制文件的复杂性使得特征提取和匹配变得困难,尤其是在处理未剥离符号的二进制文件时。其次,数据集的多样性和规模要求高效的并行处理能力,尽管单进程处理已足够快速,但大规模分析仍需优化。此外,依赖于IDA Pro和Python 2.7的环境配置增加了使用门槛,可能导致依赖问题。最后,TPL检测和区域检测任务的准确性依赖于嵌入式图神经网络和锚点对齐算法,这些算法的性能和稳定性是关键挑战。
常用场景
经典使用场景
LibAM数据集的经典使用场景主要集中在第三方库检测领域。通过该数据集,研究者能够训练和验证用于检测二进制文件中第三方库的模型。具体而言,LibAM提供了一个全面的框架,能够从二进制文件中提取特征,并通过嵌入和比较函数来识别潜在的第三方库。这一过程不仅适用于学术研究,也适用于实际的软件安全分析,特别是在需要快速识别和定位第三方库的场景中。
衍生相关工作
LibAM数据集的发布催生了一系列相关研究工作。例如,基于LibAM的框架,研究者们开发了更高效的二进制文件特征提取方法,并将其应用于更广泛的二进制分析任务中。此外,LibAM的成功应用也激发了其他研究者对二进制文件中第三方库检测问题的关注,推动了更多基于深度学习和图神经网络的解决方案的提出。这些衍生工作不仅丰富了二进制分析领域的研究内容,还为实际应用提供了更多可能性。
数据集最近研究
最新研究方向
在软件安全与逆向工程领域,LibAM数据集的研究方向主要聚焦于第三方库在二进制文件中的检测与匹配。随着软件供应链安全问题的日益突出,LibAM通过其区域匹配框架为检测第三方库提供了新的技术手段。该数据集的研究不仅推动了二进制代码分析技术的前沿发展,还为大规模软件分析提供了可靠的工具支持。通过结合图神经网络(GNN)和锚点对齐算法,LibAM在第三方库检测任务中展现了卓越的性能,为软件安全领域的研究者提供了宝贵的实验平台。
以上内容由AI搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作