[發明專利]一種基于虛擬機自省技術的API動態監控方法及系統有效
申請號: | 202110367511.7 | 申請日: | 2021-04-06 |
公開(公告)號: | CN113176926B | 公開(公告)日: | 2023-09-05 |
發明(設計)人: | 丁振全;郝志宇;屈天恒;程豐;劉永繼;秦文雨 | 申請(專利權)人: | 中國科學院信息工程研究所 |
主分類號: | G06F9/455 | 分類號: | G06F9/455 |
代理公司: | 北京君尚知識產權代理有限公司 11200 | 代理人: | 司立彬 |
地址: | 100093 *** | 國省代碼: | 北京;11 |
權利要求書: | 查看更多 | 說明書: | 查看更多 |
摘要: | |||
搜索關鍵詞: | 一種 基于 虛擬機 自省 技術 api 動態 監控 方法 系統 | ||
1.一種基于虛擬機自省技術的API動態監控方法,其步驟包括:
1)策略加載模塊讀取并解析設定的監控策略配置文件,獲取所需監控的API以及API所屬的動態鏈接庫DLL;其中,策略加載模塊讀取并解析設定的監控策略配置文件的方法為:
1-1)讀取監控策略配置文件,獲取所需監控的API及所屬的動態鏈接庫DLL;
1-2)初始化需監控API與其地址及狀態的第一哈希表,初始化所需監控的API與其所屬的動態鏈接庫DLL的第二哈希表;
1-3)根據當前操作系統內核文件ntoskrnl.exe對應的程序數據庫文件PDB,獲取操作系統進程鏈的頭節點地址,進程鏈的每個節點對應一個EPROCESS結構體,每個EPROCESS結構體對應操作系統中的一個進程,EPROCESS結構體內部包含進程的進程ID、進程頁目錄表基址、進程名和磁盤文件存儲位置信息;
1-4)在EPROCESS結構體中根據被監控操作系統EPROCESS成員偏移查找該EPROCESS結構體對應進程的PEB結構體;
1-5)從進程的PEB結構體按照被監控操作系統PEB成員偏移找到進程的PEB_LDR_DATA結構體;
1-6)遍歷PEB_LDR_DATA雙向鏈表,取出已映射到當前進程中的各DLL的虛擬基址;
1-7)對已映射入操作系統內存的DLL,查詢所述第二哈希表尋找所需監控的API函數,然后根據程序數據庫文件PDB獲取API函數相對于DLL基址的偏移;將此偏移加上API函數所屬DLL的虛擬基址,得到所需監控API函數的虛擬地址并對該API函數進行監控;
1-8)若監控成功,則更新該API函數的狀態與地址;若不成功則保持原有狀態不變;
2)遍歷已加載到系統內存的動態鏈接庫,調用監控設置模塊對已加載到內存中且需要監控的API進行監控;對未加載入系統內存的動態鏈接庫進行監控,當其載入系統內后,動態監控模塊將其交于策略加載模塊進行判斷,確認是否是需要監控的動態鏈接庫,如果是,則調用監控設置模塊對該動態鏈接庫內需要監控的API函數進行監控;
3)當所需監控API函數被觸發后,語義轉換模塊對當前操作系統內存進行解析,提取出當前進程、進程ID、當前線程、線程ID、當前進程名、所調用API、所屬動態鏈接庫信息,并寫入日志。
2.如權利要求1所述的方法,其特征在于,監控設置模塊對需要監控的API進行監控的方法為:
2-1)獲取所需監控API函數的虛擬地址與當前進程的EPROCESS結構體地址;
2-2)從EPROCESS結構體地址中根據被監控操作系統EPROCESS成員偏移取出當前進程的頁目錄表基址;
2-3)根據進程的頁目錄表基址找到進程的頁目錄表,根據所述虛擬地址依次查詢多級頁表,尋找所述虛擬地址對應的物理地址;
2-4)如果未找到物理地址,則將CR2寄存器裝入虛擬地址,觸發系統換頁機制,并將對應內存頁重新換入內存;
2-5)重復步驟2-3),再次查詢所述虛擬地址對應物理地址,找到所述虛擬地址對應的物理地址;
2-6)監控所述虛擬地址對應的物理地址,保存對應位置的機器碼,生成一個中斷事件并返回監控設置狀態。
3.如權利要求2所述的方法,其特征在于,語義轉換模塊對當前操作系統內存進行解析的方法為:
3-1)取出一個中斷事件,同時暫停被監控操作系統;
3-2)根據該中斷事件中保存的觸發事件的物理地址查找第一哈希表,確定對應的API;
3-3)獲取該API的調用參數并對其進行還原,得到原始參數并保存到緩沖區;
3-4)對被監控操作系統內核模塊的PDB文件進行解析,獲取操作系統的KPCR結構體地址,找到對應KPRCB結構體,根據KPRCB結構體偏移從該KPRCB結構體中找到當前運行線程的KTHREAD結構體;然后從KTHREAD結構體與EPROCESS結構體中讀取觸發該中斷事件的進程、線程相關信息;
3-5)將步驟3-3)、3-4)獲取的信息寫入數據庫,并恢復虛擬機運行。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院信息工程研究所,未經中國科學院信息工程研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110367511.7/1.html,轉載請聲明來源鉆瓜專利網。