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: 用于代码覆盖率分析的脚本。
- 其他文件: 如补丁、其他特定目标的脚本。
- LightFTP: FTP 协议的一个具体实现。
- scripts: 该目录包含所有运行实验、收集和分析结果的脚本。
- execution: 包含启动容器并运行实验的主脚本。
- profuzzbench_exec_common.sh: 启动容器并运行实验的主脚本。
- analysis: 包含收集和分析结果的脚本。
- profuzzbench_generate_csv.sh: 收集不同运行中的代码覆盖率结果的脚本。
- profuzzbench_plot.py: 用于绘图的示例脚本。
- execution: 包含启动容器并运行实验的主脚本。
- README.md: 项目的说明文档。
2. 项目的启动文件介绍
项目的启动文件主要是 run.sh 和 profuzzbench_exec_common.sh。
run.sh
run.sh 是每个目标服务器特定的启动脚本,用于在容器内运行实验。它通常包含以下步骤:
- 启动目标服务器。
- 运行模糊测试工具。
- 收集实验结果。
profuzzbench_exec_common.sh
profuzzbench_exec_common.sh 是主启动脚本,用于启动容器并运行实验。它通常包含以下步骤:
- 构建 Docker 容器。
- 启动容器并运行
run.sh脚本。 - 收集实验结果。
3. 项目的配置文件介绍
ProFuzzBench 项目没有明确的配置文件,但可以通过环境变量来配置一些参数,例如目标服务器的构建路径等。配置环境变量的示例如下:
export TARGET_FOLDER=/path/to/instrumented/build
环境变量配置
- TARGET_FOLDER: 指定目标服务器的构建路径。
通过设置这些环境变量,可以灵活地配置和运行实验。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



