发明名称 一种基于动态二进制翻译框架的代码复用攻击检测系统
摘要 本发明属于计算机安全领域,公开了一种基于动态二进制翻译框架的代码复用攻击检测系统。检测系统包括翻译器、探测器、Cache、跳台四个模块。翻译器以基本块为单位逐条解码程序的二进制数据;探测器处理解码后的指令,常规探测是基础,保证正常运行,攻击检测为核心,获取和检测指令的行为;Cache建立基本块的源和翻译地址之间的映射关系,并缓存翻译后生成的基本块目标代码;跳台管理程序的控制流,保证程序的翻译和执行有序进行,并为同类型指令提供检测和优化机制。本发明能处理非开源的程序,为程序的安全执行提供保障。
申请公布号 CN102662830A 申请公布日期 2012.09.12
申请号 CN201210073563.4 申请日期 2012.03.20
申请人 湖南大学 发明人 刘超;孙建华;陈浩
分类号 G06F11/36(2006.01)I;G06F21/00(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 代理人
主权项 一种基于动态二进制翻译框架的代码复用攻击检测系统,其特征在于:应用程序被加载到检测系统中翻译运行,包含翻译器、探测器、Cache、跳台四个模块:翻译器负责程序的翻译工作,以基本块为单位,截获程序的指令流逐条对程序的二进制指令解码翻译。采用同平台翻译技术和“翻译‑执行”模式,每翻译完一个基本块,执行该基本块;指令解码后,探测器通过执行C代码或者添加汇编代码到指令对应的目标代码中,提供指令的正常执行、安全性检测以及指令的优化,分为常规探测和攻击检测;常规探测为基础部分,保证程序正常运行;攻击检测为核心,主要处理程序中存在控制流转移的潜在危险指令;生成的目标代码由Cache管理,Cache一方面分配内存空间缓存翻译过后的目标代码,降低重复翻译引入的开销;一方面建立并维护映射表,映射表保存着基本块源地址和翻译地址之间的映射关系,为查询基本块是否翻译过提供支持;跳台(Trampoline)用于保证程序的翻译和执行工作有序进行,同时为指令安全性检测提供支持;跳台实质上是由嵌入内存中的汇编指令序列构成,通过调用跳台首地址执行嵌入的汇编指令序列,主要用于实现函数调用、其他跳台调用、指令的优化等,保证程序的翻译和执行工作有序进行。
地址 410082 湖南省长沙市岳麓区麓山南路1号