构建简单模糊器第 1 部分

主要观点:在被封锁在家的情况下,写一个简单的模糊测试器是不错的选择,虽不是用于实际目标,但有助于理解。同时指出要借鉴他人文章并加以改进,且强调学习过程中要选择合适目标和语言。
关键信息

  • 介绍了模糊测试的基本原理,即向程序输入随机数据看是否崩溃并不断改变数据。
  • 详细说明了模糊器的主要部分,包括变异引擎和执行引擎。变异引擎通过多种方式修改数据,执行引擎使用ptrace运行目标程序并监测崩溃。
  • 提及已运行模糊器得到 7810 次崩溃,后续将改进以更好确定崩溃的唯一性和实现基本的代码覆盖测量。
    重要细节
  • 选择用 Python 编写模糊器是因为学习目的,且选择exif库作为目标,因其多年前编写可能易崩溃。
  • 变异引擎中通过FLIP_RATIO确定修改字节的数量和位置,有位翻转和魔法值两种修改方式。
  • 执行引擎使用ptrace监控SIGSEGV信号来检测崩溃,将导致崩溃的文件保存。
  • 后续将在代码覆盖等方面进行改进,目前模糊器主要靠运气。
  • 代码可在这里获取,系列下一部分在这里
阅读 19
0 条评论