本發明專利技術提供了一種文件解鎖、粉碎的方法,包括:判斷目標文件是否能打開且滿足預設條件;若是,則獲取目標文件的句柄,并依據所述句柄獲取目標文件的對象;從所述目標文件的對象中查找到對應的文件引用信息庫,將所述文件引用信息庫中的引用計數值賦為預設值。本發明專利技術所提供的文件解鎖、粉碎機制不僅安全、可靠、成功率高,并且可以在復雜的客戶端環境中識別惡意程序的文件自保護行為并加以對抗,增強了和驅動級惡意程序攻防的對抗能力。
【技術實現步驟摘要】
本專利技術涉及計算機安全的
,特別是涉及一種文件解鎖、粉碎的方法和一種文件解鎖、粉碎的裝置。
技術介紹
計算機病毒是指“編制者在計算機程序中插入的破壞計算機功能或者破壞數據,影響計算機使用并且能夠自我復制的一組計算機指令或者程序代碼。計算機一旦染上病毒,計算機通常表現為其文件被增加、刪出、改變名稱或屬性、移動到其它目錄下,病毒對計算機文件的這些操作,可能會導致正常的程序無法運行、計算機操作系統崩潰、計算機被遠程控制、用戶信息被盜用等一系列的問題。為了保證計算機的安全運行,需要對計算機中感染病毒的文件進行病毒查殺,以 防止和清除病毒的破壞。在安全軟件領域,針對染毒計算機文件的“刪除”與“反刪除”是 安全軟件和惡意程序(計算機病毒)對抗的永恒主題之一。縱觀windows操作系統平臺,常見的反刪除技術有(I)文件只讀屬性限制(2)特殊文件名、畸形文件路徑及組合(3)文件權限、所有者限制(4)Windows APILockFile例程鎖定(5)文件句柄持有(6)文件共享屬性獨占(7)用戶態相關例程的IAT/EAT/InlineHook(8)內核態相關例程的SSDT Hook(9)文件系統過濾驅動攔截(10)內核相關例程的篡改、熱補丁等。現有技術中的病毒,往往通過上述手段給染毒文件加上了加密鎖,采用常規手段無法破解加密鎖即無法刪除染毒文件,這些手段阻止殺毒軟件查殺染毒文件。安全軟件查殺病毒的過程,可以理解為對染毒文件進行解鎖和粉碎。現有安全軟件,對染毒文件的解鎖和粉碎手段單一,無法破除染毒文件設置的層層保護,對抗能力不強。傳統安全軟件廠商只解決了部分“反刪除”問題,在操作系統內核態的攻防上往往體現出一定的能力缺失,驅動級惡意程序(Rootkit)對抗能力偏弱。因此,目前需要本領域技術人員迫切解決的一個技術問題就是提出一種文件解鎖、粉碎的處理機制,用以在復雜的客戶端環境中識別惡意程序的文件自保護行為并加以對抗,增強和驅動級惡意程序攻防的對抗能力。
技術實現思路
本專利技術所要解決的技術問題是提供一種文件解鎖、粉碎的方法,以增強和驅動級惡意程序攻防的對抗能力。本專利技術還提供了一種文件解鎖、粉碎的裝置,用以保證上述方法在實際中的應用及實現。為了解決上述問題,本專利技術實施例公開了一種文件解鎖、粉碎的方法,包括判斷目標文件是否能打開且滿足預設條件;若是,則獲取目標文件的句柄,并依據所述句柄獲取目標文件的對象;從所述目標文件的對象中查找到對應的文件引用信息庫,將所述文件引用信息庫中的引用計數值賦為預設值。優選的,所述目標文件具有對應的文件路徑,所述判斷目標文件是否能打開且滿足預設條件的步驟具體包括以下子步驟子步驟SI,判斷所述目標文件的路徑是否能準確定位,若是,則執行子步驟S3 ;若否,則執行子步驟S2;子步驟S2,將所述目標文件路徑處理為正確的路徑,然后轉子步驟S3 ;子步驟S3,依據所述正確的目標文件路徑,調用自定義的用于打開文件的應用程序接口嘗試打開目標文件,若所述目標文件被打開,則執行子步驟S4 ;子步驟S4,判斷所述目標文件的屬性是否為只讀,若是,則執行子步驟S5 ;若否,則執行子步驟S6 ; 子步驟S5,調用自定義的用于文件屬性更改的應用程序接口去除所述目標文件的只讀屬性,然后轉子步驟S6;子步驟S6,調用自定義的用于刪除文件的應用程序接口嘗試刪除所述目標文件,若無法刪除,則執行子步驟S7 ;子步驟S7,判定所述目標文件能打開且滿足預設條件。優選的,所述從目標文件的對象中查找到對應的文件引用信息庫,將所述文件引用信息庫中的引用計數值賦為預設值的步驟包括 從目標文件對象的數據結構中找到上下文指針指向的數據結構,然后找到文件弓I用信息庫中的Count計數域,賦值為預設值。優選的,所述預設值為O。優選的,所述預設值為1,所述的方法還包括調用Windows操作系統內核態的句柄關閉例程ZwCIose,由所述ZwCIose例程執行文件句柄關閉操作,并將所述文件引用信息庫中的引用計數值清零。優選的,所述的方法,還包括若目標文件不能打開且返回句柄占用的錯誤碼,則遍歷操作系統的句柄表,獲得目標文件對應的文件句柄File Handle,并獲取所述文件句柄File Handle所屬的進程;切換到所述進程,基于所述進程發起目標文件句柄的關閉操作。本專利技術實施例還公開了一種文件解鎖、粉碎的裝置,包括判斷模塊,用于判斷目標文件是否能打開且滿足預設條件;若是,則調用文件對象獲取模塊;文件對象獲取模塊,用于獲取目標文件的句柄,并依據所述句柄獲取目標文件的對象;引用計數清零模塊,用于從所述目標文件的對象中查找到對應的文件引用信息庫,將所述文件引用信息庫中的引用計數值賦為預設值。優選的,所述目標文件具有對應的文件路徑,所述判斷模塊具體包括以下子模塊路徑判斷子模塊,用于判斷所述目標文件的路徑是否能準確定位,若是,則調用文件打開子模塊,若否,則調用路徑預處理子模塊;路徑預處理子模塊,用于將所述目標文件路徑處理為正確的路徑,然后調用文件打開子模塊;文件打開子模塊,用于依據所述正確的目標文件路徑,調用自定義的用于打開文件的應用程序接口嘗試打開目標文件,若所述目標文件被打開,則調用文件屬性查詢子模塊;文件屬性查詢子模塊,用于判斷所述目標文件的屬性是否為只讀,若是,則調用只讀屬性去除子模塊;若否,則調用文件刪除子模塊;只讀屬性去除子模塊,用于調用自定義的用于文件屬性更改的應用程序接口去除所述目標文件的只讀屬 性,然后調用文件刪除子模塊;調用文件刪除子模塊,用于調用自定義的用于刪除文件的應用程序接口嘗試刪除所述目標文件,若無法刪除,則調用判定子模塊;判定子模塊,用于判定所述目標文件能打開且滿足預設條件。優選的,所述引用計數清零模塊包括 上下文指針查找子模塊,用于從目標文件對象的數據結構中找到上下文指針指向的數據結構;引用計數域賦值子模塊,用于依據上下文指針指向的數據結構找到文件引用信息庫中的Count計數域,賦值為預設值。優選的,所述預設值為O。優選的,所述預設值為1,所述的裝置還包括句柄關閉模塊,用于調用Windows操作系統內核態的句柄關閉例程ZwClose,由所述ZwClose例程執行文件句柄關閉操作,并將所述文件引用信息庫中的引用計數值清零。優選的,所述的裝置,還包括句柄表遍歷模塊,用于在目標文件不能打開且返回句柄占用的錯誤碼時,遍歷操作系統的句柄表,獲得目標文件對應的文件句柄File Handle,并獲取所述文件句柄FileHandle所屬的進程;句柄關閉操作發起模塊,用于切換到所述進程,基于所述進程發起目標文件句柄的關閉操作。與現有技術相比,本專利技術具有以下優點本專利技術實施例通過提供一種暴力刪除文件的機制,即在文件可以打開,但經過一些解鎖、粉碎手段,如文件路徑預處理、只讀屬性去除等,仍然無法刪除的情況下,通過“直接操作”(DK0M術語,Direct KernelObject Manipulation)文件系統的內部數據結構,進入文件的引用信息庫,將文件的引用計數清零,實現文件的解鎖與粉碎。本專利技術所提供的文件解鎖、粉碎機制不僅安全、可靠、成功率高,并且可以在復雜的客戶端環境中識別惡意程序的文件自保護行為并加以對抗,增強了和驅動級惡意程序攻防的對抗能力本文檔來自技高網...
【技術保護點】
一種文件解鎖、粉碎的方法,其特征在于,包括:判斷目標文件是否能打開且滿足預設條件;若是,則獲取目標文件的句柄,并依據所述句柄獲取目標文件的對象;從所述目標文件的對象中查找到對應的文件引用信息庫,將所述文件引用信息庫中的引用計數值賦為預設值。
【技術特征摘要】
【專利技術屬性】
技術研發人員:鄭文彬,潘劍鋒,王宇,
申請(專利權)人:奇智軟件北京有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。