因为在学习过程中有用到driller,但是安装过程中经常碰到奇奇怪怪的问题,尤其是angr 8发布后全面放弃python2,导致兼容性较差,本人将最后安装成功的过程记录下来,仅供参考。注,时间为2018.11.27,各个仓库采用该时间点的最新源码,安装环境为ubuntu 16。
另外,个人推荐使用shellphish的脚本fuzzer来使用driller,一方面功能比较全,性能好,另一方面自己写的脚本,在组建更新后可能会存在兼容性问题。
1. 安装各种linux下的包
sudo apt-get install build-essential gcc-multilib libtool automake autoconf bison debootstrap debian-archive-keyring libtool-bin python3-dev libffi-dev virtualenvwrapper
sudo apt-get build-dep qemu(可能不必须)
2. 安装angr
采用源码安装,并生成python的虚拟环境angr,接下来安装的python包都在这个环境中。
git clone https://github.com/angr/angr-dev
cd angr-dev/
./setup.sh -i -e angr
配置虚拟环境:
export WORKON_HOME=~/Envs
source /usr/local/bin/virtualenvwrapper.sh
可以将这两行添加到.bashrc中,路径不一定相同,可以用whereis查找一下。进入虚拟环境
workon angr
2. 安装afl
安装shellphish版本afl,采用pip安装。
pip3 install git+https://github.com/shellphish/shellphish-afl
安装时间较长,因为要下载编译多个qemu版本吧。
另外需要注意一下,安装后afl的路径,因为fuzzer脚本默认afl的路径为~/Envs/angr/bin