FuzzGen 项目使用教程
FuzzGen项目地址:https://gitcode.com/gh_mirrors/fu/FuzzGen
1. 项目目录结构及介绍
FuzzGen 项目的目录结构如下:
FuzzGen/
├── aux/
│ ├── plot_libfuzzer_coverage.py
│ └── ...
├── consumers/
│ ├── AOSP/
│ └── ...
├── fuzzers/
│ └── ...
├── libopus/
│ ├── consumers/
│ ├── libopus_lto64.ll
│ └── ...
├── libhevc/
│ ├── ext/
│ ├── libhevc_lto64.ll
│ └── ...
├── README.md
├── LICENSE
└── fuzzgen
目录介绍
- aux/: 包含辅助脚本,如用于绘制代码覆盖率的
plot_libfuzzer_coverage.py
。 - consumers/: 包含消费者目录,用于存放库的消费者代码。
- fuzzers/: 生成的模糊测试器将存放在此目录中。
- libopus/ 和 libhevc/: 示例库目录,包含库的消费者代码和库文件。
- README.md: 项目的基本介绍和使用说明。
- LICENSE: 项目的许可证文件,采用 Apache-2.0 许可证。
- fuzzgen: 项目的主程序文件,用于生成模糊测试器。
2. 项目启动文件介绍
FuzzGen 项目的主启动文件是 fuzzgen
,它是一个可执行文件,用于生成模糊测试器。启动文件的使用方式如下:
./fuzzgen [options] <library.ll>
常用选项
-mode=android
: 生成适用于 Android 库的模糊测试器(默认模式)。-mode=debian
: 生成适用于 Debian 库的模糊测试器。-mode=dump_functions
: 仅转储库的所有函数并退出。-mode=dump_api
: 仅转储库的 API 并退出。-v0
到-v3
: 设置不同的详细程度级别,-v0
显示最少信息,-v3
显示最多信息。
3. 项目的配置文件介绍
FuzzGen 项目没有明确的配置文件,但可以通过命令行选项进行配置。主要的配置选项包括:
- 模式选择: 通过
-mode
选项选择生成模糊测试器的模式,如android
或debian
。 - 库路径: 通过
<library.ll>
指定要处理的库文件路径。 - 详细程度: 通过
-v
选项设置输出信息的详细程度。
示例配置
生成适用于 Android 库的模糊测试器:
./fuzzgen -mode=android -analysis=deep -arch=x64 -no-progressive -lib-name=libhevc \
-meta=libhevc.meta -consumer-dir=libhevc/ext -lib-root=consumers/AOSP \
-path=/external/libhevc -outdir=fuzzers/libhevc -static-libs='libhevcdec' \
libhevc/libhevc_lto64.ll
以上命令将生成适用于 Android 库 libhevc
的模糊测试器,并将结果存放在 fuzzers/libhevc
目录中。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考