首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一些值得学习的Fuzzer开源项目

AFL——支持源码插桩的代码覆盖引导的Fuzzer,绝对是fuzzer领域的一大里程碑,虽然它也支持基于QEMU的闭源程序,但效果不好,且容易出错,由它衍生出来非常多afl分支版本,借助它已经被挖出非常多的漏洞...http://lcamtuf.coredump.cx/afl/ WinAFL——windows版本的afl,使用DynamoRIO去插桩闭源程序以获取代码覆盖率信息,同时支持硬件PT获取覆盖率信息,但PT...获取覆盖率其实并没有插桩获取得全,但速度可能快一些。.../tigerpuma/Afl_unicorn pe-afl——通过静态插桩实现针对Windows闭源程序的覆盖引导的AFL Fuzzer,支持用户层应用和内核驱动 https://github.com/...wmliang/pe-afl kAFL——支持QEMU虚拟机下的系统内核Fuzzing的AFL,适用于Linux、macOS与Windows https://github.com/RUB-SysSec/

2.8K30
您找到你想要的搜索结果了吗?
是的
没有找到

AFL 玩超级玛丽:通过Fuzzing探索程序空间状态以发现更多执行路径

论文主要贡献 分析当前主流Fuzzer的反馈机制,并实现如何用它们表示状态空间; 扩展当前主流的覆盖反馈Fuzzer的能力,允许分析人员通过程序状态空间解决当前业界方法无法解决的路径约束问题; 展示了可信平台模块...主要设计原理 作者设计了一套源码注释原语,其实就是给源码加个一两行补丁代码,用来干预Fuzzer的反馈功能。...AFL用于存储覆盖信息的位图(其实是个哈希表),直接添加和设置条目上去,将状态值直接反馈给Fuzzer。...对于状态空间爆炸的问题,也提供"爬山算法”(hill-climbing)作出优化选择。...下图是超级玛丽打喷火怪兽那关,线条是Fuzzer发现的所有执行路径,对比还是比较明显的,AFL暴力探测的密集度比较明显,更关键还是没通关,至少从作者统计图上看是如此的。 ?

1K30

从研究者的视角看Fuzzing技术发展30年

在funfuzz之后,业界也出现了好多款优秀的JS语法Fuzzing工具,比如grinder、nduja、crossfuzz等等。...随后,基于afl二次开发的fuzzer如雨后春笋般涌现出来,比如winafl、libfuzzer、AFLFast、Vuzzer等等,而且针对各种语言的版本出相继出现,比如go、python、js、ruby...一些已知名的Fuzzer也迅速跟进,比如syzkaller内核Fuzzer,它原本是基于API调用模板的,后来也引入了代码覆盖引导能力。...无论是工业界大会(BlackHat、OffensiveCon、CCC等等),还是学术界四大顶,关于Fuzzing的议题也越来越多,相信这种趋势持续下去。...OSS-Fuzz和clusterfuzz分别在2016年和2019年开源对外,业界同行可以协同开发,对于提交fuzzer后挖到新漏洞的,Google美刀奖励提交者,对于主流开源项目的0Day,Google

2.2K40

漫谈漏洞挖掘

AFL 自从 2013 年 AFL 提出以来,各类 Fuzzer 百花齐放,在学术上有了爆发性的论文增长;开源社区有 honggfuzz、libFuzzer 等优秀的项目;在工程上有 OSS-Fuzz...因此,一部分人就从通用 Fuzzer 转回到了针对特定目标变异的 Fuzzer(即 Structure Aware Fuzzer)。...别忘了,AFL 这种通用 Fuzzer出现,就是为了实现一次编码,到处 Fuzz 的目的;而针对不同目标去写 Fuzzer,显然有违初衷。...在阅读代码和理解代码逻辑的过程中,目标程序的潜在问题很可能已经出现在你眼前了,再去编写一个不能复用的 Fuzzer,显得有些多此一举。这种发现漏洞的方法也就是下节所说的——代码审计。...既然大家都长了两只眼睛,为什么有的人就能一个月看出十几个高危,有的人就只看了个寂寞? 看代码也是有方法的。

40820

关于Fuzzing模糊测试入门原理及实践的讨论

定义Definition: 我们在设计程序时,除了考虑到程序功能之外,是否会出现其他程序员无法考虑到的情况?比如安全上的问题。...具体来讲我们是对QEMU中的IO设备进行Fuzz [在这里插入图片描述] QEMU Device Fuzzer QTest是QEMU的重置框架。...在fork(2)之前,我们计算输入的总重量,以决定是否值得fork或只是返回fuzzer。...Fuzzing的未来发展: 现在最大的问题是,Fuzzing找到了许多漏洞,目前像Google等公司具有较完整的Fuzzing流程,它们虽然能够发现自己产品的漏洞,但是没有开发者会去理会,过几天,一个白帽子提交申请会说我们找到了一个漏洞...,按照管理应该给他发证书奖品,如果每一个程序都被发现,那么SRC平台和公司的开销变得比较大。

3K60

【Custom Mutator Fuzz】libprotobuf-mutator安装

大家好,又见面了,我是你们的朋友全栈君 前言 在之前的文章中,主要使用AFLAFL++和libfuzzer此类fuzzer进行模糊测试实验,但此类fuzzer更多的时字符变异,例如将输入数据按字节增...此类变异方式可以有效的将数据变异成意想不到的字符,但同时也会有一定的弊端,比如被测试程序要求输入数据格式、要求输入数据顺序,即结构化输入的时候依靠字节的变异可能破坏输入数据整体的结构。...这个时候就需要使用libprotobuf与fuzzer结合共同使用,其中最典型的就是libprotobuf-mutator,它可以与引导式模糊测试引擎一起使用 编写不易,如果能够帮助到你,希望能够点赞收藏加关注哦

41130

Smart Greybox Fuzzing:功能更强效率更高

前言 近期,有一群研究人员设计出了一种智能灰盒模糊测试模型,他们声称这种Fuzzer模型在搜寻代码库(解析复杂文件)漏洞方面跟现有Fuzzer相比,新模型的漏洞挖掘效率更高。 ?...这群研究专家基于American Fuzzy Lop(AFL,一款由安全专家MichalZalewski开发的模糊测试工具)开发出了一款名叫AFLsmart的工具,而这款工具采用了一种他们称之为智能灰盒模糊测试...研究人员使用AFLsmart对这些代码库进行了测试,并与AFL、AFLfast和Peach Fuzzer等模糊测试工具的结果进行了对比。...AFLsmart发现了33个漏洞,是AFL和AFLfast挖到漏洞数量的一倍,而Peach一个漏洞都没找到。 ?...项目地址 目前,研究人员已经将AFLsmart Fuzzer开源了,感兴趣的同学可以fork一下。

84430

honggfuzz漏洞挖掘技术深究系列(1)——反馈驱动(Feedback-Driven)

目前业界中基于代码覆盖率的最著名的三大Fuzzer,当属Google开发的AFL、libfuzzer和honggfuzz,且他们都是开源的,在github上都可以搜索到。...前面基本块的方式就无法确切地知道是否曾从A执行到C,尤其是该段代码被多次执行的情况,就更无法知道,这时edge覆盖方式就出现了。...1、首先,honggfuzz先去分析.sancov.raw文件,保存命中的基本块地址,记录BB数,以及总共的BB数: ?...03 — 总结 honggfuzz最早创建于2015年,跟AFL的发布时间差不多,AFL出现可以说在安全界是项里程碑标志,给漏洞挖掘技术带来新的技术革命,网上对其源码分析的文章也到处可见,但对honggfuzz...后来自己也在Windows和macOS平台上扩展了许多新功能,在本系列文章中,后面可能单篇聊一聊,也感谢作者robertswiecki开发出这么好用的fuzzer,让我借此刷了不少CVE。

1.3K40

学术报告|基于类型状态导向的Use-after-Free漏洞模糊测试技术

类似的,要触发DF漏洞,需要出现空指针解引用,也要经过[nullify->dereference]这样的操作序列。...作者用这个例子,模拟了AFL在边覆盖率引导下的种子变异流程。假设初始种子是“aaaaaaa”,AFL产生三个变异,分别是:“aaaseen”、“aurseaa”和“faraeaa”(图(b)所示)。...不过随着程序规模的增长,类型状态分析也可能产生较大的时间开销。在Fuzzing循环期间,UAFL首先从测试池中选择一个种子,测量该种子的质量,并使用Power Schedule策略为其分配能量。...生成新种子后,UAFL检查其对操作序列是否产生新的覆盖。如果满足,新的种子被认为是interesting的,并加入到测试池中进行下一步变异。...经过24小时8次实验,得到的结果是:UAFL在发现Use-after-Free漏洞所需的时间,均优于上述这些State-of-the-Art的fuzzer

59610

面试官:了解Fuzzing Test吗?

如果这些字段没有以足够有效的形式出现让程序识别,它可能永远不会读取这个名字。如果这些字段以有效的形式存在,但长度值被设置为不正确的值,程序可能读到包含名字的缓冲区之外,并引发崩溃。...再者,如果你正在测试一个将文本的图像解析为真实文本的OCR程序,但你正在突变整个图像文件,你最终可能更频繁地测试其图像解析代码而不是实际的OCR代码。...然而,附加一个调试器大大降低程序的速度,并会造成相当大的开销。在给定的时间内,你能产生的测试用例越少,你发现崩溃的机会就越少。...这可以简化你的分析,并有助于对崩溃的测试用例进行分类,因为你准确知道输入的哪些部分受到影响。 代码覆盖率 这是一个衡量程序的代码有多少被Fuzzer执行的标准。...AFL AFL是一个灰盒式的模糊测试工具,利用编译在目标代码中的仪器。AFL最初是为Linux中的C和C++程序编写的,后来被分叉以支持Windows、Java和.Net。

70610

谷歌大脑开源TensorFuzz,自动Debug神经网络!

最常用的两种coverage-guided模糊测试器是AFL和libFuzzer。这些模糊测试器已经以各种方式被扩展,以使它们更快、或增加代码中特定部分可以被定位的范围。...CGF在识别传统软件中的缺陷方面非常成功,因此我们很自然地问,CGF是否可以应用于神经网络? 传统的覆盖率度量标准要跟踪哪些代码行已经执行。...在几个不同的输入上运行的神经网络通常会执行相同的代码行,并使用相同的分支,但是由于输入和输出值的变化,产生一些有趣的行为变化。因此,使用现有的CGF工具(如AFL)可能不会发现神经网络的这些行为。...我们故意用了一个很糟糕的交叉熵损失,这样就有可能出现数值误差。我们对模型进行了35000步的训练, mini-batch size为100,验证精度为98%。...左:fuzzer运行时的累计语料库大小,运行10次。右:fuzzer找到一个满意的图像。

48530

对微软开源的模糊测试平台OneFuzz的看法

上周微软开源了一款叫OneFuzz的模糊测试平台,主要是由开发团队驱动的可持续模糊测试平台,通过开发与集成项目对应的Fuzzer工具,在CI构建中持续Fuzz,自动化分析跟踪崩溃,告警通知、远程调试与漏洞重现等功能...对于崩溃自动去重和分析,开发还可直接利用自带命令远程调试: ?...Fuzz的功能是相对比较完整的,与此前CIFuzz思路类似; 对Microsoft自身产品(Azure、Teams)依赖过重,且都是收费产品,对于其它企业有时比较难照搬使用,想要实现适合自己研发环境的CI Fuzzer...只能自己动手,思路上可以借鉴下; Google的ClusterFuzz要比OneFuzz功能更加强大; 平台默认采用AFL、libfuzzer、honggfuzz、radamas工具进行Fuzz,皆为主流的有效工具...,能否挖到漏洞取决于你的目标(包括基于libfuzzer写的目标程序)和样本,跟OneFuzz平台无关; OneFuzz对输入样本的处理功能支持较少,fuzzer也很少,估计后续可能会集成ossfuzz

1.1K10

精读:REDQUEEN: Fuzzing with Input-to-State Correspondence

- About 01 – Why 02 – What 03 – How Magic bytes Checksum 04 – Implementation details kAFL Fuzzer...02 – What 本文提出了一种新的基于 tracing 的方法,该方法基于一种假设:在运行时,部分 input 直接传入到 memory(内存)或 registers(寄存器)中进行比较,于是在...以上步骤的部分演变过程如下图所示: Checksum 另一个 fuzzer 面对的挑战就是如何处理 checksum。本文也举了一个例子。...(值取决于输入字节的多少) 这样的规则并不完善,删除的指令可以是相关的边界检查,这可能带来一些 false positive,但 REDQUEEN 在将一个新输入加入队列时,删除所有相关的 patch...04 – Implementation details kAFL Fuzzer KAFL 是一个与操作系统无关的、受 afl 启发的反馈驱动内核 fuzzer,本文基于 KAFL 来实现 REDQUEEN

95720
领券