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

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

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

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

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

exp

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