[发明专利]一种内存检测工具的实现方法有效
申请号: | 201910745666.2 | 申请日: | 2019-08-13 |
公开(公告)号: | CN110489291B | 公开(公告)日: | 2021-09-07 |
发明(设计)人: | 曾涛;潘建新 | 申请(专利权)人: | 晶晨半导体(上海)股份有限公司 |
主分类号: | G06F11/22 | 分类号: | G06F11/22 |
代理公司: | 上海申新律师事务所 31272 | 代理人: | 俞涤炯 |
地址: | 201203 上海市浦东新区中国*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 检测工具 实现 方法 | ||
本发明提供一种内存检测工具的实现方法,提供内核检测工具,处理器提供用户区间和系统区间,系统区间被划分为多个区域,区域包括动态内存区域、模块区域、内核区域和固定映射区域;内核区域设置有内核代码区域,内核代码区域的尾地址与模块区域的首地址之间的地址空间小于32MB;于用户区间中划分连续的地址空间为内核检测区域,内核检测区域设置在用户区间和系统区间的交界处;将内核检测区域设置为系统区间的映射区域,内存检测工具根据系统当前运行的程序代码中的检测标志检测内核检测区域中对应当前程序代码所在的内存地址的位置来判断当前的内存访问是否合法。本发明的有益效果:使得32位ARM架构可以支持内存检测工具。
技术领域
本发明涉及内存检测技术领域,尤其涉及一种内存检测工具的实现方法。
背景技术
KASAN(Kernel Address Sanitizer),是Linux内核中的一个动态的内存检测工具,能够在运行态下检测全局变量、堆、栈等数据中存在的越界访问(out-of-bounds)、释放后访问(use-after-free)、内核对用户空间的非法访问等多种内存异常错误,并且能给出详细的错误报告,包括异常访问的函数、调用栈、异常地址等信息,便于程序调试(debug)。
现有技术中的KASAN在4.4版本的Linux内核被合入mainline(Linux内核发展的主线)。此外,KASAN的编译也至少需要GCC 4.9.2版本以上的编译器支持。但是要支持更多的KASAN特性,需要使用5.0以上版本的GCC编译器。
“影子内存”也是内核空间可以访问的一部分内存,因此“影子内存”也需要被映射到内核地址空间上去。以64位ARM(Advanced RISC Machines)架构处理器为例,启动boot程序的时候可以KASAN地址空间划分,如图1所示。
需要说明的是,“影子内存”是可用内存的1/8,因此可以根据“影子内存”和可用内存的比例关系得知一个字节的影子内存可以标记八个字节的可用内存访问状态。现有技术中的影子内存的标记状态一般有:
1、用0表示从当前地址开始连续8个字节的内存都是可以访问的;
2、N=1~7表示从当前地址开始的连续N个字节的内存是可以访问的,剩余的字节数是不可访问的3、负数表示整个8个字节都不可访问。
通常可以定义多种负数值来表示这部分内存的状态,例如:
#define KASAN_FREE_PAGE 0xFF/*page was freed*/
#define KASAN_PAGE_REDZONE 0xFE/*redzone forkmalloc_largeallocations*/
#define KASAN_KMALLOC_REDZONE 0xFC/*redzone inside slubobject*/
#define KASAN_KMALLOC_FREE 0xFB/*object was freed(kmem_cache_free/kfree)*/
#define KASAN_GLOBAL_REDZONE 0xFA/*redzone for globalvariable*/
上述定义以char(占一个字节内存)类型来解释就是数字-1、-2、-4、-5、-6。分别表示对应内存页的释放以及red zone的各种状态。根据“影子内存”中的这些状态标记可以知道内核对该内存地址的访问是否合法。
如图3所示,地址段0xffffffc010000000~0xffffffc010000007这8个字节对应的“内核检测区域”值是0x00,说明内核对0xffffffc010000000开始的8个字节都是可以访问的;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于晶晨半导体(上海)股份有限公司,未经晶晨半导体(上海)股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910745666.2/2.html,转载请声明来源钻瓜专利网。