中文字幕无码日韩视频无码三区

進程保護方法及裝置的制造方法

文(wen)檔序(xu)號:10725505閱讀(du):337來源:國知局
進程保護方法及裝置的制造方法
【專利摘要】本申請提出一種進程保護方法和裝置,其中,該方法包括:截獲調用打開進程函數的操作;判斷是否所述調用打開進程函數的操作的權限為預設權限、且所述調用打開進程函數的操作要打開的進程為目標進程;若是,則禁止所述調用打開進程函數的操作。通過本申請提供的進程保護方法和裝置,該方法實現了保護目標進程不被隨意打開,進而對目標進程進行破壞,有效的保護了目標進程的安全,增強了系統的安全性。
【專利說明】
進程保護方法及裝置
技術領域
[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]若匹配,則確定所述調用打開進程函數的操作要打開的進程為目標進程。
[0026]基于上述進程保護裝置,在本申請又一種可能的實現形式中,所述截獲模塊,具體用于:
[0027]通過與所述打開進程函數關聯的鉤子,截獲調用打開進程函數的操作。
[0028]基于上述進程保護裝置,在本申請又一種可能的實現形式中,該進程保護裝置,還包括:調用模塊,用于若所述調用打開進程函數的操作的權限不為預設權限,或者所述調用打開進程函數的操作要打開的進程不為目標進程,則調用所述打開進程函數。
[0029]本申請實施例進程保護裝置,首先截獲調用打開進程函數的操作,然后判斷是否調用打開進程函數的操作的權限為預設權限、且調用打開進程函數的操作要打開的進程為目標進程,并在調用打開進程函數的操作的權限為預設權限、且調用打開進程函數的操作要打開的進程為目標進程時,禁止調用打開進程函數的操作。由此,實現了保護目標進程不被隨意打開,進而對目標進程進行破壞,有效的保護了目標進程的安全,增強了系統的安全性。
【附圖說明】
[0030]本發明上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
[0031]圖1是本申請一個實施例的進程保護方法的流程示意圖;
[0032]圖2是本申請另一個實施例的進程保護方法的流程示意圖;
[0033]圖3是本申請一個實施例的進程保護裝置的結構示意圖;
[0034]圖4是本申請另一個實施例的進程保護裝置的結構示意圖。
【具體實施方式】
[0035]下面詳細描述本申請的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本申請,而不能理解為對本申請的限制。
[0036]下面參考附圖描述本申請實施例的進程保護方法及裝置。
[0037]圖1是本申請一個實施例的進程保護方法的流程示意圖。
[0038]如圖1所示,該進程保護方法包括:
[0039]步驟101,截獲調用打開進程函數的操作。
[0040]具體的,本實施例提供的進程保護方法的執行主體為本申請提供的進程保護裝置。該裝置可以被配置在具有操作系統、且可以安裝其他軟件或者應用的終端中,比如手機、計算機等等。
[0041 ] 其中,上述打開進程函數,可以指NtOpenProcess函數。終端中的其他應用或者終端系統可以通過調用NtOpenProcess函數來打開進程。
[0042]實際使用中,惡意軟件可以通過NtOpenProcess函數來打開進程,之后若確定打開的進程為終端中的重要進程,比如為防毒軟件的進程,則可以進一步地調用結束進程(NtTerminateprocess)函數來將重要進程強制結束或者暫停,進而惡意軟件即可對終端系統進行肆意毀壞了。
[0043]本申請實施例中針對上述情況,在終端中的打開進程函數中設置掛鉤。當用戶或者系統在打開系統進程時,都需要通過調用打開進程函數,此時進程保護裝置,即可截獲該操作。即上述步驟101,包括:
[0044]通過與所述打開進程函數關聯的鉤子,截獲調用打開進程函數的操作。
[0045]具體的,可以首先查找系統服務描述符表(System Services Descriptor Table,簡稱SSDT ),確定原始的NtOpenProce ss的地址,使用鉤子函數的地址替換原始的NtOpenProcess函數的地址。在用戶或者系統打開進程時,會首先經過鉤子函數,從而即可截獲調用打開進程函數的操作。
[0046]步驟102,判斷是否所述調用打開進程函數的操作的權限為預設權限、且所述調用打開進程函數的操作要打開的進程為目標進程。
[0047]其中,步驟102是為了衡量打開進程函數的操作是否非法設置的,比如若認為打開進程函數的操作要打開的目標進程為“殺毒軟件”進程時,即為非法操作,則預設的條件可以為各個“殺毒軟件”的名稱、標識或者其它信息,以使進程保護裝置在截獲調用打開進程函數的操作后,即可判斷打開進程函數的操作要打開的目標進程,是否與預設的進程信息匹配。
[0048]具體的,進程保護裝置,可以首先判斷打開進程函數的操作的權限是否為預設權限,然后再判斷調用打開進程函數的操作要打開的進程是否為目標進程;或者,也可以先判斷調用打開進程函數的操作要打開的進程是否為目標進程,然后再判斷打開進程函數的操作的權限是否為預設權限。
[0049]通常,設置的鉤子函數與原始的打開進程函數可以包括相同個數的參數,比如,可以包括多個分別用于表征打開進程的標識或權限的參數。
[0050]本申請實施例中進程保護裝置,可以根據設置的鉤子函數中的用于表征打開進程函數的操作的權限的值,確定該打開進程函數的操作的權限是否為預設權限。
[0051]相應的上述判斷是否所述調用打開進程函數的操作的權限為預設權限,包括:
[0052]判斷所述打開進程函數中用于表征訪問權限的參數值中是否有至少一個與預設的列表中的值匹配的值;
[0053]若是,則確定所述調用打開進程函數的操作的權限包括預設權限。
[0054]具體的,鉤子函數中的訪問權限參數(DesiredAccess)的值用來表征打開進程的操作的權限。進程保護裝置在截獲調用打開進程的函數后,即可根據設置的鉤子函數中的DesiredAccess參數中的值,判斷該操作的權限是否為預設權限。
[0055]通常,進程保護裝置中,可以預先存儲預設權限的參數值,當截獲調用打開進程函數的操作后,即可判斷設置的鉤子函數中的表征訪問權限的參數值中是否至少包括一個與預設權限的參數值匹配的值,若有,則說明該打開進程函數的操作權限為高權限。
[0056]舉例來說,預先存儲的預設權限的參數值可以為:PROCESS_TERMINATE(結束進程的權限)、PR0CESS_VM_WRITE(讀寫進程內存的權限)、PROCESS_DUP_HANDLE(復制進程句柄的權限)、PROCESS_SUSPEND_RESUME(暫停進程的權限)、PR0CESS_SET_INF0RMAT10N(設置進程信息的權限)。則進程保護裝置在確定打開進程函數中用于表征訪問權限的參數值中至少有一個與上述參數匹配,則可以確定打開進程函數的操作的權限為預設的權限,進而再判斷所述調用打開進程函數的操作要打開的進程是否為目標進程。
[0057]其中,目標進程是指對終端的系統運行有重要作用的進程,可以為一個進程,也可以為多個進程。比如,目標進程可以為殺毒軟件的進程,也可以為系統的核心進程。
[0058]通常,鉤子函數中的第四參數為進程信息結構(ClientId)參數,該參數的值用來表征此次打開進程函數要打開的進程標識(PID),進程保護裝置,即可根據進程標識(PID),來判斷此次調用打開進程函數的操作要打開的進程是否為目標進程。
[0059]相應的,上述判斷是否所述調用打開進程函數的操作要打開的進程為目標進程,包括:
[0060]判斷所述打開進程函數中用于表征進程信息結構的參數值是否與第二預設的列表中的進程標識匹配;
[0061]若匹配,則確定所述調用打開進程函數的操作要打開的進程為目標進程。
[0062]其中,目標進程指在終端的運行過程中,有重要作用的進程,比如為防毒軟件的進程等。
[0063]具體的,進程保護裝置中可以預先存儲所有目標進程標識,當截獲到調用打開進程的操作后,即可判斷鉤子函數中用于表征進程信息結構的參數是否為預先存儲的目標進程標識。
[0064]或者,進程保護裝置中,還可以包括所有目標進程的路徑信息,從而在根據鉤子函數中用于表征進程信息結構的參數值,確定此次調用打開進程函數的操作要打開的進程標識后,即可通過調用系統內核函數PsLookupProcessByProcessId和ZwQuery Informat1nProcess來獲取到要打開的進程的路徑,進而再將要打開的進程路徑與各目標進程的路徑進行匹配,若匹配,則確定要打開的進程為目標進程。
[0065]可以理解的是,第一預設的列表中的值和第二預設的列表中的值,可以根據終端的允許情況或者用戶的操作,進行更新。舉例來說,用戶在確定終端中新增加了新的目標進程后,可以在第二預設的列表中添加目標進程的標識或目標進程的路徑信息,從而使所有的目標進程都不被惡意破壞。
[0066]步驟103,若是,則禁止所述調用打開進程函數的操作。
[0067]具體的,在確定調用打開進程函數的操作的權限包括預設權限,且該調用打開進程函數的操作要打開的進程為目標進程時,則直接禁止其他應用調用該打開進程函數,從而防止了惡意軟件通過打開進程函數打開目標進程,進而對目標進程進行關閉、修改或者暫停等非法處理。
[0068]本申請實施例進程保護方法,首先截獲調用打開進程函數的操作,然后判斷是否調用打開進程函數的操作的權限為預設權限、且調用打開進程函數的操作要打開的進程為目標進程,并在調用打開進程函數的操作的權限為預設權限、且調用打開進程函數的操作要打開的進程為目標進程時,禁止調用打開進程函數的操作。由此,實現了保護目標進程不被隨意打開,進而對目標進程進行破壞,有效的保護了目標進程的安全,增強了系統的安全性。
[0069]圖2是本申請另一個實施例的進程保護方法的流程示意圖。
[0070]如圖2所示,該進程保護方法包括:
[0071]步驟201,通過與所述打開進程函數關聯的鉤子,截獲調用打開進程函數的操作。
[0072]步驟202,判斷所述打開進程函數中用于表征訪問權限的參數值中是否有至少一個與第一預設的列表中的值匹配的值,若是,則執行步驟203,否則執行步驟205。
[0073]步驟203,判斷所述打開進程函數中用于表征進程信息結構的參數值是否與第二預設的列表中的進程標識匹配,若匹配,則執行步驟204,否則執行步驟205。
[0074]步驟204,禁止所述調用打開進程函數的操作。
[0075]步驟205,調用所述打開進程函數。
[0076]具體的,本申請實施例中,在通過與打開進程的函數關聯的鉤子,截獲調用打開進程的函數后,首先判斷打開進程函數的操作對應的權限是否包括預設權限,比如是否包括讀寫進程內存的權限、結束進程的權限、暫停進程的權限等等,若不包括,則可以直接調用打開進程函數,若包括,則繼續判斷打開進程函數中用于表征進程信息結構的參數值是否為目標進程,若是,則禁止調用打開進程函數的操作,若不是,則調用打開進程函數。
[0077]本申請實施例的進程保護方法,在通過與打開進程函數關聯的鉤子,截獲調用打開進程函數的操作后,首先判斷調用打開進程函數的操作的權限是否包括預設權限,若不包括則調用打開進程函數,若包括,則再判斷調用打開進程函數的操作要打開的進程是否為目標進程,若是,則禁止調用打開進程的函數,否則,調用打開進程函數。由此,由此,實現了保護目標進程不被隨意打開,進而對目標進程進行破壞,有效的保護了目標進程的安全,增強了系統的安全性。
[0078]為了實現上述實施例,本申請還提出一種進程保護裝置。
[0079]圖3是本申請一個實施例的進程保護裝置的結構示意圖。
[0080]如圖3所示,該進程保護裝置包括:
[0081 ]截獲模塊31,用于截獲調用打開進程函數的操作;
[0082]判斷模塊32,用于判斷是否調用打開進程函數的操作的權限為預設權限、且調用打開進程函數的操作要打開的進程為目標進程;
[0083]禁止模塊33,用于若調用打開進程函數的操作的權限為預設權限、且調用打開進程函數的操作要打開的進程為目標進程,則禁止所述調用打開進程函數的操作。
[0084]其中,上述截獲模塊31,具體用于:
[0085]通過與所述打開進程函數關聯的鉤子,截獲調用打開進程函數的操作。
[0086]進一步地,上述判斷模塊32,具體用于:
[0087]判斷所述打開進程函數中用于表征訪問權限的參數值中是否有至少一個與第一預設的列表中的值匹配的值;
[0088]若是,則確定所述調用打開進程函數的操作的權限包括預設權限。
[0089]另外,上述判斷模塊32,還具體用于
[0090]判斷所述打開進程函數中用于表征進程信息結構的參數值是否與第二預設的列表中的進程標識匹配;
[0091]若匹配,則確定所述調用打開進程函數的操作要打開的進程為目標進程。
[0092]需要說明的是,前述對進程保護方法實施例的解釋說明也適用于該實施例的進程保護裝置,此處不再贅述。
[0093]本申請實施例進程保護裝置,首先截獲調用打開進程函數的操作,然后判斷是否調用打開進程函數的操作的權限為預設權限、且調用打開進程函數的操作要打開的進程為目標進程,并在調用打開進程函數的操作的權限為預設權限、且調用打開進程函數的操作要打開的進程為目標進程時,禁止調用打開進程函數的操作。由此,實現了保護目標進程不被隨意打開,進而對目標進程進行破壞,有效的保護了目標進程的安全,增強了系統的安全性。
[0094]圖4是本申請另一個實施例的進程保護裝置的結構示意圖,如圖4所示,基于圖3所示實施例,該進程保護裝置,還包括:
[0095]調用模塊41,用于若調用打開進程函數的操作的權限不為預設權限,或者調用打開進程函數的操作要打開的進程不為目標進程時,則調用所述打開進程函數。
[0096]需要說明的是,前述對進程保護方法實施例的解釋說明也適用于該實施例的進程保護裝置,此處不再贅述。
[0097]本申請實施例的進程保護裝置,在通過與打開進程函數關聯的鉤子,截獲調用打開進程函數的操作后,首先判斷調用打開進程函數的操作的權限是否包括預設權限,若不包括則調用打開進程函數,若包括,則再判斷調用打開進程函數的操作要打開的進程是否為目標進程,若是,則禁止調用打開進程的函數,否則,調用打開進程函數。由此,由此,實現了保護目標進程不被隨意打開,進而對目標進程進行破壞,有效的保護了目標進程的安全,增強了系統的安全性。
[0098]在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本申請的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結合和組合。
[0099]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現特定邏輯功能或過程的步驟的可執行指令的代碼的模塊、片段或部分,并且本申請的優選實施方式的范圍包括另外的實現,其中可以不按所示出或討論的順序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本申請的實施例所屬技術領域的技術人員所理解。
[0100]應當理解,本申請的各部分可以用硬件、軟件、固件或它們的組合來實現。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執行系統執行的軟件或固件來實現。例如,如果用硬件來實現,和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現:具有用于對數據信號實現邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現場可編程門陣列(FPGA)等。
[0101]本技術領域的普通技術人員可以理解實現上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,該程序在執行時,包括方法實施例的步驟之一或其組合。上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。盡管上面已經示出和描述了本申請的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本申請的限制,本領域的普通技術人員在本申請的范圍內可以對上述實施例進行變化、修改、替換和變型。
【主權項】
1.一種進程保護方法,其特征在于,包括以下步驟: 截獲調用打開進程函數的操作; 判斷是否所述調用打開進程函數的操作的權限為預設權限、且所述調用打開進程函數的操作要打開的進程為目標進程; 若是,則禁止所述調用打開進程函數的操作。2.如權利要求1所述的方法,其特征在于,所述判斷是否所述調用打開進程函數的操作的權限為預設權限,包括: 判斷所述打開進程函數中用于表征訪問權限的參數值中是否有至少一個與第一預設的列表中的值匹配的值; 若是,則確定所述調用打開進程函數的操作的權限為預設權限。3.如權利要求1所述的方法,其特征在于,所述判斷是否所述調用打開進程函數的操作要打開的進程為目標進程,包括: 判斷所述打開進程函數中用于表征進程信息結構的參數值是否與第二預設的列表中的進程標識匹配; 若匹配,則確定所述調用打開進程函數的操作要打開的進程為目標進程。4.如權利要求1-3任一所述的方法,其特征在于,所述截獲調用打開進程函數的操作,包括: 通過與所述打開進程函數關聯的鉤子,截獲調用打開進程函數的操作。5.如權利要求1-3任一所述的方法,其特征在于,所述判斷是否所述調用打開進程函數的操作的權限為預設權限、且所述調用打開進程函數的操作要打開的進程為目標進程之后,還包括: 若否,則調用所述打開進程函數。6.一種進程保護裝置,其特征在于,包括: 截獲模塊,用于截獲調用打開進程函數的操作; 判斷模塊,用于判斷是否所述調用打開進程函數的操作的權限為預設權限、且所述調用打開進程函數的操作要打開的進程為目標進程; 禁止模塊,用于若所述調用打開進程函數的操作的權限為預設權限、且所述調用打開進程函數的操作要打開的進程為目標進程,則禁止所述調用打開進程函數的操作。7.如權利要求6所述的裝置,其特征在于,所述判斷模塊,具體用于: 判斷所述打開進程函數中用于表征訪問權限的參數值中是否有至少一個與第一預設的列表中的值匹配的值; 若是,則確定所述調用打開進程函數的操作的權限包括預設權限。8.如權利要求6所述的裝置,其特征在于,所述判斷模塊,具體用于: 判斷所述打開進程函數中用于表征進程信息結構的參數值是否與第二預設的列表中的進程標識匹配; 若匹配,則確定所述調用打開進程函數的操作要打開的進程為目標進程。9.如權利要求6-8任一所述的裝置,其特征在于,所述截獲模塊,具體用于: 通過與所述打開進程函數關聯的鉤子,截獲調用打開進程函數的操作。10.如權利要求6-8任一所述的裝置,其特征在于,還包括: 調用模塊,用于若所述調用打開進程函數的操作的權限不為預設權限,或者所述調用打開進程函數的操作要打開的進程不為目標進程,則調用所述打開進程函數。
【文檔編號】G06F21/55GK106096401SQ201610412811
【公開日】2016年11月9日
【申請日】2016年6月13日 公開號201610412811.1, CN 106096401 A, CN 106096401A, CN 201610412811, CN-A-106096401, CN106096401 A, CN106096401A, CN201610412811, CN201610412811.1
【發明人】李文靖
【申請人】北京金山安全軟件有限公司
網友(you)詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1