如何使用LibAFL进行模糊测试 – 作者:Alpha_h4ck

图片[1]-如何使用LibAFL进行模糊测试 – 作者:Alpha_h4ck-安全小百科

关于LibAFL

LibAFL是一款高级模糊测试工具,该工具基于Rust开发,并且扩展性和适用性都很强,可以针对Windows、Android、Linux和macOS等系统平台使用。

目前,LibAFL项目由Andrea Fioraldi和Dominik Maier负责开发和维护。

LibAFL是一款现成可直接使用的模糊测试工具,该工具支持研究人员进行完全定制化的开发,其中包括以下几个突出功能:

运行速度快:我们在编译时尽我们所能,保持运行时开销最小。在frida模式下,手机运行速度可以达到120k次用例执行/秒(使用所有核心)。

可扩展性强:支持LibAFL线性扩展,并通过TCP扩展到多台设备。

适用性强:你可以随意替换LibAFL的各个模块。比如说,BytesInput只是一个可用的表单输入模块,我们还可以随意添加一个基于AST的输入来进行结构化模糊测试等等。

跨平台使用:LibAFL支持在Windows、macOS、Linux和Android等平台上使用(x86_64和Arch64),LibAFL还可以内置no_std对嵌入式设备和虚拟机监控程序进行模糊测试。

工具使用

首先,我们需要在本地设备上安装好Rust语言开发环境。我们强烈建议不要使用Linux发行版包,因为已经过期了。我们建议大家直接安装Rust【文档】。

接下来,使用下列命令将该项目源码克隆至本地:

git clone https://github.com/AFLplusplus/LibAFL

如果你想要获取最新版并体验尝鲜功能的话,可以运行下列命令:

git checkout dev

然后使用下列命令构建代码库:

cargo build --release

完成后,需要使用下列命令构建API文档:

cargo doc

现在,我们就可以使用下列命令查看LibAFL的参考手册了(需要mdbook):

cd docs && mdbook serve

我们在项目的./fuzzers目录下提供了大量模糊测试样例,请确保在使用前详细阅读参考文档。

目前功能最完成的模糊测试器为./fuzzers/libfuzzer_libpng,它是一个多核心类libfuzzer的模糊测试器。

项目地址

LibAFL:【GitHub传送门

参考资料

https://github.com/AFLplusplus/LibAFL/blob/main/docs/src/getting_started/setup.md

https://docs.rs/libafl/

https://github.com/rust-lang/mdBook

来源:freebuf.com 2021-05-07 21:33:03 by: Alpha_h4ck

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论