驅動程序隱藏方法、裝置和設備的制造方法
【專利摘要】本發明公開了一種驅動程序隱藏方法、裝置和設備,所述驅動程序隱藏方法包括以下步驟:操作系統執行驅動程序的入口函數加載所述驅動程序;獲取存儲驅動對象數據的鏈表;將所述鏈表中每個鏈表節點中的驅動對象數據與所述驅動程序進行匹配;如果匹配成功,將與所述驅動程序對應的鏈表節點刪除,以對所述驅動程序進行隱藏處理。本發明實施例的驅動程序隱藏方法,能夠避免惡意程序獲取各種軟件或設備的驅動程序,實現對驅動程序的保護。
【專利說明】
驅動程序隱藏方法、裝置和設備
技術領域
[0001]本發明涉及計算機技術領域,尤其涉及一種驅動程序隱藏方法、裝置和設備。
【背景技術】
[0002]隨著互聯網技術發展,木馬病毒等惡意程序層出不窮,殺毒軟件對惡意程序的對抗技術越來越難。目前,一些惡意程序可對應用程序甚至是殺毒軟件的驅動程序進行篡改或攻擊,導致應用程序或者殺毒軟件無法正常運行。因此,如何保護應用程序的驅動程序,以防止惡意程序對其進行篡改或攻擊,已經成為一個亟需解決的問題。
【發明內容】
[0003]本發明旨在至少在一定程度上解決相關技術中的技術問題之一。為此,本發明第一方面的目的在于提出一種驅動程序隱藏方法,能夠避免惡意程序獲取各種軟件或設備的驅動程序,實現對驅動程序的保護。
[0004]本發明的第二方面的目的在于提出一種驅動程序隱藏裝置。
[0005]本發明的第三方面的目的在于提出一種設備。
[0006]為達上述目的,根據本發明第一方面實施例提出了一種驅動程序隱藏方法,包括以下步驟:操作系統執行驅動程序的入口函數加載所述驅動程序;獲取存儲驅動對象數據的鏈表;將所述鏈表中每個鏈表節點中的驅動對象數據與所述驅動程序進行匹配;如果匹配成功,將與所述驅動程序對應的鏈表節點刪除,以對所述驅動程序進行隱藏處理。
[0007]結合第一方面,在第一方面的第一種實施方式中,所述獲取存儲驅動對象數據的鏈表,包括:
[0008]從所述入口函數的驅動對象參數中獲取驅動對象指針地址;
[0009]根據所述驅動對象指針地址獲取存儲驅動對象數據的鏈表。
[0010]結合第一方面,在第一方面的第二種實施方式中,所述鏈表節點為結構數據,其中,所述結構數據保存驅動對象,驅動程序名稱,例程函數。
[0011]結合第一方面,在第一方面的第三種實施方式中,所述將與所述驅動程序對應的鏈表節點刪除,包括:
[0012]將與所述驅動程序對應的鏈表節點中的驅動對象,驅動程序名稱,例程函數地址清空。
[0013]本發明實施例的驅動程序隱藏方法,通過操作系統執行驅動程序的入口函數加載所述驅動程序,并獲取存儲驅動對象數據的鏈表,將該鏈表中與驅動程序匹配的鏈表節點刪除,以對驅動程序進行隱藏處理,能夠避免惡意程序獲取各種軟件或設備的驅動程序,實現對驅動程序的保護,從而提升系統安全性。
[0014]本發明的第二方面的實施例提供了一種驅動程序隱藏裝置,包括:加載模塊,通過操作系統執行驅動程序的入口函數加載所述驅動程序;獲取模塊,用于獲取存儲驅動對象數據的鏈表;匹配模塊,用于將所述鏈表中每個鏈表節點中的驅動對象數據與所述驅動程序進行匹配;處理模塊,用于在匹配成功時,將與所述驅動程序對應的鏈表節點刪除,以對所述驅動程序進行隱藏處理。
[0015]結合第二方面,在第二方面的第一種實施方式中,所述獲取模塊用于:
[0016]從所述入口函數的驅動對象參數中獲取驅動對象指針地址;
[0017]根據所述驅動對象指針地址獲取存儲驅動對象數據的鏈表。
[0018]結合第二方面,在第二方面的第二種實施方式中,所述鏈表節點為結構數據,其中,所述結構數據保存驅動對象,驅動程序名稱,例程函數。
[0019]結合第二方面,在第二方面的第三種實施方式中,所述處理模塊用于:
[0020]將與所述驅動程序對應的鏈表節點中的驅動對象,驅動程序名稱,例程函數地址清空。
[0021]本發明實施例的驅動程序隱藏裝置,通過操作系統執行驅動程序的入口函數加載所述驅動程序,并獲取存儲驅動對象數據的鏈表,將該鏈表中與驅動程序匹配的鏈表節點刪除,以對驅動程序進行隱藏處理,能夠避免惡意程序獲取各種軟件或設備的驅動程序,實現對驅動程序的保護,從而提升系統安全性。
[0022]本發明的第三方面的實施例提供了一種設備,包括:殼體、處理器、存儲器、電路板和電源電路,其中,所述電路板安置在所述殼體圍成的空間內部,所述處理器和所述存儲器設置在所述電路板上;所述電源電路,用于為所述移動終端的各個電路或器件供電;所述存儲器用于存儲可執行程序代碼;所述處理器通過讀取所述存儲器中存儲的可執行程序代碼來運行與所述可執行程序代碼對應的程序,以用于:操作系統執行驅動程序的入口函數加載所述驅動程序;獲取存儲驅動對象數據的鏈表;將所述鏈表中每個鏈表節點中的驅動對象數據與所述驅動程序進行匹配;如果匹配成功,將與所述驅動程序對應的鏈表節點刪除,以對所述驅動程序進行隱藏處理。
[0023]本發明實施例的設備,通過操作系統執行驅動程序的入口函數加載所述驅動程序,并獲取存儲驅動對象數據的鏈表,將該鏈表中與驅動程序匹配的鏈表節點刪除,以對驅動程序進行隱藏處理,能夠避免惡意程序獲取各種軟件或設備的驅動程序,實現對驅動程序的保護,從而提升系統安全性。
【附圖說明】
[0024]本發明的上述和/或附加的方面和優點從結合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
[0025]圖1為根據本發明一個實施例的驅動程序隱藏方法的流程圖;
[0026]圖2為根據本發明一個實施例的驅動程序隱藏裝置的結構示意圖。
【具體實施方式】
[0027]下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本發明,而不能理解為對本發明的限制。
[0028]下面參考附圖描述根據本發明實施例的驅動程序隱藏方法、裝置和設備。
[0029]圖1為根據本發明一個實施例的驅動程序隱藏方法的流程圖。
[0030]如圖1所示,根據本發明實施例的驅動程序隱藏方法,包括以下步驟:
[0031 ] SlOl,操作系統執行驅動程序的入口函數加載所述驅動程序。
[0032]其中,驅動程序的入口函數為驅動程序最開始執行的函數。
[0033]驅動程序可以是各種軟件的驅動程序,如殺毒軟件、安全軟件、應用程序等,也可以是硬件設備的驅動程序,如鼠標、鍵盤、顯卡等硬件設備的驅動程序。
[0034]因此,操作系統可通過執行驅動程序的入口函數加載驅動程序。
[0035]S102,獲取用于存儲驅動對象數據的鏈表。
[0036]當一個驅動執行后,該驅動程序對應的驅動對象可被存儲到驅動對象數據的鏈表中。該鏈表包括多個鏈表節點,每個鏈表節點為一結構數據,該結構數據用于保存驅動程序的驅動對象、驅動程序名稱、例程函數等數據,其中,例程函數可包括但不限于入口函數、打開函數、卸載函數等。
[0037]從而可通過查詢該鏈表找到一個驅動程序的驅動對象數據。在本發明的一個實施例中,可從所述入口函數的驅動對象參數中獲取驅動對象指針地址;根據所述驅動對象指針地址獲取存儲驅動對象數據的鏈表。具體地,可根據驅動對象參數中的驅動對象指針地址減去預設值,得到用于存儲驅動對象數據的鏈表的鏈表頭的地址,進而獲取用于存儲驅動對象數據的鏈表。
[0038]S103,將所述鏈表中每個鏈表節點中的驅動對象數據與所述驅動程序進行匹配。
[0039]S104,如果匹配成功,將與所述驅動程序對應的鏈表節點刪除,以對所述驅動程序進行隱藏處理。
[0040]在本發明的一個實施例中,可將與所述驅動程序對應的鏈表節點中的驅動對象,驅動程序名稱,例程函數地址清空,以將與所述驅動程序對應的鏈表節點刪除。
[0041 ]舉例來說,在操作系統執行驅動程序的入口函數后,驅動對象參數DriverObject即被存儲在驅動對象數據的鏈表Typeli st中。可通過定位Type I i st鏈表頭,然后將Typeli st鏈表頭從驅動對象參數DriverObject指針地址減去預設值(例如為0x10)的位置開始,枚舉每個鏈表節點,判斷當前枚舉到的鏈表節點中的驅動對象數據是否與所述驅動程序對應驅動對象數據匹配。如果匹配,則刪除匹配到的當前鏈表節點,即將與所述驅動程序對應的鏈表節點刪除,接上下一個節點,實現對驅動程序的隱藏。
[0042]從而,可通過定位到存儲有加載的驅動程序的驅動對象數據的鏈表,并將鏈表中存儲該驅動對象數據鏈表節點刪除,實現驅動程序的隱藏,能夠對驅動程序進行保護,提升系統安全性。
[0043]本發明實施例的驅動程序隱藏方法,通過操作系統執行驅動程序的入口函數加載所述驅動程序,并獲取存儲驅動對象數據的鏈表,將該鏈表中與驅動程序匹配的鏈表節點刪除,以對驅動程序進行隱藏處理,能夠避免惡意程序獲取各種軟件或設備的驅動程序,實現對驅動程序的保護,從而提升系統安全性。
[0044]特別當驅動程序為殺毒軟件、安全軟件等安全防護程序的驅動程序時,通過對安全防護軟件的核心驅動程序的隱藏和保護,能夠有效避免安全防護軟件被篡改和攻擊的可能,有效提升系統安全性。
[0045]為了實現上述實施例,本發明還提出一種驅動程序隱藏裝置。
[0046]圖2為根據本發明一個實施例的驅動程序隱藏裝置的結構示意圖。
[0047]如圖2所示,根據本發明實施例的驅動程序隱藏裝置,包括:加載模塊10、獲取模塊20、匹配模塊30和處理模塊40。
[0048]加載模塊10通過操作系統執行驅動程序的入口函數加載所述驅動程序。
[0049]其中,驅動程序的入口函數為驅動程序最開始執行的函數。
[0050]驅動程序可以是各種軟件的驅動程序,如殺毒軟件、安全軟件、應用程序等,也可以是硬件設備的驅動程序,如鼠標、鍵盤、顯卡等硬件設備的驅動程序。
[0051 ]因此,操作系統可通過執行驅動程序的入口函數加載驅動程序。
[0052]獲取模塊20用于獲取存儲驅動對象數據的鏈表。
[0053]當一個驅動執行后,該驅動程序對應的驅動對象可被存儲到驅動對象數據的鏈表中。該鏈表包括多個鏈表節點,每個鏈表節點為一結構數據,該結構數據用于保存驅動程序的驅動對象、驅動程序名稱、例程函數等數據,其中,例程函數可包括但不限于入口函數、打開函數、卸載函數等。
[0054]從而可通過查詢該鏈表找到一個驅動程序的驅動對象數據。在本發明的一個實施例中,獲取模塊20可用于:從所述入口函數的驅動對象參數中獲取驅動對象指針地址;根據所述驅動對象指針地址獲取存儲驅動對象數據的鏈表。具體地,獲取模塊20可根據驅動對象參數中的驅動對象指針地址減去預設值,得到用于存儲驅動對象數據的鏈表的鏈表頭的地址,進而獲取用于存儲驅動對象數據的鏈表。
[0055]匹配模塊30用于將所述鏈表中每個鏈表節點中的驅動對象數據與所述驅動程序進行匹配。
[0056]處理模塊40用于在匹配成功時,將與所述驅動程序對應的鏈表節點刪除,以對所述驅動程序進行隱藏處理。
[0057]在本發明的一個實施例中,處理模塊40可用于將與所述驅動程序對應的鏈表節點中的驅動對象,驅動程序名稱,例程函數地址清空,以將與所述驅動程序對應的鏈表節點刪除。
[0058]舉例來說,在操作系統執行驅動程序的入口函數后,驅動對象參數DriverObject即被存儲在驅動對象數據的鏈表Typelist中。獲取模塊20可通過定位Type list鏈表頭,然后將Typelist鏈表頭從驅動對象參數DriverObject指針地址減去預設值(例如為0x10)的位置開始,枚舉每個鏈表節點,判斷當前枚舉到的鏈表節點中的驅動對象數據是否與所述驅動程序對應驅動對象數據匹配。如果匹配,則處理模塊40刪除匹配到的當前鏈表節點,SP將與所述驅動程序對應的鏈表節點刪除,接上下一個節點,實現對驅動程序的隱藏。
[0059]從而,可通過定位到存儲有加載的驅動程序的驅動對象數據的鏈表,并將鏈表中存儲該驅動對象數據鏈表節點刪除,實現驅動程序的隱藏,能夠對驅動程序進行保護,提升系統安全性。
[0060]本發明實施例的驅動程序隱藏裝置,通過操作系統執行驅動程序的入口函數加載所述驅動程序,并獲取存儲驅動對象數據的鏈表,將該鏈表中與驅動程序匹配的鏈表節點刪除,以對驅動程序進行隱藏處理,能夠避免惡意程序獲取各種軟件或設備的驅動程序,實現對驅動程序的保護,從而提升系統安全性。
[0061]特別當驅動程序為殺毒軟件、安全軟件等安全防護程序的驅動程序時,通過對安全防護軟件的核心驅動程序的隱藏和保護,能夠有效避免安全防護軟件被篡改和攻擊的可能,有效提升系統安全性。
[0062]為了實現上述實施例,本發明還提出一種設備。
[0063]根據本發明實施例的設備,包括:殼體、處理器、存儲器、電路板和電源電路,其中,所述電路板安置在所述殼體圍成的空間內部,所述處理器和所述存儲器設置在所述電路板上;所述電源電路,用于為所述移動終端的各個電路或器件供電;所述存儲器用于存儲可執行程序代碼;所述處理器通過讀取所述存儲器中存儲的可執行程序代碼來運行與所述可執行程序代碼對應的程序,以用于執行本發明任一實施例所示的驅動程序隱藏方法。
[0064]本發明實施例的設備,通過操作系統執行驅動程序的入口函數加載所述驅動程序,并獲取存儲驅動對象數據的鏈表,將該鏈表中與驅動程序匹配的鏈表節點刪除,以對驅動程序進行隱藏處理,能夠避免惡意程序獲取各種軟件或設備的驅動程序,實現對驅動程序的保護,從而提升系統安全性。
[0065]特別當驅動程序為殺毒軟件、安全軟件等安全防護程序的驅動程序時,通過對安全防護軟件的核心驅動程序的隱藏和保護,能夠有效避免安全防護軟件被篡改和攻擊的可能,有效提升系統安全性。
[0066]在本發明的描述中,需要理解的是,術語“中心”、“縱向”、“橫向”、“長度”、“寬度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底” “內”、“外”、“順時針”、“逆時針”、“軸向”、“徑向”、“周向”等指示的方位或位置關系為基于附圖所示的方位或位置關系,僅是為了便于描述本發明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構造和操作,因此不能理解為對本發明的限制。
[0067]此外,術語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特征的數量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括至少一個該特征。在本發明的描述中,“多個”的含義是兩個或兩個以上,例如兩個,三個等,除非另有明確具體的限定。
[0068]在本發明中,除非另有明確的規定和限定,術語“安裝”、“相連”、“連接”、“固定”等術語應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或成一體;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內部的連通或兩個元件的相互作用關系,除非另有明確的限定。對于本領域的普通技術人員而言,可以根據具體情況理解上述術語在本發明中的具體含義。
[0069]在本發明中,除非另有明確的規定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接觸,或第一和第二特征通過中間媒介間接接觸。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或僅僅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或僅僅表示第一特征水平高度小于第二特征。
[0070]在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結合和組合。
[0071]盡管上面已經示出和描述了本發明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發明的限制,本領域的普通技術人員在本發明的范圍內可以對上述實施例進行變化、修改、替換和變型。
【主權項】
1.一種驅動程序隱藏方法,其特征在于,包括以下步驟: 操作系統執行驅動程序的入口函數加載所述驅動程序; 獲取存儲驅動對象數據的鏈表; 將所述鏈表中每個鏈表節點中的驅動對象數據與所述驅動程序進行匹配; 如果匹配成功,將與所述驅動程序對應的鏈表節點刪除,以對所述驅動程序進行隱藏處理。2.如權利要求1所述的方法,其特征在于,所述獲取存儲驅動對象數據的鏈表,包括: 從所述入口函數的驅動對象參數中獲取驅動對象指針地址; 根據所述驅動對象指針地址獲取存儲驅動對象數據的鏈表。3.如權利要求1所述的方法,其特征在于,所述鏈表節點為結構數據,其中,所述結構數據保存驅動對象,驅動程序名稱,例程函數。4.如權利要求1所述的方法,其特征在于,所述將與所述驅動程序對應的鏈表節點刪除,包括: 將與所述驅動程序對應的鏈表節點中的驅動對象,驅動程序名稱,例程函數地址清空。5.一種驅動程序隱藏裝置,其特征在于,包括: 加載模塊,通過操作系統執行驅動程序的入口函數加載所述驅動程序; 獲取模塊,用于獲取存儲驅動對象數據的鏈表; 匹配模塊,用于將所述鏈表中每個鏈表節點中的驅動對象數據與所述驅動程序進行匹配; 處理模塊,用于在匹配成功時,將與所述驅動程序對應的鏈表節點刪除,以對所述驅動程序進行隱藏處理。6.如權利要求5所述的裝置,其特征在于,所述獲取模塊用于: 從所述入口函數的驅動對象參數中獲取驅動對象指針地址; 根據所述驅動對象指針地址獲取存儲驅動對象數據的鏈表。7.如權利要求5所述的裝置,其特征在于,所述鏈表節點為結構數據,其中,所述結構數據保存驅動對象,驅動程序名稱,例程函數。8.如權利要求5所述的裝置,其特征在于,所述處理模塊用于: 將與所述驅動程序對應的鏈表節點中的驅動對象,驅動程序名稱,例程函數地址清空。9.一種設備,其特征在于,包括:殼體、處理器、存儲器、電路板和電源電路,其中, 所述電路板安置在所述殼體圍成的空間內部,所述處理器和所述存儲器設置在所述電路板上; 所述電源電路,用于為所述移動終端的各個電路或器件供電; 所述存儲器用于存儲可執行程序代碼; 所述處理器通過讀取所述存儲器中存儲的可執行程序代碼來運行與所述可執行程序代碼對應的程序,以用于: 操作系統執行驅動程序的入口函數加載所述驅動程序; 獲取存儲驅動對象數據的鏈表; 將所述鏈表中每個鏈表節點中的驅動對象數據與所述驅動程序進行匹配; 如果匹配成功,將與所述驅動程序對應的鏈表節點刪除,以對所述驅動程序進行隱藏 bo
【文檔編號】G06F21/56GK105844159SQ201610451654
【公開日】2016年8月10日
【申請日】2016年6月21日
【發明人】李文靖
【申請人】北京金山安全軟件有限公司