使用afl-fuzz的QEMU模式测试chome
2017-06-26 10:00
746 查看
webkit的源码编译简直是要疯了,调了两天还是不行,于是放弃了源码模糊测试的途径
![](https://img-blog.csdn.net/20170626094235963?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvS2luZ0RyYWdvbjA4MjY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
截个图以备下次心情好再来搞一搞
于是转向qemu模式
The feature is implemented with a fairly simple patch to QEMU 2.3.0. The
simplest way to build it is to run ./build_qemu_support.sh. The script will
download, configure, and compile the QEMU binary for you.
QEMU is a big project, so this will take a while, and you may have to
resolve a couple of dependencies (most notably, you will definitely need
libtool and glib2-devel).
Once the binaries are compiled, you can leverage the QEMU tool by calling
afl-fuzz and all the related utilities with -Q in the command line.
说明文档说的很清楚,直接运行qemu_mode下边的build_qemu_support.sh将会完成QEMU的安装和配置,然后就可以愉快的在原有的测试命令上加上-Q以qemu模式进行测试了。
跑第一把的时候不出意外会遇到内存不足直接退出的情况,这是因为afl-fuzz默认200M的运行内存来进行测试,然后chrome貌似200M不够用。
找几个测试用例,截图如下:
![](https://img-blog.csdn.net/20170626094912306?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvS2luZ0RyYWdvbjA4MjY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
然后就可以键入命令跑起来了
afl-fuzz -i afl_in -o afl_out -m 1024 -Q ./chrome会有警告信息,因为测试用例选的不好或是其他原因,但是好不容易跑起来,我会在乎这些吗!
![](https://img-blog.csdn.net/20170626095211464?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvS2luZ0RyYWdvbjA4MjY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
于是乎开始跑,晚上离开实验室前开始跑得,第二天早上来看,跑了七个多小时就停了。。。停了。。。停了。。。
而且毛都没跑出来一个
![](https://img-blog.csdn.net/20170626095349720?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvS2luZ0RyYWdvbjA4MjY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
瞬间崩溃呀有木有!
然后想尝试不插入指令直接模糊测试这个可能会慢死的模式,然而直接报超时,我也很无奈。。。
![](https://img-blog.csdn.net/20170626095606895?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvS2luZ0RyYWdvbjA4MjY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
然后无意中在root状态下发现,chrome运行时有个-no-sandbox选项,于是乎再尝试一遍,正在跑,也不知道能不能出啥东西。
afl-fuzz -i afl_in -o afl_out -m 1024 -Q ./chrome -no-sandbox
跑一跑试一下
![](https://img-blog.csdn.net/20170626095835854?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvS2luZ0RyYWdvbjA4MjY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
备注:chrome在ubuntu14.04下安装后可执行文件目录为
/opt/google/chrome
截个图以备下次心情好再来搞一搞
于是转向qemu模式
The feature is implemented with a fairly simple patch to QEMU 2.3.0. The
simplest way to build it is to run ./build_qemu_support.sh. The script will
download, configure, and compile the QEMU binary for you.
QEMU is a big project, so this will take a while, and you may have to
resolve a couple of dependencies (most notably, you will definitely need
libtool and glib2-devel).
Once the binaries are compiled, you can leverage the QEMU tool by calling
afl-fuzz and all the related utilities with -Q in the command line.
说明文档说的很清楚,直接运行qemu_mode下边的build_qemu_support.sh将会完成QEMU的安装和配置,然后就可以愉快的在原有的测试命令上加上-Q以qemu模式进行测试了。
跑第一把的时候不出意外会遇到内存不足直接退出的情况,这是因为afl-fuzz默认200M的运行内存来进行测试,然后chrome貌似200M不够用。
找几个测试用例,截图如下:
然后就可以键入命令跑起来了
afl-fuzz -i afl_in -o afl_out -m 1024 -Q ./chrome会有警告信息,因为测试用例选的不好或是其他原因,但是好不容易跑起来,我会在乎这些吗!
于是乎开始跑,晚上离开实验室前开始跑得,第二天早上来看,跑了七个多小时就停了。。。停了。。。停了。。。
而且毛都没跑出来一个
瞬间崩溃呀有木有!
然后想尝试不插入指令直接模糊测试这个可能会慢死的模式,然而直接报超时,我也很无奈。。。
然后无意中在root状态下发现,chrome运行时有个-no-sandbox选项,于是乎再尝试一遍,正在跑,也不知道能不能出啥东西。
afl-fuzz -i afl_in -o afl_out -m 1024 -Q ./chrome -no-sandbox
跑一跑试一下
备注:chrome在ubuntu14.04下安装后可执行文件目录为
/opt/google/chrome
相关文章推荐
- 使用Afl-fuzz (American Fuzzy Lop) 进行fuzzing测试(二)——详细使用说明(README.txt)
- 使用Afl-fuzz (American Fuzzy Lop) 进行fuzzing测试(四)——直接对二进制进行fuzzing
- 使用Afl-fuzz (American Fuzzy Lop) 进行fuzzing测试(待续)
- 使用Afl-fuzz (American Fuzzy Lop) 进行fuzzing测试(三)——技术白皮书(technical whitepaper)
- 使用Afl-fuzz (American Fuzzy Lop) 进行fuzzing测试(一)——使用初体验
- 使用Afl-fuzz (American Fuzzy Lop) 进行fuzzing测试(待续)
- 使用sipp对FreeSwitch进行测试(Linux环境,会议模式)
- 测试编辑器属哪种模式,使用C语言判断处理器的大小端
- 使用DRS的维护模式实现单个VM的测试
- QTP测试脚本的维护 - 使用Update运行模式和Maintenance运行模式
- FTP/SFTP不使用WEBPORTAL模式直接登录测试---麒麟开源堡垒机技术篇心得之一
- 使用非 GUI 模式运行 JMeter 压力测试
- (已测试)在本地处理模式下将数据库数据源与 ReportViewer Web 服务器控件一起使用
- Java经典实例:使用正则表达式:测试模式
- 使用非 GUI 模式运行 JMeter 压力测试
- 部署RTMP流媒体服务器,并使用FFMpeg命令行模式测试
- 学习实践:使用模式,原则实现一个C++自动化测试程序
- 单例模式使用 懒汉模式和饿汉模式以及使用enum方式的性能测试
- 【hadoop 2.6】hadoop2.6伪分布模式环境的搭建测试使用
- (已测试)在本地处理模式下将业务对象数据源与 ReportViewer Web 服务器控件一起使用