ProFuzzBench 项目使用教程

ProFuzzBench 项目使用教程

1. 项目的目录结构及介绍

ProFuzzBench 项目的目录结构如下:

protocol-fuzzing-benchmark
├── subjects: 包含所有协议及其目标服务器
│   └── RTSP
│   └── FTP
│       └── LightFTP
│           └── Dockerfile: 特定目标的 Dockerfile
│           └── run.sh: 在容器内运行实验的主脚本
│           └── cov_script.sh: 用于代码覆盖率分析的脚本
│           └── 其他文件(如补丁、其他特定目标的脚本)
├── scripts: 包含所有运行实验、收集和分析结果的脚本
│   └── execution
│       └── profuzzbench_exec_common.sh: 启动容器并运行实验的主脚本
│   └── analysis
│       └── profuzzbench_generate_csv.sh: 收集不同运行中的代码覆盖率结果的脚本
│       └── profuzzbench_plot.py: 用于绘图的示例脚本
└── README.md

目录结构介绍

  • subjects: 该目录包含所有协议及其目标服务器。每个协议可能包含多个目标服务器。
    • RTSP: 实时流协议的目标服务器。
    • FTP: 文件传输协议的目标服务器。
      • LightFTP: FTP 协议的一个具体实现。
        • Dockerfile: 特定目标的 Dockerfile,用于构建容器。
        • run.sh: 在容器内运行实验的主脚本。
        • cov_script.sh: 用于代码覆盖率分析的脚本。
        • 其他文件: 如补丁、其他特定目标的脚本。
  • scripts: 该目录包含所有运行实验、收集和分析结果的脚本。
    • execution: 包含启动容器并运行实验的主脚本。
      • profuzzbench_exec_common.sh: 启动容器并运行实验的主脚本。
    • analysis: 包含收集和分析结果的脚本。
      • profuzzbench_generate_csv.sh: 收集不同运行中的代码覆盖率结果的脚本。
      • profuzzbench_plot.py: 用于绘图的示例脚本。
  • README.md: 项目的说明文档。

2. 项目的启动文件介绍

项目的启动文件主要是 run.shprofuzzbench_exec_common.sh

run.sh

run.sh 是每个目标服务器特定的启动脚本,用于在容器内运行实验。它通常包含以下步骤:

  1. 启动目标服务器。
  2. 运行模糊测试工具。
  3. 收集实验结果。

profuzzbench_exec_common.sh

profuzzbench_exec_common.sh 是主启动脚本,用于启动容器并运行实验。它通常包含以下步骤:

  1. 构建 Docker 容器。
  2. 启动容器并运行 run.sh 脚本。
  3. 收集实验结果。

3. 项目的配置文件介绍

ProFuzzBench 项目没有明确的配置文件,但可以通过环境变量来配置一些参数,例如目标服务器的构建路径等。配置环境变量的示例如下:

export TARGET_FOLDER=/path/to/instrumented/build

环境变量配置

  • TARGET_FOLDER: 指定目标服务器的构建路径。

通过设置这些环境变量,可以灵活地配置和运行实验。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值