主要观点:Fuzz 测试是自动发现软件漏洞的技术,但设置困难,Nix 可消除大部分繁琐工作,能通过单命令启动模糊测试工作流。
关键信息:
- 介绍了 Nix 配置用于模糊测试 PDF 渲染器,找到未修补漏洞,如使用
nix run gitlab:mtlynch/fuzz-xpdf
命令。 - 解释了 Fuzz 测试的概念,通过随机生成输入数据测试软件是否崩溃。
- 说明了 Nix 是类似包管理器和构建工具的复杂工具,可简化从源代码构建的过程。
- 详细阐述了创建模糊测试工作流的步骤,包括选择模糊测试目标(xpdf)、放置 Nix 样板文件、指定源 tarball、从源代码编译 xpdf 以及使用 honggfuzz 进行编译等。
- 还提到在开发壳中进行临时模糊测试,以及后续将展示如何自动化完整的模糊测试工作流等内容。
重要细节: - Nix 可下载所有工具和依赖项,编译带有适当仪器的 PDF 阅读器,生成测试输入并报告崩溃情况,只需编辑一个文件即可更改模糊测试选项。
- xpdf 中的
pdftotext
是有吸引力的模糊测试目标,因其简单且能锻炼复杂的 PDF 解析代码。 - 在 Nix 中通过
flake.nix
定义包和应用,解决哈希不匹配问题,指定构建依赖项等。 - honggfuzz 是 Google 维护的模糊测试工具,通过环境变量指定编译器等。
- 在开发壳中进行模糊测试时,创建临时目录存储结果,下载示例 PDF 并启动测试运行器等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。