《编译与反编译技术实战 》一1.9 动态分析工具TEMU

简介: TEMU是动态分析工具BitBlaze的一个组件,是一个基于系统仿真器QEMU开发的动态二进制分析工具,以QEMU为基础运行一个完整的系统(包括操作系统和应用程序),并对二进制代码的执行进行跟踪和分析。

本节书摘来自华章出版社《编译与反编译技术实战 》一书中的第1章,第1.9节,庞建民 主编 ,刘晓楠 陶红伟 岳 峰 戴超 编著,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.9 动态分析工具TEMU

TEMU是动态分析工具BitBlaze的一个组件,是一个基于系统仿真器QEMU开发的动态二进制分析工具,以QEMU为基础运行一个完整的系统(包括操作系统和应用程序),并对二进制代码的执行进行跟踪和分析。
TEMU提供以下功能:
1)动态污点分析。TEMU能够对整个系统进行动态污点分析,把一些信息标记为污点(如键盘事件、网络输入、内存读写、函数调用、指令等),并在系统内进行污点传播。这个特性可为符号执行提供插件形式的工具。许多分析都需要对二进制代码进行细粒度的分析,而基于QEMU的全系统模拟器确保了细粒度的分析。
2)获取操作系统视图。操作系统中提取的信息如进程和文件对很多分析都是很重要的。TEMU可以使用这些信息决定当前执行的是哪个进程和模块、调用的API和参数,以及文件的存取位置。全系统的视图使我们能够分析操作系统内核以及多个进程间的交互,而许多其他的二进制分析工具(如Valgrind、DynamoRIO、Pin)只提供了一个局部的视图(如单个进程的信息)。这对于分析恶意代码更为重要,因为许多攻击涉及多个进程,而且诸如rootkits的内核攻击变得越来越普遍。
3)深度行为分析。TEMU能够分析二进制文件和操作环境的交互,如API调用序列、边界内存位置的访问。通过标记输入为污点,TEMU能够进行输入和输出之间的关系分析。并且,全系统仿真器有效地隔离了分析组件和待分析代码。因此,待分析代码更难干扰分析结果。
TEMU由C和C++实现。性能要求高的代码由C实现,而面向分析的代码由C++编写,以便很好地利用C++ STL中的抽象数据类型和类型检查。

相关文章
|
自然语言处理
《编译与反编译技术实战 》一3.4 本章小结
词法分析是编译过程的第一个阶段,负责对源程序进行扫描,按照源程序的构词规则识别出一个个单词符号。编译过程中执行词法分析的程序称为词法分析器。本章介绍了构造词法分析器的两种方法:一种是基于状态转换图的词法分析器的手工实现,另一种是利用词法分析程序的自动生成工具LEX的词法分析器的自动实现。
1766 0
《编译与反编译技术实战 》一 第1章 实践的环境与工具
本书致力于通过实践及案例,从正反向两个角度介绍编译系统的一般构造原理和基本实现技术,本章首先对书中内容涉及的环境与工具进行简单介绍,这些工具都是编译与反编译过程中常用的工具。
1087 0