AFLsmart实践记录

AFLsmart实践记录,第1张

AFLsmart实践记录 下载
  1. 安装 automake 及一些其他的包
sudo apt-get install build-essential automake libtool libc6-dev-i386 python-pip g++-multilib

报错:E: Package ‘python-pip’ has no installation candidate

sudo apt-get install build-essential automake libtool libc6-dev-i386 python3-pip g++-multilib
  1. 安装 mono 包,为了在 Linux 上支持 C#
sudo apt-get install mono-complete
  1. 安装 gcc-4.4 以及 g+±4.4,(Peach 中的 Pin 组件在更高的 gcc 版本中会发生一些编译问题)
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt install gcc-4.4
sudo apt install g++-4.4

成功,则直接看第四步,如不能成功,可尝试以下命令

udo gedit /etc/apt/sources.list

向文件中添加如下内容:

deb http://dk.archive.ubuntu.com/ubuntu/ trusty main universe

然后安装

sudo apt-get update
    sudo apt install gcc-4.4
    sudo apt install g++-4.4

没用上的另外一种方法:https://blog.csdn.net/leviopku/article/details/101060133
4. 环境成功准备好后,开始 AFLSmart 的安装

git clone https://github.com/aflsmart/aflsmart
    cd aflsmart
    make clean all
    cd ..
    export AFLSMART=$(pwd)/aflsmart
    export WORKDIR=$(pwd)
  1. 修改 Peach 的版本
cd $AFLSMART
wget https://sourceforge.net/projects/peachfuzz/files/Peach/3.0/peach-3.0.202-source.zip
unzip peach-3.0.202-source.zip
patch -p1 < peach-3.0.202.patch
cd peach-3.0.202-source
CC=gcc-4.4 CXX=g++-4.4 ./waf configure
CC=gcc-4.4 CXX=g++-4.4 ./waf install

报错:/usr/bin/env: ‘python’: No such file or directory
如果已经下载python3:sudo ln -s /usr/bin/python3 /usr/bin/python
错误原因 :python3 中的 print 是一个内置函数, 而 python2 中的 print是一个语法结构 ,因此,python3 在打印时需要 加(),而 python2 打印时不需要加()。
解决:https://segmentfault.com/a/1190000022572643
将pyhton3改成2

sudo apt install python2
ls /usr/bin/python*

sudo update-alternatives --list python

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2

sudo update-alternatives --list python
sudo update-alternatives --config python

选择1使用python2

  1. 设置 PATH 的环境变量
export PATH=$PATH:$AFLSMART:$AFLSMART/peach-3.0.202-source/output/linux_x86_64_debug/bin
    export AFL_PATH=$AFLSMART
    export LD_LIBRARY_PATH=/usr/local/lib
  1. 进入到 AFLSmart 目录,输入
cd ..
./afl-fuzz

成功界面:

使用 复现
git clone https://github.com/dbry/WavPack.git
cd WavPack
git checkout 0a72951
./autogen.sh
CC=afl-gcc ./configure --disable-shared
make clean all

Fuzz it in 24 hrs

timeout 24h $AFLSMART/afl-fuzz -m none -h -d -i $AFLSMART/testcases/aflsmart/wav -o out -w peach -g $AFLSMART/input_models/wav.xml -x $AFLSMART/dictionaries/wav.dict -e wav -- ./cli/wavpack -y @@ -o out

需要注意的是CC=afl-gcc ./configure --disable-shared需要使用静态库模式,所以不能用cmake。后期有时间再用别的软件实验一下。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5671095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存