libfuzzer-workshop:C/C++项目现代模糊测试学习材料

Repository for materials of "Modern fuzzing of C/C++ Projects" workshop.

分支1Tags0
当前项目代码仓暂无内容

libfuzzer-workshop

"现代C/C++项目模糊测试"研讨会材料。

该研讨会的初始版本曾在ZeroNights'16安全会议上展示。

免责声明

本研讨会最初开发于2016年。截至今日(2021年及以后),由于libFuzzer多年来的发展,实践部分可能无法立即正常工作。理论部分仍然是很好的学习资料,但为了实际操作,建议按照最新版的libFuzzer教程进行。

要求

  • 2-3小时时间
  • 基于Linux的操作系统
  • C/C++基础(无需精通,但需要能够阅读、编写和编译C/C++代码)
  • 最新版的clang编译器。通过包管理器获取的发行版可能过于老旧,可能无法正常工作(毕竟这是一个“现代”研讨会)。你可以:
  • sudo apt-get install -y make autoconf automake libtool pkg-config zlib1g-dev

模糊测试经验不是必需的。

内容

  1. 模糊测试简介
  2. 传统模糊测试示例
  3. 覆盖指导的模糊测试
  4. 编写模糊器(简单示例)
  5. 发现Heartbleed漏洞(CVE-2014-0160)
  6. 发现c-ares $100,000漏洞(CVE-2016-5180)
  7. 如何改进你的模糊器
  8. 对libxml2模糊测试,了解如何优化模糊器和分析性能
  9. 对libpng模糊测试,学习种子库的重要性和其他知识点
  10. 对re2模糊测试
  11. 对pcre2模糊测试
  12. 铠甲集成与作业任务

大部分示例取自libFuzzer教程Fuzzer Test Suite

预备知识

libFuzzer

构建libFuzzer极其简单:

cd libFuzzer
./build.sh

libFuzzer代码位于LLVM的compiler-rt项目内部。

链接

项目介绍

"现代C/C++项目模糊测试研讨会资料仓库"【此简介由AI生成】

定制我的领域
501.31 K293访问 GitHub