没有合适的资源?快使用搜索试试~ 我知道了~
动态分析工具设计文档1
需积分: 0 0 下载量 40 浏览量
2022-08-08
18:35:02
上传
评论
收藏 62KB DOCX 举报
温馨提示
试读
4页
此动态分析工具提供了如下表1的参数,用户可以根据自己的需求配置不同的参数:OPTIONARGSDESCRIPTION-Minstructionmonitor j
资源详情
资源评论
资源推荐
CSTE v1.0 动态分析工具设计文档
内存安全基准原型系统
工具简介
动态分析工具是基于 QEMU 开发的一个原型验证工具。
QEMU 是一套由 Fabrice Bellard 编写的模拟处理器的开源软件。它通过动态翻译执行快
速的模拟一个处理器,并达到很好的模拟速度。QEMU 有两种操作模式:
全系统模拟:在此模式,QEMU 模拟整个操作系统,包括一个或者多个处理器和多个外
设。在这个模式 QEMU 可以运行不同的操作系统不需要重启电脑或者调试系统代码。
用户态模拟:在此模式,QEMU 运行不同于宿主机 CPU 架构的不同架构的进程。因此,
QEMU 用户态可以简化不同架构程序的交叉编译和交叉调试。
CSTE v1.0 版本的动态分析工具是基于 QEMU 的用户态模拟模式开发而来,此动态分析
工具可以运行不同功能需求的程序,并且可以根本不同的需求监控程序的运行。此动态分析
工具中开发实现了如粗粒度 CFI、细粒度 CFI、影子栈等多种防御机制,用户可以根据需求
监控程序运行得到程序控制流、不同转移指令的跳转及源地址和目的地址等、各种指令执行
数量和匹配配件以及配件链等信息。用户可以选择不同的防御机制来测试用户程序的攻击和
漏洞,并且组合输出程序运行过程中的各种信息,方便分析程序行为。
安装环境
QEMU 是一个跨平台的开源软件,因此 QEMU 可以安装在所有的 Linux 平台,OS-X,
Win32 和多种 UNIX 平台。
此动态分析工具的实验环境为 Ubuntu 16.04 64bit,Intel Core i5-3470 CPU,4GB RAM。
基本原理
QEMU 模拟处理器动态执行的核心是动态翻译模块 TCG(Tiny Code Generator)。TCG
可以使架构不同的程序跨平台执行,例如 ARM 架构编译链接的程序通过 TCG 可以在 X86、
MIPS 和 OpenRisc 等架构平台上执行。TCG 也分为前端和后端,目标指令通过 TCG 前端转
换成 TCG IR 指令,之后这些指令通过 TCG 后端转换为 对应宿主机架构的机器指令。
QEMU 动态执行时是以代码块的粒度来翻译执行用户程序,每一个代码块称之为 TB 块,
而 TB 块是按照 ret、call、jmp,syscall 转移指令和最大指令条数来划分成块。TCG 的动态翻
译执行原理如下图一所示。程序载入 QEMU 的用户空间后,QEMU 会模拟处理器的执行过
程取指执行,QEMU 在取出程序执行的第一条指令后首先到 TB cache 结构(专门存储程序
动态翻译后的 TB 块)中查找是否存在 TB 块首地址为该指令地址的 TB 块,若没有找到则通
过 TCG 动态翻译生成一个 TB 块,并将 TB 块的相关信息记录在 TCGContext 中。TCG 在翻
译执行后将生成的 TB 块加到 TB cache 中,并将 TB 块交给 QEMU 执行。若 TB cache 中存在
苏采
- 粉丝: 13
- 资源: 302
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0