发明名称 一种数据流跟踪方法
摘要 本发明公开了一种数据流跟踪方法,包括三个阶段:客户操作系统指令静态反汇编,根据静态的客户机x86指令生成对应的污点传播指令,进行污点数据传播更新操作,对于在静态反汇编时不能获取的内存操作数物理地址,通过采用共享缓存的方式在动态执行过程中获取;编译产生宿主机执行代码,根据上一阶段的污点指令生成宿主机上的可执行代码,以处理函数的形式进行生成,方便下一阶段的执行;开启新的执行线程,执行污点指令,逐条取出污点指令,调用其处理函数。本发明方法通过将污点跟踪操作和模拟器动态二进制翻译执行模块分离,实现基于x86指令级的污点语义翻译和并行化的污点传播更新,减少无用的污点跟踪操作,提高系统和用户的交互体验。
申请公布号 CN103714288A 申请公布日期 2014.04.09
申请号 CN201310733715.3 申请日期 2013.12.26
申请人 华中科技大学 发明人 邹德清;金海;袁劲枫
分类号 G06F21/52(2013.01)I 主分类号 G06F21/52(2013.01)I
代理机构 华中科技大学专利中心 42201 代理人 朱仁玲
主权项 一种数据流跟踪方法,其特征在于,该方法基于模拟器进行数据流跟踪的优化,包括对客户操作系统指令进行反汇编的阶段、编译产生宿主机执行代码的阶段和最终代码执行的阶段,其中:在对客户操作系统指令进行反汇编的阶段,模拟器对客户操作系统指令进行反汇编的同时产生污点指令,污点指令为特定的编码形式,固定大小为4个字节,包括操作码(opcode)、源操作数、目的操作数以及ArgLogPos字段;在编译产生宿主机执行代码的阶段,对之前产生的污点指令进行编译产生宿主机上运行的指令,每一个污点指令对应于一个处理函数,用于执行该污点指令代表的污点更新操作;在最终代码执行阶段,开启新的线程执行污点指令,进行污点跟踪的操作,执行的过程就是逐条取出污点指令并调用污点指令处理函数。
地址 430074 湖北省武汉市洪山区珞喻路1037号