本技術涉及計算機處理,尤其涉及一種智能汽車操作系統的內存讀寫越界檢測方法、裝置和設備。
背景技術:
1、內存又可以叫做主存,用于存放cpu(central?processing?unit,中央處理器)中的運算數據以及硬盤等外部存儲設備交換的數據,是可以被cpu直接尋址的存儲空間。在大多數編程語言中,內存是以數組的形式進行管理的,其中每個元素都在內存中占據一定的連續空間;當需要訪問數據元素時,程序會根據索引計算出要訪問的內存地址,并讀取或寫入相應位置的值。
2、當程序訪問了超出其被分配的內存范圍的位置,就會出現內存越界的情況;內存越界是一種常見的編程錯誤,它可能導致程序崩潰、未定義的行為、數據損壞以及安全漏洞等問題。在現有技術中,memwatch、dmalloc、glibc-mcheck等工具都可以對內存越界問題是否存在進行檢測;其中,memwatch、dmalloc和glibc-mcheck的實現機制是通過重載(malloc、free等)來攔截對內存的分配和釋放,同時在每個分配的內存塊前后增加一個額外的保護區域,該區域被填充了一些特殊字符,當訪問內存越界時,上述內存區域的內容就會被破壞,從而在內存釋放或者主動調用內存檢測接口時,如果發現該保護區域的內容不是特殊填充字符內容時,就上報錯誤信息。
3、然而,進程使用該方法時需要通過鏈接其動態庫或靜態庫,因此,進程運行的整個周期都會使用其提供的內存分配和釋放方法,用戶無法自定義內存越界檢測的范圍,其靈活性較差;通過在free或者主動調用內存檢測接口的方法去探測保護區域的填充字符,無法捕獲第一越界現場,從而只能知道有內存越界,但無法定位發生問題的位置。
技術實現思路
1、本技術提供一種智能汽車操作系統的內存讀寫越界檢測方法、裝置和設備,用以解決內存越界問題發生時,無法捕獲第一越界現場以及用戶無法自定義內存越界檢測范圍的缺陷。
2、第一方面,本技術提供一種智能汽車操作系統的內存讀寫越界檢測方法,包括:
3、獲取目標用戶的可執行文件和預設環境變量;
4、根據所述預設環境變量,確定所述可執行文件的越界檢測模式,并按照所述越界檢測模式生成與所述可執行文件對應的目標保護頁,所述目標保護頁用于檢測內存讀寫是否存在越界;
5、根據所述目標保護頁和所述可執行文件,確定目標可執行文件以及與所述目標可執行文件對應的目標內存空間;
6、將所述目標可執行文件存儲至所述目標內存空間,并對所述目標可執行文件是否存在內存讀寫越界進行檢測。
7、可選的,所述根據所述預設環境變量,確定所述可執行文件的越界檢測模式,并按照所述越界檢測模式生成與所述可執行文件對應的目標保護頁,包括:
8、判斷所述預設環境變量是否滿足上溢環境變量;
9、若所述預設環境變量滿足上溢環境變量,則確定所述可執行文件的越界檢測模式為上溢檢測模式,所述上溢檢測模式用于指示所述保護頁設置在所述可執行文件之前;
10、按照所述上溢檢測模式生成與所述可執行文件對應的上溢保護頁,并將所述上溢保護頁確定為目標保護頁;
11、若所述預設環境變量不滿足上溢環境變量,則確定所述可執行文件的越界檢測模式為下溢檢測模式,所述下溢檢測模式用于指示所述保護頁設置在所述可執行文件之后;
12、按照所述下溢檢測模式生成與所述可執行文件對應的下溢保護頁,并將所述下溢保護頁確定為目標保護頁。
13、可選的,在所述獲取目標用戶的可執行文件和預設環境變量之前,所述方法還包括:
14、獲取可用內存空間,所述可用內存空間用于指示操作系統可進行文件存儲的空間;
15、對所述可用內存空間進行分配處理,得到內存管理空間和內存分配空間,所述內存管理空間用于存儲對應文件的內存地址及大小,所述內存分配區間用于存儲所述目標用戶的可執行文件;
16、對所述內存管理空間進行劃分處理,得到多個內存信息子空間,并對所述多個內存信息子空間進行標記,所述內存信息子空間用于存儲不同可執行文件的內存地址及大小。
17、可選的,所述根據所述目標保護頁和所述可執行文件,確定目標可執行文件以及與所述目標可執行文件對應的目標內存空間,包括:
18、根據所述可執行文件,確定與所述可執行文件對應的目標文件大小和目標存儲內容;
19、根據所述目標文件大小和所述目標保護頁,確定所述可執行文件所需的內存存儲空間;
20、根據所述目標存儲內容和所述目標保護頁,確定所述目標用戶的目標可執行文件;
21、根據所述內存存儲空間,確定所述目標可執行文件對應的目標內存空間。
22、可選的,在所述將所述目標可執行文件存儲至所述目標內存空間之前,所述方法還包括:
23、分別獲取所述多個內存信息子空間的標記信息,所述標記信息包括:空閑信息;
24、按照所述空閑信息對所述多個內存信息子空間進行篩選處理,得到目標內存信息子空間;
25、根據所述目標內存信息子空間,確定所述目標可執行文件的存儲地址,并生成與所述目標可執行文件對應的目標存儲信息;
26、將所述目標存儲信息存儲至所述目標內存信息子空間。
27、可選的,所述方法還包括:
28、重新獲取目標用戶的可執行文件,并根據新的可執行文件,確定新的目標可執行文件和新的目標存儲空間;
29、分別獲取所述多個內存信息子空間的標記信息,并對所述標記信息進行分析處理;
30、若不存在所述標記信息為所述空閑信息的目標內存信息子空間,則根據所述內存分配空間,確定新的內存管理空間,并將與所述內存管理空間對應的存儲信息發送至新的內存管理空間;
31、根據所述新的目標可執行文件和所述新的內存管理空間,確定新的目標內存信息子空間;
32、按照所述新的目標內存信息子空間對所述新的可執行文件的存儲信息進行存儲;
33、所述方法還包括:
34、重新獲取目標用戶的可執行文件,并根據新的可執行文件,確定新的目標可執行文件;
35、若所述內存分配空間無法滿足所述新的目標可執行文件的存儲,則重新獲取可用內存空間,并確定與所述新的目標可執行文件對應的新的目標存儲空間;
36、將所述新的目標可執行文件存儲至所述新的目標存儲空間。
37、可選的,所述對所述目標可執行文件是否存在內存讀寫越界進行檢測,包括:
38、對所述目標可執行文件的目標保護頁進行實時檢測;
39、實時獲取所述目標保護頁的訪問情況,所述訪問情況包括:未訪問和已訪問;
40、若所述目標保護頁的訪問情況為未訪問,則確定所述目標可執行文件不存在內存讀寫越界;
41、若所述目標保護頁的訪問情況為已訪問,則確定所述目標可執行文件存在內存讀寫越界。
42、第二方面,本技術提供一種智能汽車操作系統的內存讀寫越界檢測裝置,包括:
43、獲取模塊,用于獲取目標用戶的可執行文件和預設環境變量。
44、確定模塊,用于根據所述預設環境變量,確定所述可執行文件的越界檢測模式。
45、生成模塊,用于按照所述越界檢測模式生成與所述可執行文件對應的目標保護頁,所述目標保護頁用于檢測內存讀寫是否存在越界。
46、所述確定模塊,還用于根據所述目標保護頁和所述可執行文件,確定目標可執行文件以及與所述目標可執行文件對應的目標內存空間。
47、處理模塊,用于將所述目標可執行文件存儲至所述目標內存空間,并對所述目標可執行文件是否存在內存讀寫越界進行檢測。
48、可選的,所述智能汽車操作系統的內存讀寫越界檢測裝置還包括:判斷模塊。
49、所述判斷模塊,用于判斷所述預設環境變量是否滿足上溢環境變量。
50、若所述預設環境變量滿足上溢環境變量,則所述確定模塊,還用于確定所述可執行文件的越界檢測模式為上溢檢測模式,所述上溢檢測模式用于指示所述保護頁設置在所述可執行文件之前。
51、所述生成模塊,還用于按照所述上溢檢測模式生成與所述可執行文件對應的上溢保護頁。
52、所述確定模塊,還用于將所述上溢保護頁確定為目標保護頁。
53、若所述預設環境變量不滿足上溢環境變量,則所述確定模塊,還用于確定所述可執行文件的越界檢測模式為下溢檢測模式,所述下溢檢測模式用于指示所述保護頁設置在所述可執行文件之后。
54、所述生成模塊,還用于按照所述下溢檢測模式生成與所述可執行文件對應的下溢保護頁。
55、所述確定模塊,還用于將所述下溢保護頁確定為目標保護頁。
56、可選的,所述獲取模塊,還用于獲取可用內存空間,所述可用內存空間用于指示操作系統可進行文件存儲的空間。
57、所述處理模塊,還用于對所述可用內存空間進行分配處理,得到內存管理空間和內存分配空間,所述內存管理空間用于存儲對應文件的內存地址及大小,所述內存分配區間用于存儲所述目標用戶的可執行文件。
58、所述處理模塊,還用于對所述內存管理空間進行劃分處理,得到多個內存信息子空間,并對所述多個內存信息子空間進行標記,所述內存信息子空間用于存儲不同可執行文件的內存地址及大小。
59、可選的,所述確定模塊,還用于根據所述可執行文件,確定與所述可執行文件對應的目標文件大小和目標存儲內容。
60、所述確定模塊,還用于根據所述目標文件大小和所述目標保護頁,確定所述可執行文件所需的內存存儲空間。
61、所述確定模塊,還用于根據所述目標存儲內容和所述目標保護頁,確定所述目標用戶的目標可執行文件。
62、所述確定模塊,還用于根據所述內存存儲空間,確定所述目標可執行文件對應的目標內存空間。
63、可選的,所述獲取模塊,還用于分別獲取所述多個內存信息子空間的標記信息,所述標記信息包括:空閑信息。
64、所述處理模塊,還用于按照所述空閑信息對所述多個內存信息子空間進行篩選處理,得到目標內存信息子空間。
65、所述確定模塊,還用于根據所述目標內存信息子空間,確定所述目標可執行文件的存儲地址。
66、所述生成模塊,還用于生成與所述目標可執行文件對應的目標存儲信息。
67、所述處理模塊,還用于將所述目標存儲信息存儲至所述目標內存信息子空間。
68、可選的,所述獲取模塊,還用于重新獲取目標用戶的可執行文件。
69、所述確定模塊,還用于根據新的可執行文件,確定新的目標可執行文件和新的目標存儲空間。
70、所述獲取模塊,還用于分別獲取所述多個內存信息子空間的標記信息。
71、所述處理模塊,還用于對所述標記信息進行分析處理。
72、若不存在所述標記信息為所述空閑信息的目標內存信息子空間,則所述確定模塊,還用于根據所述內存分配空間,確定新的內存管理空間。
73、所述處理模塊,還用于將與所述內存管理空間對應的存儲信息發送至新的內存管理空間。
74、所述確定模塊,還用于根據所述新的目標可執行文件和所述新的內存管理空間,確定新的目標內存信息子空間。
75、所述處理模塊,還用于按照所述新的目標內存信息子空間對所述新的可執行文件的存儲信息進行存儲。
76、所述確定模塊,還用于根據新的可執行文件,確定新的目標可執行文件。
77、若所述內存分配空間無法滿足所述新的目標可執行文件的存儲,則所述獲取模塊,還用于重新獲取可用內存空間。
78、所述確定模塊,還用于確定與所述新的目標可執行文件對應的新的目標存儲空間。
79、所述處理模塊,還用于將所述新的目標可執行文件存儲至所述新的目標存儲空間。
80、可選的,所述處理模塊,還用于對所述目標可執行文件的目標保護頁進行實時檢測。
81、所述獲取模塊,還用于實時獲取所述目標保護頁的訪問情況,所述訪問情況包括:未訪問和已訪問。
82、若所述目標保護頁的訪問情況為未訪問,則所述確定模塊,還用于確定所述目標可執行文件不存在內存讀寫越界。
83、若所述目標保護頁的訪問情況為已訪問,則所述確定模塊,還用于確定所述目標可執行文件存在內存讀寫越界。
84、第三方面,本技術提供一種智能汽車操作系統的內存讀寫越界檢測設備,包括:
85、存儲器;
86、處理器;
87、其中,所述存儲器存儲計算機執行指令;
88、所述處理器執行所述存儲器存儲的計算機執行指令,以實現如上述第一方面以及第一方面各種可能的實現方式所述的智能汽車操作系統的內存讀寫越界檢測方法。
89、第四方面,本技術提供一種計算機存儲介質,其上存儲有計算機執行指令,所述計算機執行指令被處理器執行以實現如上述第一方面以及第一方面各種可能的實現方式所述的智能汽車操作系統的內存讀寫越界檢測方法。
90、本技術提供的智能汽車操作系統的內存讀寫越界檢測方法,通過獲取目標用戶的可執行文件和預設環境變量,根據該預設環境變量,確定當前進行內存分配的可執行文件的越界檢測模式,并按照該越界檢測模式生成與可執行文件對應的目標保護頁;根據當前確定的目標保護頁和可執行文件,確定目標可執行文件以及與目標可執行文件對應的目標內存空間,將目標可執行文件存儲至對應的目標內存空間,并對目標可執行文件是否存在內存讀寫越界進行檢測。該方法可以對內存檢測起始位置進行靈活安排,從而實現了自定義內存越界檢測范圍,提高了內存越界定位結果的可靠性,實現了對內存越界問題的精準定位,簡化了內存越界問題的定位方法,提高了內存越界問題的定位效率。