python3 的话版本要高于 3.6,这是 python2 的
sudo apt-get install python-dev libffi-dev build-essential virtualenvwrapper

1
2
3
4
export WORKON_HOME=~/Envs
mkdir -p $WORKON_HOME
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
mkvirtualenv angr

在这个虚拟环境里面安装 angr
pip install angr

这俩可能要单独安装一下
pip install gitdb2==2.0.6
pip install GitPython==2.1.14

image.png
image.png

*进:mkvirtualenv angr *
退:deactivate

安装

直接用 docker 吧!

例子

想要用 angr 的话先要 import angr
p=angr.Project(‘文件名’),那以后再操作的时候就用 p 来表示了
init_state = p.factory.entry_state() 定义一个入口的状态
sm = p.factory.simulation_manager(init_state) 符号执行
sm.explore(find=0x8048678) 我们希望他能执行到这个地方

拿深思杯一道 PWN 题举个例子,他需要先逆向找出一个 key,才能继续,可以用 angr 找一下

image.png
image.png

exp

1
2
3
4
5
6
import angr
p = angr.Project("./pwn")
state = p.factory.entry_state()
sm = p.factory.simulation_manager(state)
res = sm.explore(find=0x08048817,avoid=0x0804882B)
print(res.found[0].posix.dumps(0))