如何使用Afl-Fuzz去测试一个shell脚本·

    众所周知,模糊测试技术已经成为了测试软件质量的重要手段。基于模糊测试技术开发的测试工具有很多,其中最长被使用而且改进也是最多的一个工具就是AFL(American Fuzz Lop). 本篇文章不会赘述如何安装afl,以及如何使用afl进行简单的fuzz。由于很多被测程序都有自己的一个入口,而这些入口有的十分清晰,有的则很难挖掘到。为了解决这个问题,有许多软件项目在自己的代码中会给出一个用于测试的程序,一般叫做test-driver,这个程序里面实现了该软件项目的一些主要函数和方法,可以用来对整个软件项目进行测试。但是,大部分的test-driver是一个shell脚本,而afl是无法对一个shell脚本进行fuzz的。为了解决这个问题,我们可以变换一种方法来进行脚本的fuzz。具体操作过程如下:

    一. 下载安装shc

    shc是一个可以编译shell程序为C可执行程序的编译器,项目地址如下:https://github.com/neurobin/shc.git。在编译shc的过程中,你用到的编译器将会决定shc将shell转换成C文件之后的编译器用什么,所以我们安装shc的过程如下:

git clone https://github.com/neurobin/shc.git
cd shc
./autogen.sh
CC=/usr/local/bin/afl-gcc ./configure # CC设置为afl-gcc的绝对路径
vim Makefile

在Makefile里面,观察一下CC是否是afl-gcc,如果想加ASAN模式,在CFLAG后面添加 -fsanitize=

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值