对Rust程序使用AFL工具进行模糊测试

网上有很多关于对c程序使用afl进行fuzz的文章,但没有一篇文章讲到如何对一个rust程序使用afl进行模糊测试(本人是做相关课题的),在仔细阅读了官方文档以及翻阅了大量的资料后,成功地跑起了afl。因此决定自己写一篇相关文章

测试环境:ubuntu 20.04虚拟机

最终目标:从零开始对一个rust程序使用afl进行模糊测试,并展示核心面板

详细步骤

1. 安装cargo(Rust 的构建系统和包管理器,可用于编译rust程序)

 sudo apt install cargo

 

2.安装用于测试Rust的AFL(afl.as文件在里面)

 cargo install afl

3.编写Rust程序

这里我们使用命令行先创建一个Rust项目,cargo会帮我们自动创建好目录结构,project是项目的包名,注意创建了之后切换到项目的目录根下,整体的项目结构如下图所示:

cargo new project 

cd project

 在main.rs里面就可以编写我们想要测试的rust文件了,这里的Cargo.tomi是项目数据描述文件(可以理解成是一个配置文件)

4.对源rust程序进行编译插桩
​​cargo afl build

此命令行相当于 afl-gcc -g -o afl-test afl-test.c

 5.创建输入,输出文件夹,在输入文件夹中创建语料种子集

 6. 开始模糊测试

 cargo afl fuzz -i in -o out target/debug/project(这里写你之前创建的项目名)

这个命令就是正式执行fuzz的命令,等价于我们对c语言程序进行fuzz时输入的命令:afl-fuzz -i in -o out ./afl-test

这里出了一些错, 我们按照他的要求,在命令行输入以下命令

sudo su

输入你虚拟机设置的密码,获得相关权限

echo core >/proc/sys/kernel/core_pattern

切换核之后,我们解决了之前的问题,但又出现了新的问题,说没有子命令afl

 这里我们需要再下载一次afl

 7.成功运行

输入以下指令:cargo afl fuzz -i in -o out target/debug/(这里写你的项目名)

 然后就可以成功运行辣,自动跳出这个页面

 喜欢的朋友记得点赞收藏噢~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值