[發明專利]內存越界檢測方法、裝置、設備及介質有效
| 申請號: | 202211305648.0 | 申請日: | 2022-10-24 |
| 公開(公告)號: | CN115373964B | 公開(公告)日: | 2023-01-20 |
| 發明(設計)人: | 王慧;王喆;曾林;胡文彬;吳甜甜 | 申請(專利權)人: | 北京智芯微電子科技有限公司 |
| 主分類號: | G06F11/34 | 分類號: | G06F11/34;G06F11/32;G06F9/50;G06F12/02;G06F12/06 |
| 代理公司: | 北京智信四方知識產權代理有限公司 11519 | 代理人: | 劉真 |
| 地址: | 100192 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 越界 檢測 方法 裝置 設備 介質 | ||
本公開實施例公開了一種內存越界檢測方法、裝置、設備及介質,該方法包括:確定包括系統可用內存中一部分內存的內存池,該內存池包括至少一個正常頁和位于每個正常頁兩側的保護頁;將內存池中的至少一個正常頁分配給目標程序;響應于分配給目標程序的任一個正常頁兩側的保護頁被越界程序訪問,獲取用于指示越界程序的越界程序指示信息,以及用于指示被越界程序訪問的保護頁的越界訪問保護頁指示信息。通過設置內存容量固定、且正常頁和保護頁交替分布以用于進行內存越界檢測的內存池,使得在對內存越界實現檢測的前提下,減少內存消耗,避免了內存浪費。
技術領域
本公開涉及計算機技術領域,具體涉及一種內存越界檢測方法、裝置、設備及介質。
背景技術
內存越界,又稱為內存訪問越界,指應用程序對內存的訪問不在合法的界限內,是軟件系統的主要錯誤之一。若對越界的內存進行讀操作,讀取的結果具有隨機性且無法預知,而若對越界的內存進行寫操作,寫入的結果可能會破壞其它數據。換言之,對于底層系統的內存越界,其后果往往不可預料且非常嚴重。因此,對內存越界的檢測成為業內被關注的熱點。
目前,業內對內存越界的檢測可通過如下一種方式實現:在有程序申請內存時,中央處理器(central prcessing unit,CPU)為其分配對應的內存,并在該內存的最前端和最后端額外增加保護頁,以及將保護頁的屬性設置為禁止訪問。當該程序在訪問內存時,若訪問到了該內存前后的保護頁時,就可確定該程序進行了非法訪問,從而對其定位,比如確定出該程序的訪問路徑等。然而,在程序頻繁申請內存時,CPU就需要不斷地為程序重新分配內存,也就是不斷地為內存的最前端和最后端額外申請增加保護頁,而每個保護頁都對應一定的內存,在所申請的保護頁的數量眾多時,就會額外消耗過多內存,導致內存浪費。
因此,在對內存越界進行檢測時,如何避免內存浪費,成為一項亟待解決的技術問題。
發明內容
為了解決相關技術中的問題,本公開實施例提供一種內存越界檢測方法、裝置、設備及介質。
第一方面,本公開實施例中提供了一種內存越界檢測方法。
具體地,所述內存越界檢測方法,包括:
確定包括系統可用內存中一部分內存的內存池,所述內存池包括至少一個正常頁和位于每個正常頁兩側的保護頁;
將所述內存池中的至少一個正常頁分配給目標程序;
響應于分配給所述目標程序的任一個正常頁兩側的保護頁被越界程序訪問,獲取用于指示所述越界程序的越界程序指示信息,以及用于指示被所述越界程序訪問的保護頁的越界訪問保護頁指示信息。
在本公開的一種實現方式中,所述確定包括系統可用內存中一部分內存的內存池,包括:
確定當前系統可用內存的內存容量,并根據所述當前系統可用內存的內存容量以及內存池容量比,獲取所述內存池的內存容量,所述內存池容量比小于1;
根據所述內存池的內存容量,以及預設的正常頁內存容量與保護頁內存容量,確定所述內存池。
在本公開的一種實現方式中,所述將所述內存池中的至少一個正常頁分配給目標程序,包括:
獲取上一次分配所述內存池中的至少一個正常頁的正常頁分配時刻;
響應于當前時刻與所述正常頁分配時刻之間的時間差大于或等于時間差閾值,將所述內存池中的至少一個正常頁分配給所述目標程序。
在本公開的一種實現方式中,所述響應于當前時刻與所述正常頁分配時刻之間的時間差大于或等于時間差閾值,將所述內存池中的至少一個正常頁分配給所述目標程序,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京智芯微電子科技有限公司,未經北京智芯微電子科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211305648.0/2.html,轉載請聲明來源鉆瓜專利網。





