一种内存越界检测方法技术

技术编号:39837199 阅读:7 留言:0更新日期:2023-12-29 16:22
本发明专利技术公开一种内存越界检测方法

【技术实现步骤摘要】
一种内存越界检测方法、装置、设备以及存储介质


[0001]本专利技术涉及计算机
,具体为一种内存越界检测方法

装置

设备以及存储介质


技术介绍

[0002]底层软件开发中经常会发生内存越界问题,从而导致程序运行过程中存在隐患

现有技术中可以采用调试工具检测内存是否越界,但是搭建复杂的调试环境所需的时间较长,导致内存越界的检测过程中存在检测成本较高,实时性较差等缺陷;且不是所有系统和程序都能支持这些调试工具进行内存检测,调试工具在各个平台上移植的代价较高从而导致内存越界的检测过程复杂


技术实现思路

[0003]有鉴于现有技术的上述缺陷,本专利技术所要解决的技术问题是如何提高内存检测的便利性和实时性

[0004]为了解决上述提出的至少一个技术问题,本专利技术公开了一种内存越界检测方法

装置

设备以及存储介质

[0005]根据本公开的一方面,提供了一种内存越界检测方法,包括:
[0006]确定待检测内存区块;所述待检测内存区块包括区块头部

写操作内存空间以及内存标识空间;所述区块头部用于存放区块描述信息;所述内存标识空间中存储有第一数值;所述第一数值基于对所述待检测内存区块对应的区块描述信息进行加密得到;
[0007]获取所述待检测内存区块对应的第二数值;所述第二数值基于对所述待检测内存区块对应的区块描述信息进行加密得到;
[0008]从所述内存标识空间获取当前时刻的第一数值;
[0009]在所述当前时刻的第一数值与所述第二数值不相等的情况下,确定所述待检测内存区块的写操作越界

[0010]在一些可能的实施例中,所述确定待检测内存区块之前,所述方法包括:
[0011]设置定时单元的预设运行周期;
[0012]基于所述预设运行周期对所述定时单元进行运行超时检测,得到超时检测结果;
[0013]在所述超时检测结果指示所述定时单元运行超时的情况下,执行内存区块越界检测

[0014]在一些可能的实施例中,所述确定待检测内存区块之前,所述方法包括:
[0015]从内存池中确定空闲内存;
[0016]基于所述区块内存大小以及所述链表节点信息生成内存分配请求;
[0017]基于所述内存分配请求对所述空闲内存进行区块分配处理,得到至少一个内存区块

[0018]在一些可能的实施例中,所述得到至少一个内存区块之后,所述方法还包括:
[0019]获取所述区块描述信息;所述区块描述信息还包括区块运行数据;
[0020]基于硬件加密单元对所述区块内存大小

所述链表节点信息以及所述区块运行数据进行数据处理,得到所述加密数据;
[0021]将所述加密数据作为所述第一数值写入所述内存标识空间;将所述加密数据作为所述第二数值写入安全内存单元

[0022]在一些可能的实施例中,所述方法还包括:
[0023]在所述第一数值等于所述第二数值的情况下,确定下一个内存区块;所述下一个内存区块的内存地址与所述待检测内存区块的内存地址相邻;
[0024]对所述下一个内存区块进行工作状态检测,得到状态检测结果;所述状态检测结果用于表征所述下一个内存区块的工作状态;
[0025]在所述状态检测结果指示所述下一个内存区块处于工作状态的情况下,确定所述下一个内存区块为所述待检测内存区块

[0026]在一些可能的实施例中,所述确定下一个内存区块,包括:
[0027]对与所述待检测内存区块对应的内存地址相邻的下一个内存地址进行区块存在检测,得到区块检测结果;
[0028]在所述区块检测结果指示所述下一个内存地址对应的所述下一个内存区块存在的情况下,确定所述下一个内存区块

[0029]在一些可能的实施例中,所述方法还包括:
[0030]在所述区块检测结果指示所述下一个内存地址对应的所述下一个内存区块不存在的情况下,重新确定所述定时单元的预设运行周期

[0031]根据本公开的第二方面,提供了一种内存越界检测装置,所述装置包括:
[0032]区块获取模块,用于确定待检测内存区块;所述待检测内存区块包括区块头部

写操作内存空间以及内存标识空间;所述区块头部用于存放区块描述信息;所述内存标识空间中存储有第一数值;所述第一数值基于对所述待检测内存区块对应的区块描述信息进行加密得到;
[0033]第一数据获取模块,用于获取所述待检测内存区块对应的第二数值;所述第二数值为基于对所述待检测内存区块对应的区块描述信息进行加密得到;
[0034]第二数据获取模块,用于从所述内存标识空间获取当前时刻的第一数值;
[0035]越界判断模块,用于在所述当前时刻的第一数值与所述第二数值不相等的情况下,确定所述待检测内存区块的写操作越界

[0036]根据本公开的第三方面,提供一种电子设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令和至少一段程序,所述至少一条指令和所述至少一段程序由所述处理器加载并执行以实现如上所述的内存越界检测方法

[0037]根据本公开的第四方面,提供了一种计算机存储介质,所述计算机存储介质中存储有至少一条指令和至少一段程序,所述至少一条指令和所述至少一段程序由处理器加载并执行以实现如上所述的内存越界检测方法

[0038]实施本专利技术,具有如下有益效果:
[0039]本专利技术中,待检测内存区块包括区块头部

写操作内存空间以及内存标识空间,其中区块头部存放区块描述信息,内存标识空间存放第一数值;根据当前区块描述信息确定
第一数值,根据初始区块描述信息确定第二数值,能够保证第一数值和第二数值确定的唯一性;由于在发生内存越界时第一数值会发生变化,因此获取当前时刻的第一数值并将其与第二数值进行比较,通过判断二者是否相等确认内存是否越界,能够提高内存越界检测的便利性以及实时性

附图说明
[0040]为了更清楚地说明本专利技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图

[0041]图1为本专利技术实施例提供的内存越界检测方法对应的流程示意图;
[0042]图2为本专利技术实施例提供的越界检测触发对应的流程示意图;
[0043]图3为本专利技术实施例提供的内存区块分配对应的流程示意图;
[0044]图4为本专利技术一种具体实施例提供的内存区块对应的结构示意图;
...

【技术保护点】

【技术特征摘要】
1.
一种内存越界检测方法,其特征在于,包括:确定待检测内存区块;所述待检测内存区块包括区块头部

写操作内存空间以及内存标识空间;所述区块头部用于存放区块描述信息;所述内存标识空间中存储有第一数值;所述第一数值基于对所述待检测内存区块对应的区块描述信息进行加密得到;获取所述待检测内存区块对应的第二数值;所述第二数值基于对所述待检测内存区块对应的区块描述信息进行加密得到;从所述内存标识空间获取当前时刻的第一数值;在所述当前检测时刻的第一数值与所述第二数值不相等的情况下,确定所述待检测内存区块的写操作越界
。2.
根据权利要求1所述的一种内存越界检测方法,其特征在于,所述确定待检测内存区块之前,所述方法包括:设置定时单元的预设运行周期;基于所述预设运行周期对所述定时单元进行运行超时检测,得到超时检测结果;在所述超时检测结果指示所述定时单元运行超时的情况下,执行内存区块越界检测
。3.
根据权利要求1所述的一种内存越界检测方法,其特征在于,所述区块描述信息包括区块内存大小以及链表节点信息;所述确定待检测内存区块之前,所述方法包括:从内存池中确定空闲内存;基于所述区块内存大小以及所述链表节点信息生成内存分配请求;基于所述内存分配请求对所述空闲内存进行区块分配处理,得到至少一个内存区块
。4.
根据权利要求3所述的一种内存越界检测方法,其特征在于,所述得到至少一个内存区块之后,所述方法还包括:获取所述区块描述信息;所述区块描述信息还包括区块运行数据;基于硬件加密单元对所述区块内存大小

所述链表节点信息以及所述区块运行数据进行数据处理,得到所述加密数据;将所述加密数据作为所述第一数值写入所述内存标识空间;将所述加密数据作为所述第二数值写入安全内存单元
。5.
根据权利要求1所述的一种内存越界检测方法,其特征在于,所述方法还包括:在所述第一数值等于所述第二数值的情况下,确定下一个内存区块;所述下一个内存区块的内存地址与所述待检测内存区块的内存地址相邻;对所述下一个内存区块进行...

【专利技术属性】
技术研发人员:窦力秦民娄运奇
申请(专利权)人:中汽创智科技有限公司
类型:发明
国别省市:

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

1