一种基于控制流监控的动态生成代码的指令转换方法技术

技术编号:43093411 阅读:21 留言:0更新日期:2024-10-26 09:39
本发明专利技术公开了一种基于控制流监控的动态生成代码的指令转换方法,在指令标识阶段依次监视待处理可执行文件相关内存页的可执行属性修改及写操作,确定了动态生成代码所在位置与执行属性修改相关指令间的位置关系,以及动态生成代码所在的内存页和在内存页中的写操作相关地址范围,在实际执行阶段,通过在待处理可执行文件内与确定的指令地址相对应的位置增加指令断点,实现了对动态生成代码的以内存页为单位的预先指令转换,从而避免了以基本块为单位的指令转换,有效提高了动态指令转换的执行效率。

【技术实现步骤摘要】

本专利技术属于计算机软件开发,具体涉及一种基于控制流监控的动态生成代码的指令转换方法


技术介绍

1、动态指令转换(dynamic instruction translation,dit)也被称为动态二进制翻译(dynamic binary translation,dbt),是一种在运行时将程序指令从一种指令集转换成当前物理处理器指令集的方法,主要用来解决在一种处理器上运行异构指令集程序的需求。

2、dit既要解决一个可执行文件静态代码的转换问题,也要解决程序动态生成的代码的转换问题。对于可执行文件静态代码,现有方法通常是在程序加载时完成转换以提高可执行文件执行效率,然而,对于程序动态生成的代码的转换,现有技术则是采用监视指令的跳转地址再进行相关判断操作的处理方式完成转换,具体为,如果跳转目标地址位于动态指令相关代码的内存页中且该动态指令未被转换则触发段错误,dit引擎监视到该异常后尝试以基本块为单位转换目标地址指向的指令区域,转换完成后恢复异常继续执行。

3、然而现有方法存在无法预先转换动态指令、仅能以基本块为单位进行转换以及需触本文档来自技高网...

【技术保护点】

1.一种基于控制流监控的动态生成代码的指令转换方法,其特征在于,具体包括以下步骤:

2.根据权利要求1所述的指令转换方法,其特征在于,所述对于页属性修改指令增加的指令断点执行对该目标内存页的代码转换的方式为:获取目标内存页所在寄存器,再从该寄存器获取目标内存页地址,最后根据目标内存页地址对该目标内存页执行代码转换。

3.根据权利要求1所述的指令转换方法,其特征在于,所述对于可执行页写指令增加的指令断点执行获取目标内存页地址的方式为:获取指令转换配置文件记录的目标内存页所在寄存器,再从该寄存器获取目标内存页地址。

4.根据权利要求1所述的指令转换方法,其...

【技术特征摘要】

1.一种基于控制流监控的动态生成代码的指令转换方法,其特征在于,具体包括以下步骤:

2.根据权利要求1所述的指令转换方法,其特征在于,所述对于页属性修改指令增加的指令断点执行对该目标内存页的代码转换的方式为:获取目标内存页所在寄存器,再从该寄存器获取目标内存页地址,最后根据目标内存页地址对该目标内存页执行代码转换。

3.根据权利要求1所述的指令转换方法,其特征在于,所述对于可执行页写指令增加的指令断点执行获取目标内存页地址的方式为:获取指令转换配置文件记录的目标内...

【专利技术属性】
技术研发人员:温研
申请(专利权)人:北京麟卓信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1