angr
0x0 angr是什么
angr是一个用于分析二进制文件的python框架, 最新版本仅支持python3. angr结合了静态和动态的符号执行, 可以使用angr以及内置工具:
+ 分析二进制文件
+ 绘制控制流图
+ 符号执行
+ 自动生成ROP链
+ 自动生成patch
+ …
angr由几个子项目组成, 这些子项目都可以在其他模块中单独使用:
+ CLE: 可执行文件加载器-加载二进制文件到内存
+ Archinfo: 架构数据库-所有架构信息的集合
+ PyVEX: 转换器-将其机器码转换为中间代码
+ SimEngine: 模拟执行器-虚拟的cpu与内存
+ Claripy: 求解器-解决约束的黑科技
+ SimOS: 执行器系统-控制io的抽象系统
0x1 angr是怎么工作的
angr可以将各种架构的二进制程序转换为中间语言,然后通过分析中间语言,了解二进制程序做了什么.再进一步进行符号执行等更深一层次的分析.