AFL++实战(二)-测试python

CPython

CPython是用C语言实现的Python解释器。作为官方实现,它是最广泛使用的Python解释器。项目源码

cpython的下载

apt-get update
sudo apt-get install -y build-essential libncursesw5-dev libreadline-dev libssl-dev libgdbm-dev libc6-dev libsqlite3-dev tk-dev libbz2-dev zlib1g-dev libffi-dev
git clone https://github.com/python/cpython.git
cd cpython

有源码测试

配置

对于完整的项目,需要将编译器指定为 afl-gcc,然后再进行编译。

./configure CC="afl-gcc" CXX="afl-g++"
make

fuzz

正式执行 fuzz 测试的命令如下:

mkdir in
# 在in文件下下创建python的语料库
afl-fuzz -m none -i in -o out ./python @@

测试结果

在这里插入图片描述

黑盒测试

配置

首先在下载好python后,对python直接进行编译安装,生成二进制文件。

./configure
make
make test
sudo make install

启用QEMU模式,要先编译。

# 进入到AFLplusplus所在位置
cd qemu_mode
./build_qemu_support.sh

fuzz

afl-fuzz -Q -m none -i in -o out ./python @@

测试结果

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章