angrdoc 阅读笔记①
记得当初刚接触csdn blog的时候还不支持功能如此强大的Markdown,只是一些基础的操作,现在搂了一眼发现已经加上了好多不错的功能,比如说目录、代码段。下面这个系列将会记录一下有关于angr这一平台的阅读笔记。将会以问题的形式记录。
0x001 什么是angr
angr是当下一款功能比较强大的开源的支持多平台的(like windows,liux,etc.)基于二进制上的符号执行工具(like KLEE),同时搭配了基于二进制上的静态分析。
0x002 angr的大体工作流程是什么
图尚且并不完善,随着进一步阅读,会更加丰富
0x003 angr目前改进的方向有哪些
- 目前angr只支持对c的二进制的分析因此我们希望让他对更多的语言进行分析比如JAVA(引入对SOOT的支持)
- 支持更多的架构比如PIC,AVR架构
- 作者最希望能提供对LLVM IR的支持,angr将不再仅仅是一个二进制的分析框架,将会变成一个程序分析框架,大大的拓展了他的能力
- 当然一些老生常谈的问题,比如说路径爆炸、多线程进程问题的处理等依然是angr需要再进一步的改进的问题
0x004 有关Top-level interfaces
在这里我遇到以下几个问题
- 一开始我打算在mac上搭载环境,失败,具体原因查到有讲mac上需要安装作者要求的Z3的环境
- 于是我用VMware Fusion搭建了linux平台,按照命令走,但是在 import angr出现了错误
- 出现错误之后查doc,师兄说要在虚拟环境下运行,于是通过 mkvirtualenv angr命令创建了虚拟环境,source bin/activate 开启虚拟环境
- 在虚拟环境下pip install angr之后再import发生了同样的错误
- 鉴于此再查doc,说capstone出现了问题,于是通过命令pip install -I