freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

如何使用LibAFL进行模糊测试
2021-05-07 21:33:03

关于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客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录