1、BAP(二进制分析平台)是David Brumley等人开发的一个二进制开发平台。具备将二进制文件(含轨迹文件)提升为中间语言,然后根据需要进行分析的功能。

     2、SSA(单静态赋值),BAP支持的一种语言表示形式,在SSA表示的语言中,所有的变量均只被定义一次,这就简化了分析的难度。

     3、BIL(BAP中间语言)。BAP的核心,一种中间语言。此语言是对汇编语言的形式化,形式化后的语言便于后续的分析。

     4、PIN/TEMU。动态程序分析工具,可以运行程序并生成程序的执行轨迹。

     5、STP。BAP所支持的一种SAT约束求解器。被广泛应用于漏洞发掘、测试用例生成等领域。STP将输入的方程式先进行字级别的优化,然后转化成位级别的合取范式(CNF)。将合取范式传递给minisat等SAT求解器进行求解。

     6、污点传播。动态代码分析的一种技术,定义一个污染源,监测污染源在程序运行时的传播,常用于入侵检测,漏洞发掘等。

     7、符号执行。静态程序分析的一种技术。采用输入逻辑符号值而不是具体数值的方式遍历程序路径。

     8、AST(抽象语法树)。GCC的前端在接受了输入的源程序之后,经过分析器(parser)处理得到 ParseTree(通常是一种抽象语法数,AST, AbstractSyntax Tree),根据这个 Parse Tree生成程序的RTL(Register Transfer Language)表示,然后在RTL表示的基础上进行优化处理,然后生成相应的目标代码。RTL 表示是一个相当接近底层的表示,也就是说它更接近目标代码,适合进行目标相关的优化工作,比如寄存器分配等等。

     9、CFG(程序控制流程图),CDG(控制依赖图)。

10、GCL:The

Guarded Command Language

(

GCL

) is a language defined by

Edsger Dijkstra

for

predicate transformer semantics

.

[1]

It combines programming concepts in a compact way, before the program is written in some practical programming language. Its simplicity makes proving the correctness of programs easier, using

Hoare logic。

http://teaching.sist.sysu.edu.cn/course/compiler/projects/languages/J.Bergin%28Pace1997%29%E5%8D%AB%E5%BC%8F%E5%91%BD%E4%BB%A4%E8%AF%AD%E8%A8%80GCL%EF%BC%88Ver.7%EF%BC%89.html

12、BFD(二进制文件描述)。树GNU下的一个开源项目,目的是对不同的文件格式建立了一个统一的抽象模型,在此模型下,可以对所有的文件类型进行分析。

13、IDL。Interface definition file 是一个接口文件,它应该由用户利用IDL(interface definition language)语言编辑uuidgen产生的IDL原型文件而成。IDL是一种用来说明操作(过程或函数),操作的参数以及数据类型的语言,它在语法 上继承于C语言,但形式上和C语言有很多不同,当然也有一些符合自己特点的适合于分布计算的特殊语法。具体可参看DCE RPC specification中的IDL language specification部分。