书接上文1,假设你已经知道了关于angr的一些基本知识(例如,安装方法、如何导入项目,以及获得程序的CFG等),本文将主要讨论如何利用angr对程序进行基于Symbolic Execution的分析。本文中所使用的程序是angr官方文档2中给出的一个最基本的例子,非常适合作为入门教学之用。
在此前的文章中,我们曾经提过“angr是一个基于Python开发的二进制程序分析(Binary analysis)框架,可以用于开展动态符号执行(Symbolic Execution)和多种静态分析”。事实上,Symbolic Execution也正是angr的一个代表性功能。
符号执行(Symbolic Execution):In computer science, symbolic execution is a means of analyzing a program to determine what inputs cause each part of a program to execute.