您现在的位置是:首页 > 编程 > 

AFL fuzz性能提升tips

2025-07-26 15:35:42
AFL fuzz性能提升tips 在其他条件相同的情况,fuzz性能的提升往往对于fuzz有事半功倍的效果,下面主要来源于afl文档的翻译1、test cases保持小一点大的测试用例需要更多时间与内存去解析,在模糊测试的其他步骤效率也会降低假如你收集的样本很多很大,可以使用afl-cmin去减少数量,再用afl-tmin去减少每个样本的大小最好不要超过1M,比如afl作者提供的testcases

AFL fuzz性能提升tips

在其他条件相同的情况,fuzz性能的提升往往对于fuzz有事半功倍的效果,下面主要来源于afl文档的翻译

1、test cases保持小一点

大的测试用例需要更多时间与内存去解析,在模糊测试的其他步骤效率也会降低

假如你收集的样本很多很大,可以使用afl-cmin去减少数量,再用afl-tmin去减少每个样本的大小

最好不要超过1M,比如afl作者提供的testcases都是很小的,图片基本是10K以下的

.tgz

2、使用更简单的目标

就是目标二进制尽量简单,毕竟执行的代码也少了

、使用llvm插桩

默认的llvm插桩可以获得两倍的性能提升了

llvm模式下还有一个persistent模式,类似于in-process fuzzing mode,libfuzzer就是这种,性能就可以5-10倍了,不过也得看情况,有时可能只是2倍。而deferred fork server模式对于启动开销大的程序性能提升明显,这两种模式都需要编辑源码,但基本就是几行代码的事情。

4、分析优化目标二进制文件

比如有没有提高性能的参数,并不影响fuzz结果,比如测试图片处理程序,输出低质量的性能会好点;还有可以禁用输出以提升性能

还有ASA编译的二进制对于性能的影响还是挺大的,可以考虑使用普通插桩程序fuzz,使用asan编译的二进制去过一下样本。

还有些程序使用sleep(), usleep(), or nanosleep(),——我觉得作者的意思是看看能不能删除或者减少sleep的时长?

还有其他的比如fsync(),可以使用libeatmydata来禁用,它其实是个LD_PRELOAD library

5、只插桩你需要的部分

只对我们想要测试的库插桩,全部库插桩便会降低fuzz的性能

6、并行执行fuzzer

可以启用一个-M,多个-S的方式启用多个afl-fuzz实例,还可以考虑多主机fuzz

7、控制内存使用和超时

使用-m控制内存限制,-t控制超时时间,太大可能对性能有影响,但是有时候不是用-m none,程序又fuzz不了。

对于-t,作者建议在空闲并且性能不错的机器,将时间-t下降为5可能是可能的,但是这个具体还是要看情况啦,默认也没什么大问题,可以对比下性能,自行选择

8、检查操作系统的状态与设置

下面几个因素会影响模糊测试的速度

  • 高系统负载。所以使用空闲的机器,不要运行任何不必要,还要占用cpu的程序(浏览器,播放器等)
  • 网络文件系统(毕竟网络的,我觉得还是用本地吧),比如fuzzer的输入输出目录,fuzz目标需要的config文件,看着作者也不推荐在home目录,因为很多程序在那里搜索点开头的文件(点开头其实就是隐藏文件或目录)
  • CPU按需分配,有时linux系统可能低估了afl或者模糊测试器的短暂的性能需求,linux可以通过下面命令配置
代码语言:javascript代码运行次数:0运行复制
cd /sys/devices/system/cpu
echo performance | tee cpu*/cpufreq/scaling_governor
  • 禁用Transparent huge pages,假如这个启用,某些内存分配方案(例如 jemalloc) ,会对模糊测试的性能影响很大,可以通过如下命令禁用
代码语言:javascript代码运行次数:0运行复制
echo never > /sys/kernel/mm/transparent_hugepage/enabled
  • 次优的调度策略,这个可能因目标而异,linux作者推荐如下配置
代码语言:javascript代码运行次数:0运行复制
echo 1 >/proc/sys/kernel/sched_child_runs_first
echo 1 >/proc/sys/kernel/sched_autogroup_enabled

9、如果上面都无效,使用-d

这个模式可以使afl-fuzz跳过所有确定性的模糊测试过程

参考

.txt

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2022-04-26,如有侵权请联系 cloudcommunity@tencent 删除二进制内存性能测试程序

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1207095.html

相关标签:无
上传时间: 2025-07-24 12:32:08
留言与评论(共有 18 条评论)
本站网友 期货行情软件下载
17分钟前 发表
我觉得还是用本地吧)
本站网友 黑茶减肥
17分钟前 发表
使用-d这个模式可以使afl-fuzz跳过所有确定性的模糊测试过程参考.txt本文参与 腾讯云自媒体同步曝光计划
本站网友 中国票务中心
7分钟前 发表
但是有时候不是用-m none
本站网友 mp3合成器
18分钟前 发表
程序又fuzz不了
本站网友 上海腋臭
13分钟前 发表
原始发表:2022-04-26
本站网友 男人装图片
26分钟前 发表
检查操作系统的状态与设置下面几个因素会影响模糊测试的速度高系统负载
本站网友 延续
11分钟前 发表
毕竟执行的代码也少了
本站网友 已从服务器断开
3分钟前 发表
对于-t
本站网友 感冒清热颗粒
12分钟前 发表
还有些程序使用sleep()
本站网友 沙河口二手房
8分钟前 发表
太大可能对性能有影响
本站网友 什么品牌的安全套好
24分钟前 发表
使用-d这个模式可以使afl-fuzz跳过所有确定性的模糊测试过程参考.txt本文参与 腾讯云自媒体同步曝光计划
本站网友 大中国
27分钟前 发表
不要运行任何不必要
本站网友 四君子汤的功效
14分钟前 发表
可以考虑使用普通插桩程序fuzz
本站网友 欧冠赛
5分钟前 发表
使用-d这个模式可以使afl-fuzz跳过所有确定性的模糊测试过程参考.txt本文参与 腾讯云自媒体同步曝光计划
本站网友 合阳二手房
2分钟前 发表
并行执行fuzzer可以启用一个-M
本站网友 强克价格
27分钟前 发表
对于-t
本站网友 arrowhead
30分钟前 发表
对于-t