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

測試結果

在這裏插入圖片描述

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