一种内存操作的处理方法技术

技术编号:39517091 阅读:6 留言:0更新日期:2023-11-25 18:55
本申请提供一种内存操作的处理方法

【技术实现步骤摘要】
一种内存操作的处理方法、设备及存储介质


[0001]本申请涉及电子
,尤其涉及一种内存操作的处理方法

设备及存储介质


技术介绍

[0002]内存是电子设备中基本且重要的器件之一,内存错误可能会引起运行结果错误,甚至运行程序崩溃

为此,需要通过内存错误检测,以提高程序的正确性

稳定性和安全性

[0003]采用基于编译器的检测工具对内存错误的检测,以保障内存安全,提高系统的稳定性

其中,编译器即为编译程序
(Compiler

compiling program)
,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序

[0004]然而,由于编译器的实现算法较为复杂,在依赖于编译器对内存错误进行检测的过程中,所产生的资源开销较大,进而导致在内存错误检测过程中系统运行效率降低


技术实现思路

[0005]本申请提供的一种内存操作的处理方法

设备及存储介质,目的在于解决在保障内存安全的过程中,由于资源开销较大而导致的系统运行效率低的问题

[0006]为达到上述目的,本申请采用如下技术方案:
[0007]第一方面:本申请提供一种内存操作的处理方法,包括:针对目标操作,获取目标操作对应的内存地址的操作范围,目标操作用于在内存中存储数据;基于安全函数,检测目标操作对应的内存地址的操作范围是否与目标变量的内存匹配,目标变量用于指示在内存中存储数据的数据量标准;当目标操作对应的内存地址的操作范围与目标变量的内存匹配时,执行目标操作,当目标操作对应的内存地址的操作范围与目标变量的内存不匹配时,对目标操作进行拦截

[0008]本申请基于安全函数,对目标操作对应的内存地址的操作范围进行检测,当目标操作对应的内存地址的操作范围与目标变量的内存不匹配时,表示该目标操作存在错误,对该目标操作进行拦截,以避免内存错误的发生,提高系统的稳定性

本申请提供的方法,摆脱了对编译器的依赖,通过安全函数,对目标操作对应的内存地址进行变量检测以及时发现并拦截内存错误,极大程度的减小了资源开销,在提高了嵌入式软件运行安全性的同时,提高了系统运行效率

[0009]在一种可能的实现方式中,目标变量为目标堆变量,基于安全函数,检测目标操作对应的内存地址的操作范围是否与目标变量的内存匹配,包括:基于安全函数,查找与目标操作对应的内存地址匹配的内存块;当查找到内存块时,检测目标操作对应的内存地址的操作范围是否与目标堆变量的字节长度匹配,由此实现堆变量检测

[0010]在一种可能的实现方式中,目标变量为目标静态变量,基于安全函数,检测目标操作对应的内存地址的操作范围是否与目标变量的内存匹配,包括:基于安全函数,查找与目标操作对应的内存地址匹配的节点;当查找到节点时,检测目标操作对应的内存地址的操作范围是否与目标静态变量的内存匹配,由此实现静态变量检测

[0011]在一种可能的实现方式中,目标变量为目标堆变量和目标静态变量,基于安全函数,检测目标操作对应的内存地址的操作范围是否与目标变量的内存匹配,包括:基于安全函数,查找与目标操作对应的内存地址匹配的节点;当查找到节点时,检测目标操作对应的内存地址的操作范围是否与目标静态变量的内存匹配;当目标操作对应的内存地址的操作范围与目标静态变量的内存匹配时,基于安全函数,查找与目标操作对应的内存地址匹配的内存块;当查找到内存块时,检测目标操作对应的内存地址的操作范围是否与目标堆变量的字节长度匹配,由此实现对堆变量和静态变量的检测

[0012]在一种可能的实现方式中,还包括:当未查找到节点时,基于安全函数,查找与目标操作对应的内存地址匹配的内存块;当查找到内存块时,检测目标操作对应的内存地址的操作范围是否与目标堆变量的字节长度匹配

[0013]在一种可能的实现方式中,获取目标操作对应的内存地址的操作范围之前,还包括:对初始的变量进行预处理,获得目标变量

[0014]在一种可能的实现方式中,目标变量为目标堆变量,对初始的变量进行预处理,获得目标变量,包括:在申请初始的堆变量的内存时,在初始的堆变量的节点处增加预设长度的节点信息,获得目标堆变量

[0015]在一种可能的实现方式中,目标变量为目标静态变量,对初始的变量进行预处理,获得目标变量,包括:从初始的静态变量的信息中提取目标信息,获得静态变量的变量信息表,目标信息包括初始的静态变量的变量起始地址和初始的静态变量的变量数据长度;将静态变量的变量信息表,存储至固件中,获得目标静态变量

[0016]第二方面,本申请提供一种电子设备,电子设备包括处理器以及存储器:
[0017]存储器用于存储程序代码,并将程序代码传输给处理器;
[0018]处理器用于根据程序代码中的指令执行如上述第一方面的一种内存操作的处理方法的步骤

[0019]第三方面:本申请提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述第一方面的一种内存操作的处理方法的步骤

附图说明
[0020]图1为本申请实施例提供的一种堆变量的内存操作处理应用场景示意图;
[0021]图2为本申请实施例提供的一种存储视频数据的应用场景示意图;
[0022]图3为本申请实施例提供的一种静态变量的内存操作处理应用场景示意图;
[0023]图4为本申请实施例提供的一种内存操作处理的应用场景示意图;
[0024]图5为本申请实施例提供的一种堆变量的内存操作处理方法的流程图;
[0025]图6为本申请实施例提供的一种额外申请字节长度的示意图;
[0026]图7为本申请实施例提供的一种静态变量的内存操作处理方法的流程图;
[0027]图8为本申请实施例提供的一种生成静态变量信息表的示意图;
[0028]图9为本申请实施例提供的一种内存操作处理方法的流程图;
[0029]图
10
为本申请实施例提供的一种电子设备的结构示意图

具体实施方式
[0030]本申请说明书和权利要求书及附图说明中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序

[0031]在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子

例证或说明

本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势

确切而言,使用“示例性的”或者“例如”等词旨在以具体方式本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种内存操作的处理方法,其特征在于,包括:针对目标操作,获取所述目标操作对应的内存地址的操作范围,所述目标操作用于在内存中存储数据;基于安全函数,检测所述目标操作对应的内存地址的操作范围是否与目标变量的内存匹配,所述目标变量用于指示在内存中存储数据的数据量标准;当所述目标操作对应的内存地址的操作范围与所述目标变量的内存匹配时,执行所述目标操作,当所述目标操作对应的内存地址的操作范围与所述目标变量的内存不匹配时,对所述目标操作进行拦截
。2.
根据权利要求1所述的方法,其特征在于,所述目标变量为目标堆变量,所述基于安全函数,检测所述目标操作对应的内存地址的操作范围是否与目标变量的内存匹配,包括:基于所述安全函数,查找与所述目标操作对应的内存地址匹配的内存块;当查找到所述内存块时,检测所述目标操作对应的内存地址的操作范围是否与所述目标堆变量的字节长度匹配
。3.
根据权利要求1所述的方法,其特征在于,所述目标变量为目标静态变量,所述基于安全函数,检测所述目标操作对应的内存地址的操作范围是否与目标变量的内存匹配,包括:基于所述安全函数,查找与所述目标操作对应的内存地址匹配的节点;当查找到所述节点时,检测所述目标操作对应的内存地址的操作范围是否与所述目标静态变量的内存匹配
。4.
根据权利要求1所述的方法,其特征在于,所述目标变量为目标堆变量和目标静态变量,所述基于安全函数,检测所述目标操作对应的内存地址的操作范围是否与目标变量的内存匹配,包括:基于所述安全函数,查找与所述目标操作对应的内存地址匹配的节点;当查找到所述节点时,检测所述目标操作对应的内存地址的操作范围是否与所述目标静态变量的内存匹配;当所述目标操作对应的内存地址的操作范围与所述目标静态变量的内存匹配时,基于所述安全函数,查找与所述目标操作对应的内存地址匹配的内存块...

【专利技术属性】
技术研发人员:李启明
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

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

1