一、什么是angr?
angr 是一个功能强大的二进制程序分析框架,可用于程序的静态分析和动态符号执行。支持 x86、ARM、MIPS 和 PPC 架构中 32 bit 和 64 bit 可执行程序的分析,是一款非常强大的python库。
二、angr怎么安装?
1、安装 virtualenvwrapper
virtualenv 是一个可以在同一台计算机中隔离多个 Python 环境的工具。它能够用于创建独立的 Python 环境,使得多个 Python 环境互不影响。virtualenvwrapper 是 virtualenv 的扩展管理包,可以更方便地管理虚拟环境。
使用 pip 命令安装 virtualenvwrapper,默认安装在 /usr/local/bin 目录下。
1 | sudo pip install virtualenvwrapper |
2、打开virtualenvwrapper.sh并配置虚拟环境
1 | cd // |
3、写入
1 | export WORKON_HOME=$HOME/Virtualenv |
4、执行下
1 | source /usr/local/bin/virtualenvwrapper.sh |
5、打开开机配置的文件
1 | sudo gedit ~/.bashrc |
6、写入
1 | source /usr/local/bin/virtualenvwrapper.sh |
以上每次开机时都会初始化,使得angr环境可以直接建立
7、安装依赖包
由于安装 angr 时需要编译一些 C 文件,需要安装 python-dev 和 libffi-dev。
1 | sudo apt-get install python-dev libffi-dev build-essential |
8. 安装 angr
使用以下命令以开发模式安装 angr,安装完后可修改和重新编译 angr 的各模块,并且这些改动会自动反映到虚拟环境中,记得要python3.6以上版本~因为python2.7的版本,angr已经不支持了
1 | mkvirtualenv angr |
然后退出angr模式,需要安装下protobuf,不然会报错:
1 | __new__() got an unexpected keyword argument 'serialized_options' |
还是用python3去安装:
1 | pip3 install -U protobuf |
搞定后退出来后,直接python3运行并试着导入angr包,成功!
开启和关闭虚拟环境的方法:
1 | workon angr #进入angr环境 |
三、angr在逆向中的使用
比如看一道简单的逆向题:test
这里需要输入flag,然后判断是否正确,这里直接跑angr脚本,爆破得到flag:
1 | #-*- coding:utf-8 -*- |