0%

afl testcase zero

Pre

使用AFL先跑其自带的测试用例。

Start

安装好的AFL目录如下图所示:

image-20200617155420427

其中的test-instr.c就是测试所用的示例。

需要将其再编译生成插桩后的二进制文件,新建一个test目录,再在里面新建test_in,test_out两个目录,将测试文件复制到该文件夹中,新建一个简单的makefile文件,如下:

image-20200617155850996

image-20200617160014747

然后make编译就能生成二进制插桩后的文件了,一般出现一个提示”core_pattern“的设置错误,这里的话需要设置一下状态:

1
2
$ sudo su
$ echo core > /proc/sys/kernel/core_pattern

然后就可以正常跑了,一般执行命令afl-fuzz,可以参阅上一篇文章。

我从中午一直跑到了晚上,也没有发现crash的情况出现,结果在freebuf的一篇文章看到如果“cycles done”的字段颜色为绿色就代表再跑下去也没什么结果了,afl运行的过程一直是个死循环,所以才会一直在跑。

image-20200618010657790

然后我就强行停止了。

Again

很奇怪的是这是afl自带的测试用例,按道理不应该跑不出来的。于是我又去找了一下社区内前辈的文章来看,借用了其中的一个示例代码,结果就很快跑出该程序的crash情况了。

image-20200618012545922

我特意把两次的输出目录都分开了,两次跑的结果都存在,至于如何分析输出的情况,接下来会继续。