Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
LibAFL — 高级模糊测试库 - 用Rust将你的模糊测试器组装在一起!跨核心和机器扩展。支持Windows、Android、MacOS、Linux、no_std等平台。 | Kitploit
工具/GitHubGitHub/aflplusplus/libafl
渗透测试框架动态分析 (沙盒)漏洞利用框架漏洞分析模糊测试二进制分析论文与研究学习与教育
GitHubaflplusplus/libafl

LibAFL

高级模糊测试库 - 用Rust将你的模糊测试器组装在一起!跨核心和机器扩展。支持Windows、Android、MacOS、Linux、no_std等平台。

查看仓库
2.6k47813天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

LibAFL,模糊测试库

LibAFL 标志

高级模糊测试库 - 使用 Rust 将你自己的模糊测试器组合起来并扩展其功能。

LibAFL 是一个用 Rust 编写的可复用模糊测试器组件集合,它为你提供了现成模糊测试器的许多优势,同时又完全可定制。目前一些突出的功能包括:

  • fast:我们在编译时尽一切可能,保持运行时开销最小。用户在手机上的 frida 模式下达到每秒 12 万次执行(使用所有核心)。
  • scalable:低级消息传递(简称 LLMP)使 LibAFL 能够在核心之间几乎线性扩展,并通过 TCP 扩展到多台机器。
  • adaptable:你可以替换 LibAFL 的每个部分。例如,BytesInput 只是潜在输入形式之一:欢迎添加基于 AST 的输入用于结构化模糊测试,等等。
  • multi platform:LibAFL 运行在 Windows、macOS、iOS、Linux 和 Android 等平台上。LibAFL 可以在 no_std 模式下构建,以便将 LibAFL 注入到嵌入式设备和虚拟机监控程序等不常见的目标中。
  • bring your own target:我们支持纯二进制模式,如 Frida-Mode,以及多种基于源码的插桩编译通道。当然,添加自定义插桩后端也很简单。

核心概念

LibAFL 快速、多平台、兼容 no_std,并且能在核心和机器之间扩展。它提供了一个主要 crate,用于构建自定义模糊测试器的构建块 libafl,一个包含可用于目标插桩的公共代码的库 libafl_targets,以及一个提供封装编译器功能的库 libafl_cc。它集成了流行的插桩框架。目前支持的後端有:

  • SanitizerCoverage,在 libafl_targets 中
  • Frida,在 libafl_frida 中
  • QEMU 用户模式和系统模式,包括用于仿真的钩子,在 libafl_qemu 中
  • TinyInst,在 libafl_tinyinst 中,由 elbiazo 提供

构建和安装

安装依赖项

  • Rust 开发语言
    • 我们强烈建议不要使用例如 Linux 发行版包,因为可能过时。因此,直接安装 Rust,说明可以在 这里 找到。

    • 定义最低支持的 Rust 版本。您始终可以在 LibAFL 的 Cargo.toml 中检查当前要求的版本:

      如果您的已安装 Rust 版本早于 Cargo.toml 中列出的版本,请更新到最新的稳定工具链:

      root@kitploit:~
      rustup update stable
      
  • LLVM 工具
    • 需要 LLVM 工具(包括 clang、clang++)(版本高于 LLVM 15.0.0,不超过 LLVM 18.1.3)。如果您使用 Debian/Ubuntu,我们强烈建议您从 这里 安装包
  • Just:
    • 我们使用 just 来构建 fuzzers/ 目录中的模糊测试器。您可以在 Just 程序员手册 中找到在您的环境中安装它的说明。

使用以下命令克隆 LibAFL 仓库

root@kitploit:~
git clone https://github.com/AFLplusplus/LibAFL

使用以下命令构建库

root@kitploit:~
cargo build --release

使用以下命令构建 API 文档

root@kitploit:~
cargo doc

使用以下命令浏览 LibAFL 手册(WIP!)(需要 mdbook)

root@kitploit:~
cd docs && mdbook serve

入门指南

我们在 ./fuzzers 中收集了所有示例模糊测试器。 务必阅读它们的文档(和源代码),这是自然的入门方式!

root@kitploit:~
just run

只要模糊测试器目录包含 Justfile 文件,您就可以使用以下命令运行每个示例模糊测试器。经过最佳测试的模糊测试器是 ./fuzzers/inprocess/libfuzzer_libpng,它是一个针对 libpng 桩的多核类似 libfuzzer 的模糊测试器,使用 LibAFL。

参考资料

  • 安装指南
  • 在线 API 文档
  • LibAFL 手册(WIP)在线版 或 仓库 中
  • 我们的研究 论文
  • 我们的 RC3 演讲 解释核心概念
  • 我们的 Fuzzcon Europe 演讲,其中包含(有点过时但并非完全过时的)关于如何构建一些示例模糊测试器的逐步讨论
  • Fuzzing101 的 解决方案 和 博客系列,由 epi 撰写
  • 关于纯二进制模糊测试库 libaf_qemu 的博客文章,Hacking TMNF - 模糊测试游戏服务器,由 RickdeJager 撰写
  • LibAFL 入门工作坊,由 Jordan Whitehead 举办

贡献者

LibAFL 由以下人员编写和维护

  • Andrea Fioraldi [email protected]
  • Dominik Maier [email protected]
  • s1341 [email protected]
  • Dongjia Zhang [email protected]
  • Addison Crump [email protected]
  • Romain Malmain [email protected]

贡献

请查看 CONTRIBUTING.md 了解贡献指南。

调试

您的模糊测试器不如预期工作?请尝试阅读 DEBUGGING.md 了解如何调试您的问题。

引用

如果您在学术工作中使用 LibAFL,请引用以下论文:

root@kitploit:~
@inproceedings{libafl,
 author       = {Andrea Fioraldi and Dominik Maier and Dongjia Zhang and Davide Balzarotti},
 title        = {{LibAFL: A Framework to Build Modular and Reusable Fuzzers}},
 booktitle    = {Proceedings of the 29th ACM conference on Computer and communications security (CCS)},
 series       = {CCS '22},
 year         = {2022},
 month        = {November},
 location     = {Los Angeles, U.S.A.},
 publisher    = {ACM},
}

许可证

根据您的选择,在 Apache 许可证 2.0 版 或 MIT 许可证 下许可。
除非您明确声明,否则根据 Apache-2.0 许可证的定义,您有意提交以包含在此 crate 中的任何贡献,应按上述方式双重许可,不附加任何额外条款或条件。
下载工具