代码植入及指令构建方法技术

技术编号:39752289 阅读:8 留言:0更新日期:2023-12-17 23:50
本发明专利技术涉及应用开发领域,特别涉及一种代码植入及指令构建方法

【技术实现步骤摘要】
代码植入及指令构建方法、指令分析方法、设备及介质


[0001]本专利技术涉及应用开发领域,特别涉及一种代码植入及指令构建方法

指令分析方法

设备及介质


技术介绍

[0002]随着计算机技术的发展,逐渐衍生形成了多种不同的指令集架构

每一种处理器采用的指令集各不相同,各有其应用特点和应用领域

[0003]通过不同的工具链,上层应用在跨指令集架构上实现了兼容性

但是在二进制代码层面,各架构的应用程序在安全性

有效性

执行效率等关键问题上表现各不同

处理方式不同

因此需要从二进制层面分析,才能找到问题的根源,并从二进制层面入手解决这些问题

现有技术中没有较为方便的对二进制指令进行分析的方法

[0004]为此,需要一种新的代码植入及指令构建方法和指令分析方法


技术实现思路

[0005]为此,本专利技术提供一种代码植入及指令构建方法,以力图解决或者至少缓解上面存在的问题

[0006]根据本专利技术的第一方面,提供一种代码植入及指令构建方法,适于在计算设备中执行,计算设备在运行应用时将物理地址映射为连续的虚拟地址,得到程序地址空间,方法包括:设置搜索地址指针;根据搜索地址指针从程序地址空间的低位开始,依次判断指针当前指向地址是否被使用;若未被使用,则将指针当前指向地址作为目标地址,在目标地址中植入指令分析代码;确定从零寄存器到目标地址的偏移量;将零寄存器作为基地址寄存器,根据基地址寄存器和偏移量构建跳转指令,以便在需要执行指令分析代码时通过执行跳转指令直接跳转到目标地址

[0007]可选地,在根据本专利技术的方法中,根据搜索地址指针从程序地址空间的低位开始,依次判断指针当前指向地址是否被使用包括:若第一指针当前指向地址被使用,则设置搜索地址指针所指向的地址增加一个内存页的大小;根据设置后的搜索地址指针判断指针当前指向地址是否被使用

[0008]可选地,在根据本专利技术的方法中,还包括:判断指针当前指向地址是否为第0页内存;若指针当前指向地址为第0页内存,则跳过指针当前指向地址,设置搜索地址指针所指向的地址增加一个内存页的大小

[0009]可选地,在根据本专利技术的方法中,还包括:判断搜索地址指针所指向的地址是否超出搜索范围;若超出搜索范围,则终止搜索过程

[0010]可选地,在根据本专利技术的方法中,搜索范围根据指令立即数最大偏移量确定

[0011]可选地,在根据本专利技术的方法中,指令分析代码适于对二进制指令执行的过程进行分析

[0012]可选地,在根据本专利技术的方法中,执行跳转指令,跳转到目标地址包括:将跳转指
令存储到指令寄存器中的指令所指向的地址;执行指令寄存器中的指令跳转到目标地址

[0013]根据本专利技术的第二方面,提供了一种指令分析方法,包括:在应用的二进制指令中,植入构建的跳转指令;当应用运行到跳转指令时,根据跳转指令跳转到目标地址;执行植入的指令分析代码

[0014]根据本专利技术的第三方面,提供了一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中,一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本专利技术的代码植入及指令构建方法和指令分析方法的指令

[0015]根据本专利技术的第四方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,该指令当由计算设备执行时,使得计算设备执行根据本专利技术的代码植入及指令构建方法和指令分析方法

[0016]本专利技术中的代码植入及指令构建方法,适于在计算设备中执行,计算设备在运行应用时将物理地址映射为连续的虚拟地址,得到程序地址空间,方法包括:设置搜索地址指针;根据搜索地址指针从程序地址空间的低位开始,依次判断指针当前指向地址是否被使用;若未被使用,则将指针当前指向地址作为目标地址,在目标地址中植入指令分析代码;确定从零寄存器到目标地址的偏移量;将零寄存器作为基地址寄存器,根据基地址寄存器和偏移量构建跳转指令,以便在需要执行指令分析代码时通过执行跳转指令直接跳转到目标地址

本专利技术使用零寄存器作为基址寄存器,避免了装载基地址到寄存器的操作,减少了指令数;提供了在基地址范围内查找空闲地址空间的方法,在此位置植入代码逻辑,可以通过基于零寄存器的跳转指令从任意位置跳转过去执行

附图说明
[0017]为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内

通过结合附图阅读下面的详细描述,本专利技术公开的上述以及其他目的

特征和优势将变得更加明显

遍及本公开,相同的附图标记通常指代相同的部件或元素

[0018]图1示出了根据本专利技术一个示范性实施例的代码植入及指令构建方法
100
的示意图;图2示出了根据本专利技术一个示范性实施例的计算设备
200
的结构框图;图3示出了根据本专利技术一个示范性实施例的构建跳转指令的示意图;图4示出了根据本专利技术一个示范性实施例的指令分析方法
400
的示意图

具体实施方式
[0019]下面将参照附图更详细地描述本公开的示例性实施例

虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制

相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员

相同的附图标记通常指代相同的部件或元素

[0020]图1示出了根据本专利技术一个示范性实施例的代码植入及指令构建方法
100
的示意


本专利技术的代码植入及指令构建方法
100
适于在计算设备中执行

[0021]图2示出了根据本专利技术一个示范性实施例的计算设备
200
的结构框图

在基本配置中,计算设备
200
包括至少一个处理单元
220
和系统存储器
210。
根据一个方面,取决于计算设备的配置和类型,系统存储器
210
包括但不限于易失性存储
(
例如,随机存取存储器
)、
非易失性存储
(
例如,只读存储器
)、
...

【技术保护点】

【技术特征摘要】
1.
一种代码植入及指令构建方法,适于在计算设备中执行,所述计算设备在运行应用时将物理地址映射为连续的虚拟地址,得到程序地址空间,其特征在于,所述方法包括:设置搜索地址指针;根据所述搜索地址指针从所述程序地址空间的低位开始,依次判断指针当前指向地址是否被使用;若未被使用,则将所述指针当前指向地址作为目标地址,在所述目标地址中植入指令分析代码;确定从零寄存器到目标地址的偏移量;将所述零寄存器作为基地址寄存器,根据所述基地址寄存器和所述偏移量构建跳转指令,以便在需要执行所述指令分析代码时通过执行所述跳转指令直接跳转到目标地址
。2.
如权利要求1所述的方法,其特征在于,所述根据所述搜索地址指针从所述程序地址空间的低位开始,依次判断指针当前指向地址是否被使用包括:若所述指针当前指向地址被使用,则设置搜索地址指针所指向的地址增加一个内存页的大小;根据设置后的搜索地址指针判断指针当前指向地址是否被使用
。3.
如权利要求1或2所述的方法,其特征在于,所述方法还包括:判断指针当前指向地址是否为第0页内存;若指针当前指向地址为第0页内存,则跳过指针当前指向地址,设置搜索地址指针所指向的地址增加一个内存页的大小
。4.
如权利要求1所述的方法,其特...

【专利技术属性】
技术研发人员:钟俊
申请(专利权)人:武汉深之度科技有限公司
类型:发明
国别省市:

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

1