本發明專利技術提供了一種文件解鎖的方法和裝置,其中,所述方法包括:判斷目標文件是否存在句柄占用的情形;若是,則遍歷操作系統的句柄表,獲得目標文件對應的文件句柄File?Handle,并獲取所述文件句柄File?Handle所屬的進程;切換到所述進程,基于所述進程發起目標文件句柄的關閉操作。本發明專利技術所提供的文件解鎖、粉碎、粉碎機制不僅安全、可靠、成功率高,并且可以在復雜的客戶端環境中識別惡意程序的文件自保護行為并加以對抗,增強了和驅動級惡意程序攻防的對抗能力。
【技術實現步驟摘要】
本專利技術涉及計算機安全的
,特別是涉及一種文件解鎖的方法和一種文件解鎖的裝置。
技術介紹
計算機病毒是指“編制者在計算機程序中插入的破壞計算機功能或者破壞數據,影響計算機使用并且能夠自我復制的一組計算機指令或者程序代碼。計算機一旦染上病毒,計算機通常表現為其文件被增加、刪出、改變名稱或屬性、移動到其它目錄下,病毒對計算機文件的這些操作,可能會導致正常的程序無法運行、計算機操作系統崩潰、計算機被遠程控制、用戶信息被盜用等一系列的問題。為了保證計算機的安全運行,需要對計算機中感染病毒的文件進行病毒查殺,以防止和清除病毒的破壞。在安全軟件領域,針對染毒計算機文件的“刪除”與“反刪除”是安全軟件和惡意程序(計算機病毒)對抗的永恒主題之一。現有技術中的病毒,往往通過文件句柄持有等手段給染毒文件加上了加密鎖,采用常規手段無法破解加密鎖即無法刪除染毒文件,這些手段阻止殺毒軟件查殺染毒文件。安全軟件查殺病毒的過程,可以理解為對染毒文件進行解鎖和粉碎。現有安全軟件,對染毒文件的解鎖和粉碎手段單一,無法破除染毒文件設置的層層保護,對抗能力不強。傳統安全軟件廠商只解決了部分“反刪除”問題,在操作系統內核態的攻防上往往體現出一定的能力缺失,驅動級惡意程序(Rootkit)對抗能力偏弱。因此,目前需要本領域技術人員迫切解決的一個技術問題就是提出一種文件解鎖的處理機制,用以在復雜的客戶端環境中識別惡意程序的文件自保護行為并加以對抗,增強和驅動級惡意程序攻防的對抗能力。
技術實現思路
本專利技術所要解決的技術問題是提供一種文件解鎖的方法,以增強和驅動級惡意程序攻防的對抗能力。本專利技術還提供了一種文件解鎖的裝置,用以保證上述方法在實際中的應用及實現。為了解決上述問題,本專利技術實施例公開了一種文件解鎖的方法,包括判斷目標文件是否存在句柄占用的情形;若是,則遍歷操作系統的句柄表,獲得目標文件對應的文件句柄File Handle,并獲取所述文件句柄File Handle所屬的進程;切換到所述進程,基于所述進程發起目標文件句柄的關閉操作。優選的,在判斷目標文件是否存在句柄占用的情形之前,還包括嘗試打開或刪除目標文件;若無法打開或刪除目標文件,則讀取返回的錯誤碼信息;所述目標文件是否存在句柄占用的情形依據所述錯誤碼信息判斷。優選的,若所述錯誤碼信息為STATUS_DELETE_PENDING,數值為0xC0000056L ;或為,ERROR_ACCESS_DENIED,數值為5,則判定所述目標文件存在句柄占用的情形。優選的,所述的方法,還包括所述目標文件句柄的關閉操作完成后,所述目標文件被清除。優選的,所述目標文件具有對應的全路徑;所述句柄表位于操作系統內核,其中維護有所有進程打開的句柄信息,所述句柄信息中包括文件句柄File Handle的信息,所述文件句柄File Handle的信息中包括各文件句柄File Handle對應的文件的全路徑,所述遍歷操作系統的句柄表,獲得目標文件對應的文件句柄File Handle的步驟包括 將目標文件的全路徑與各文件句柄File Handle對應的文件的全路徑進行對比,若找到一致的文件全路徑,則提取該文件全路徑對應的文件句柄File Handle為所述目標文件對應的文件句柄File Handle。優選的,所述的方法,還包括判斷所述文件句柄File Handle所屬的進程是否能切換,若在能切換時執行所述切換至進程的步驟。優選的,所述切換到所述進程的操作是通過調用操作系統應用程序接口 API的堆棧連接進程例程KeStackAttachProcess執行的;所述遍歷操作系統的句柄表的操作是通過調用操作系統應用程序接口 API的系統信息查詢例程ZwQuerySystemInformation中的句柄信息系統SystemHandleInformation的功能執行的。優選的,所述基于進程發起目標文件句柄的關閉操作的步驟包括以所述進程的名義發起文件句柄關閉操作請求;依據所述請求調用Windows操作系統內核態的句柄關閉例程ZwClose,所述ZwClose例程執行文件句柄關閉操作。本專利技術實施例還公開了一種文件解鎖的裝置,包括判斷模塊,用于判斷目標文件是否存在句柄占用的情形;若是,則調用句柄表遍歷模塊;句柄表遍歷模塊,用于遍歷操作系統的句柄表,獲得目標文件對應的文件句柄File Handle ;進程獲取模塊,用于獲取所述文件句柄File Handle所屬的進程;進程切換模塊,用于切換到所述進程;句柄關閉操作發起模塊,用于基于所述進程發起目標文件句柄的關閉操作。優選的,所述目標文件是否存在句柄占用的情形依據所述錯誤碼信息判斷,所述的裝置還包括文件操作模塊,用于嘗試打開或刪除目標文件;錯誤碼讀取模塊,用于在無法打開或刪除目標文件時,讀取返回的錯誤碼信息。優選的,所述目標文件具有對應的全路徑;所述句柄表位于操作系統內核,其中維護有所有進程打開的句柄信息,所述句柄信息中包括文件句柄File Handle的信息,所述文件句柄File Handle的信息中包括各文件句柄File Handle對應的文件的全路徑,所述目標文件對應的文件句柄File Handle通過所述全路徑對比獲得。優選的,所述的裝置,還包括切換判斷模塊,用于判斷所述文件句柄File Handle所屬的進程是否能切換,以及,在能切換時調用進程切換模塊。優選的,所述句柄關閉操作發起模塊包括請求發起子模塊,用于以所述進程的名義發起文件句柄關閉操作請求;例程調用子模塊,用于依據所述請求調用Windows操作系統內核態的句柄關閉例程ZwClose,所述ZwClose例程執行文件句柄關閉操作。與現有技術相比,本專利技術具有以下優點、本專利技術實施例通過在目標文件存在句柄占用的情形時,遍歷操作系統的句柄表,獲得目標文件對應的文件句柄File Handle,并獲取所述文件句柄File Handle所屬的進程;然后切換到所述進程,以該進程的名義發起目標文件句柄的關閉操作,從而實現文件解鎖和粉碎過程。本專利技術所提供的文件解鎖、粉碎、粉碎機制不僅安全、可靠、成功率高,并且可以在復雜的客戶端環境中識別惡意程序的文件自保護行為并加以對抗,增強了和驅動級惡意程序攻防的對抗能力。附圖說明圖I是本專利技術的一種文件解鎖的方法實施例的步驟流程圖;圖2是本專利技術的一種文件解鎖的裝置實施例的結構框圖。具體實施例方式為使本專利技術的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本專利技術作進一步詳細的說明。參考圖I,示出了本專利技術的一種文件解鎖的方法實施例的步驟流程圖,具體可以包括以下步驟步驟101、嘗試打開或刪除目標文件;需要說明的是,在本專利技術實施例中,所述文件包括WINDOWS操作系統中所支持類型的文件。所述文件打開不是指通過雙擊鼠標或按回車鍵等觸發方式打開文件(如*. exe、*. doc等類型的文件);而是指用操作系統API或本專利技術的自定義的應用程序接口 BAPI (應用本專利技術,可以在操作系統用戶態接口完整實現一套文件操作調用庫)的CreateFileO函數等打開文件、得到文件句柄的操作,因為只有得到文件句柄后才可以進一步操作該文件。從函數調用方法角度而言,本專利技術實施例中所指文件“打開”主要包本文檔來自技高網...
【技術保護點】
一種文件解鎖的方法,其特征在于,包括:判斷目標文件是否存在句柄占用的情形;若是,則遍歷操作系統的句柄表,獲得目標文件對應的文件句柄FileHandle,并獲取所述文件句柄File?Handle所屬的進程;切換到所述進程,基于所述進程發起目標文件句柄的關閉操作。
【技術特征摘要】
【專利技術屬性】
技術研發人員:王宇,鄭文彬,
申請(專利權)人:奇智軟件北京有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。