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