[發明專利]一種內存檢測工具的實現方法有效
| 申請號: | 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.szxzyx.cn/pat/books/201910745666.2/2.html,轉載請聲明來源鉆瓜專利網。





