american fuzzy lop

✍ dations ◷ 2025-07-21 04:51:26 #american fuzzy lop

american fuzzy lop (AFL) 是一个自由的模糊测试工具,采用遗传算法以有效地提高测试用例的代码覆盖率。目前为止,它帮助检测了数十个主要自由软件项目中的重大程序错误,包括X.Org Server、PHP、OpenSSL、 pngcrush、bash、Firefox、BIND、 Qt 和SQLite。

american fuzzy lop的源代码发布在GitHub上。american fuzzy lop得名于美国垂耳兔(英语:American Fuzzy Lop)。

AFL要求用户提供一个运行测试应用程序的示例命令和至少一个示例输入文件。例如,在对音频播放器进行测试时,可以指示AFL用它打开一个简短的声音文件。然后,模糊测试器尝试实际执行指定的命令,如果成功,它会尝试将输入文件减少到触发相同行为的最小文件。

在初始阶段之后,AFL通过对输入文件进行各种修改来开始实际的模糊测试过程。当被测程序崩溃或假死机时,表明发现了一个新错误,可能是一个安全漏洞。此时修改后的输入文件被保存以供用户进一步检查。

为了最大限度地提高模糊测试性能,建议使用american fuzzy lop进行灰盒测试,即在一个实用程序的帮助下编译被测程序源代码,该实用程序在编译被测程序时插入跟踪控制流的辅助函数(即“插桩”)来instrument(英语:Instrumentation_(computer_programming))代码。这允许模糊测试器检测目标的行为何时响应输入而改变。在灰盒测试不可能的情况下,也支持黑盒测试。

american fuzzy lop的模糊测试引擎使用几个算法尽可能触发被测程序的异常行为,如位翻转或将输入的整数数据修改为可能引发异常的边界值。 除此之外,AFL可以根据示例关键字生成测试用例,这有助于对使用基于文本语法的程序进行模糊测试,例如 SQLite。 生成的测试用例执行程序代码的不同部分,AFL记录会引起异常的输入数据,之后可以将这些数据输入到更专业的诊断程序进行进一步分析。进行模糊测试时,假死机可以通过设定的定时器超时来检测,而崩溃通过结束程序时的信号处理程序检测。

使用AFL进行模糊测试时,输入的测试用例可以通过标准输入或作为进程命令行中指定的输入文件提供给测试程序。目前不支持对通过网络接受输入数据的网络应用程序进行模糊测试,但在某些情况下有可行的解决方案。

american fuzzy lop面临的一大挑战是每秒对几百个进程的spawn(英语:spawn (computing))。除了从头开始spawn每个进程的原始引擎,american fuzzy lop提供高度依赖fork系统调用的默认引擎。 可以通过利用LLVM延迟分叉服务器模式或类似的持久模式进一步加快速度,但这是以必须修改测试程序为代价的。 另外,american fuzzy lop支持通过网络对同一个程序进行模糊测试。

american fuzzy lop拥有彩色的命令行界面,实时显示模糊测试过程和统计信息,可以通过命令行界面或者环境变量修改配置,也可以从机器可读文件格式中读取运行时统计信息。

除了提供afl-fuzz用于模糊测试,american Fuzzy lop还包含用于监控模糊测试过程的实用程序。除此之外,afl-cminafl-tmin可以用于最小化测试用例和语料库,当其他模糊测试器也需要使用afl-fuzz生成的测试用例时尤其实用。

由于Google2017年9月以后对AFL的上游开发相对停滞,故诞生了一个社区维护的AFL分叉AFL++ (AFLplusplus) 。它包含了一些新特性和性能提升。

Google推出的为开源软件提供免费模糊测试服务的OSS-Fuzz计划,也于2021年1月将AFL选项替换为了AFL++。

相关

  • 糸部,为汉字索引中的部首之一,康熙字典214个部首中的第一百二十个(六划的则为第三个)。俗称绞丝旁、绞丝底、绕丝边等。就繁体和简体中文中,糸部归于六划部首。糸部通常从左、下
  • Sanding砂纸是附着有研磨颗粒的纸。它用于平整物品的表面,或去除物品表面的附着物(如旧油漆),有时也用于增加摩擦力。砂纸根据不同的粗糙程度而分成不同的号码,以配合不同用途。最早关于
  • 三甘醇三甘醇,结构式HO(CH2CH2O)2CH2CH2OH。无色几乎无臭吸湿性粘稠液体,可燃。与水和乙醇混溶,微溶于乙醚,几乎不溶于石油醚。毒性极低,未见中毒病例。三甘醇是通过环氧乙烷水合制取乙
  • 丁香树约20种丁香属(学名:Syringa),又称紫丁香属,该属多种植物的统称为丁香,别名“百结”、“情客”、“紫丁香”,生长于温带及寒带,落叶灌木或小乔木,圆球形树冠。单叶对生,卵圆形,圆锥花序,
  • 铊的同位素铊(原子量:204.3833(2))的同位素,其中有2个是稳定的。备注:画上#号的数据代表没有经过实验的证明,只是理论推测而已,而用括号括起来的代表数据不确定性。
  • 史蒂芬·柯维史蒂芬·理查兹·柯维(;1932年10月24日-2012年7月16日),是美国著名的管理学大师,著有《与成功有约》()及其他畅销书籍。因应21世纪的转变,他在2004年写了前书的续篇:《第八种习惯》();到2
  • 艾西·达扬艾西·达扬(Asaf "Assi" Dayan,1945年11月23日-2014年5月1日),是一名以色列电影导演、演员、剧作家、电影制片人。2008年,他表演了超过50部电影和电视剧。2014年5月1日,他死于特拉
  • 2013–14赛季英格兰超级联赛2013–14赛季英格兰足球超级联赛是自1992年英超联赛设立以来的第22届联赛,在2013年8月17日开始,正式赛期于2013年6月19日公布。总共有20支球队参赛,其中17队是来自于2012–13赛季英超联赛。卫冕冠军为曼联。由2012年至2013年英格兰足球冠军联赛升级降级往2013年至2014年英格兰足球冠军联赛2013至14年赛季共有20支队伍参加,本季升级至英超联赛之球队有英冠联赛冠军加迪夫城,亚军赫尔城及英冠升级附加赛冠军水晶宫备注:国旗按国际足联代表资格条例下的所属参赛国家队,球员可能拥有
  • 钜子墨家系列条目战国:墨子、禽滑釐、耕柱子、胡非子孟胜、田让、腹䵍《墨子》、《墨辩》钜子是墨家门徒(墨者)中对领导人的称呼,有时写作“巨子”。在《孟子》中可考证的有孟胜、田襄子、腹䵍等人,现在多指富裕或者地位显赫的人物。一般认为墨子虽然是墨家第一代领袖,但并没有担任过钜子。但是一开始,墨子就能使役大量的门徒赴汤蹈火,至死也不转脚跟后退。“墨子服役者百八十人,皆可使赴火蹈刃,死不还踵”。从墨子的时代开始,所有的墨者就对领导者惟命是从,而后由钜子领导,也是一样。墨者中从事谈辩者,称“墨辩”;从事侠客者,称“墨侠”
  • 修罗托修罗托(Xolotl)是阿兹特克的火神、雷神。代表双子、怪物、奇形等,引导亡者之魂前往冥界,也和球戏有关。修罗托的典型形象是狗头的男性、骸骨或畸形的野兽。