NEUZZ 项目教程
neuzz neural network assisted fuzzer 项目地址: https://gitcode.com/gh_mirrors/ne/neuzz
1. 项目介绍
NEUZZ 是一个神经网络辅助的模糊测试工具,旨在通过结合神经网络技术来提高模糊测试的效率和覆盖率。该项目由 Dongdongshe 开发,并在 GitHub 上开源。NEUZZ 的核心思想是通过训练神经网络来预测程序的输入,从而生成更有可能触发新路径的测试用例。
2. 项目快速启动
2.1 环境准备
NEUZZ 在以下环境中测试通过:
- Ubuntu 16.04/18.04
- Tensorflow 1.8.0
- Keras 2.2.3
- Python 2.7
- gcc
2.2 安装步骤
-
克隆项目仓库:
git clone https://github.com/Dongdongshe/neuzz.git cd neuzz
-
编译 NEUZZ:
gcc -O3 -funroll-loops ./neuzz.c -o neuzz
-
安装 Python 依赖:
pip install tensorflow==1.8.0 keras==2.2.3
2.3 使用示例
假设我们要对 readelf
程序进行模糊测试:
-
启动神经网络模块:
python nn.py /readelf -a
-
启动 NEUZZ 模块:
./neuzz -i neuzz_in -o seeds -l 7506 /readelf -a
3. 应用案例和最佳实践
3.1 应用案例
NEUZZ 可以应用于各种需要高覆盖率模糊测试的场景,例如:
- 安全测试:发现软件中的漏洞和安全问题。
- 性能测试:通过生成多样化的输入来测试软件的性能边界。
3.2 最佳实践
- 数据收集:在使用 NEUZZ 之前,建议先使用 AFL 对目标程序进行一段时间的模糊测试,以收集初始训练数据。
- 参数调优:根据目标程序的复杂度,调整
mutation_len
参数以获得最佳的模糊测试效果。
4. 典型生态项目
- AFL (American Fuzzy Lop):NEUZZ 的前置工具,用于生成初始的模糊测试数据。
- Tensorflow:用于神经网络的训练和预测。
- Keras:作为 Tensorflow 的高级 API,简化了神经网络的构建和训练过程。
通过结合这些工具,NEUZZ 能够有效地提升模糊测试的效率和覆盖率,为软件安全测试提供强有力的支持。
neuzz neural network assisted fuzzer 项目地址: https://gitcode.com/gh_mirrors/ne/neuzz
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考