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 @@