国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種文件解鎖的方法及裝置的制作方法

      文檔序號(hào):6427274閱讀:146來(lái)源:國(guó)知局
      專利名稱:一種文件解鎖的方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計(jì)算機(jī)安全的技術(shù)領(lǐng)域,特別是涉及一種文件解鎖的方法和一種文件解鎖的裝置。
      背景技術(shù)
      計(jì)算機(jī)病毒是指“編制者在計(jì)算機(jī)程序中插入的破壞計(jì)算機(jī)功能或者破壞數(shù)據(jù),影響計(jì)算機(jī)使用并且能夠自我復(fù)制的一組計(jì)算機(jī)指令或者程序代碼。計(jì)算機(jī)一旦染上病毒,計(jì)算機(jī)通常表現(xiàn)為其文件被增加、刪出、改變名稱或?qū)傩?、移?dòng)到其它目錄下,病毒對(duì)計(jì)算機(jī)文件的這些操作,可能會(huì)導(dǎo)致正常的程序無(wú)法運(yùn)行、計(jì)算機(jī)操作系統(tǒng)崩潰、計(jì)算機(jī)被遠(yuǎn)程控制、用戶信息被盜用等一系列的問(wèn)題。為了保證計(jì)算機(jī)的安全運(yùn)行,需要對(duì)計(jì)算機(jī)中感染病毒的文件進(jìn)行病毒查殺,以防止和清除病毒的破壞。在安全軟件領(lǐng)域,針對(duì)染毒計(jì)算機(jī)文件的“刪除”與“反刪除”是 安全軟件和惡意程序(計(jì)算機(jī)病毒)對(duì)抗的永恒主題之一。現(xiàn)有技術(shù)中的病毒,往往通過(guò)文件權(quán)限、所有者限制等手段給染毒文件加上了加密鎖,采用常規(guī)手段無(wú)法破解加密鎖即無(wú)法刪除染毒文件,這些手段阻止殺毒軟件查殺染毒文件。安全軟件查殺病毒的過(guò)程,可以理解為對(duì)染毒文件進(jìn)行解鎖和粉碎。現(xiàn)有安全軟件,對(duì)染毒文件的解鎖和粉碎手段單一,無(wú)法破除染毒文件設(shè)置的層層保護(hù),對(duì)抗能力不強(qiáng)。傳統(tǒng)安全軟件廠商只解決了部分“反刪除”問(wèn)題,在操作系統(tǒng)內(nèi)核態(tài)的攻防上往往體現(xiàn)出一定的能力缺失,驅(qū)動(dòng)級(jí)惡意程序(Rootkit)對(duì)抗能力偏弱。因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問(wèn)題就是提出一種文件解鎖的處理機(jī)制,用以在復(fù)雜的客戶端環(huán)境中識(shí)別惡意程序的文件自保護(hù)行為并加以對(duì)抗,增強(qiáng)和驅(qū)動(dòng)級(jí)惡意程序攻防的對(duì)抗能力。

      發(fā)明內(nèi)容
      本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種文件解鎖的方法,以增強(qiáng)和驅(qū)動(dòng)級(jí)惡意程序攻防的對(duì)抗能力。本發(fā)明還提供了一種文件解鎖的裝置,用以保證上述方法在實(shí)際中的應(yīng)用及實(shí)現(xiàn)。為了解決上述問(wèn)題,本發(fā)明實(shí)施例公開(kāi)了一種文件解鎖的方法,包括獲取目標(biāo)文件的操作權(quán)限信息;若所述目標(biāo)文件無(wú)操作權(quán)限,則調(diào)用自定義的用于目標(biāo)權(quán)限設(shè)置的應(yīng)用程序接口針對(duì)所述目標(biāo)文件添加操作權(quán)限。優(yōu)選的,在針對(duì)所述目標(biāo)文件添加操作權(quán)限后,還包括調(diào)用操作系統(tǒng)應(yīng)用程序接口 API或自定義的用于打開(kāi)文件的應(yīng)用程序接口,打開(kāi)所述具有操作權(quán)限的目標(biāo)文件。優(yōu)選的,在獲取目標(biāo)文件的操作權(quán)限信息之前,還包括
      調(diào)用自定義的用于打開(kāi)文件的應(yīng)用程序接口打開(kāi)所述目標(biāo)文件。優(yōu)選的,所述的方法還包括對(duì)所述具有操作權(quán)限的目標(biāo)文件進(jìn)行操作,所述操作包括文件刪除操作。優(yōu)選的,所述獲取目標(biāo)文件的操作權(quán)限信息的步驟包括調(diào)用操作系統(tǒng)應(yīng)用程序接口 API中的GetNamedSecurityInfo例程和AccessCheck例程;通過(guò)所述GetNamedSecurityInfo例程獲取目標(biāo)文件的安全描述符,以及,通過(guò)所述AccessCheck例程依據(jù)所述安全描述符查詢目標(biāo)文件的操作權(quán)限信息。優(yōu)選的,所述獲取目標(biāo)文件的操作權(quán)限信息的步驟包括、調(diào)用自定義的應(yīng)用程序接口中的DsGetFileLockType例程,通過(guò)所述DsGetFileLockType例程獲取目標(biāo)文件的安全描述符,并依據(jù)所述安全描述符查詢目標(biāo)文件的操作權(quán)限信息。優(yōu)選的,所述調(diào)用自定義的用于目標(biāo)權(quán)限設(shè)置的應(yīng)用程序接口針對(duì)目標(biāo)文件添加操作權(quán)限的步驟包括調(diào)用自定義的應(yīng)用程序接口中的DsSetTargetAccess例程設(shè)置目標(biāo)文件的權(quán)限集合,所述DsSetTargetAccess例程的執(zhí)行邏輯設(shè)置與操作系統(tǒng)應(yīng)用程序接口 API中的SetNamedSecurityInfo 例程一致。優(yōu)選的,所述調(diào)用自定義的用于打開(kāi)文件的應(yīng)用程序接口打開(kāi)目標(biāo)文件的步驟包括獲取針對(duì)目標(biāo)文件的操作請(qǐng)求,所述請(qǐng)求中包括調(diào)用者輸入?yún)?shù),所述輸入?yún)?shù)中包括文件路徑;校驗(yàn)所述調(diào)用者輸入?yún)?shù),若校驗(yàn)通過(guò),則依據(jù)所述文件路徑在對(duì)象管理器中查找對(duì)應(yīng)的文件對(duì)象解析例程;若查找到對(duì)應(yīng)的文件對(duì)象解析例程,則依據(jù)所述文件對(duì)象解析例程生成I/O請(qǐng)求包,并發(fā)送至預(yù)置的文件系統(tǒng)下層設(shè)備的原始地址。優(yōu)選的,所述依據(jù)文件路徑在對(duì)象管理器中查找對(duì)應(yīng)的文件對(duì)象解析例程的步驟具體包括以下子步驟;子步驟SI、判斷文件路徑是否已經(jīng)拆解完畢,若否,則執(zhí)行子步驟S2 ;若是,則執(zhí)行子步驟S4 ;子步驟S2、按照路徑分隔符拆解出文件路徑中下一個(gè)待拆解的路徑段;子步驟S3、采用當(dāng)前拆解出的路徑段在對(duì)象管理器中搜索,判斷是否存在對(duì)應(yīng)的文件對(duì)象例程;若是,則返回子步驟SI ;若否,則執(zhí)行子步驟S5 ;子步驟S4、獲得所述文件路徑對(duì)應(yīng)的文件對(duì)象解析例程。子步驟S5、返回未找到對(duì)應(yīng)文件對(duì)象解析例程的信息。本發(fā)明還公開(kāi)了一種文件解鎖的裝置,包括權(quán)限信息獲取模塊,用于獲取目標(biāo)文件的操作權(quán)限信息;權(quán)限添加模塊,用于在所述目標(biāo)文件無(wú)操作權(quán)限時(shí),調(diào)用自定義的用于目標(biāo)權(quán)限設(shè)置的應(yīng)用程序接口針對(duì)所述目標(biāo)文件添加操作權(quán)限。優(yōu)選的,所述的裝置,還包括
      第一文件打開(kāi)模塊,用于在針對(duì)所述目標(biāo)文件添加操作權(quán)限后,調(diào)用操作系統(tǒng)應(yīng)用程序接口 API或自定義的用于打開(kāi)文件的應(yīng)用程序接口,打開(kāi)所述具有操作權(quán)限的目標(biāo)文件。優(yōu)選的,所述的裝置還包括第二文件打開(kāi)模塊,用于在獲取目標(biāo)文件的操作權(quán)限信息之前,調(diào)用自定義的用于打開(kāi)文件的應(yīng)用程序接口打開(kāi)所述目標(biāo)文件。優(yōu)選的,所述的裝置還包括
      文件粉碎模塊,用于對(duì)所述具有操作權(quán)限的目標(biāo)文件進(jìn)行操作,所述操作包括文件刪除操作。優(yōu)選的,所述目標(biāo)文件的操作權(quán)限信息通過(guò)調(diào)用操作系統(tǒng)應(yīng)用程序接口 API中的GetNamedSecurityInfo 例程和 AccessCheck 例程獲?。黄渲?,所述 GetNamedSecurityInfo例程用于獲取目標(biāo)文件的安全描述符,所述AccessCheck例程用于依據(jù)所述安全描述符查詢目標(biāo)文件的操作權(quán)限信息。優(yōu)選的,所述目標(biāo)文件的操作權(quán)限信息通過(guò)調(diào)用自定義的應(yīng)用程序接口中的DsGetFileLockType例程獲??;其中,所述DsGetFileLockType例程用于獲取目標(biāo)文件的安全描述符,并依據(jù)所述安全描述符查詢目標(biāo)文件的操作權(quán)限信息。優(yōu)選的,所述權(quán)限添加模塊包括預(yù)設(shè)例程調(diào)用子模塊,用于調(diào)用自定義的應(yīng)用程序接口中的DsSetTargetAccess例程設(shè)置目標(biāo)文件的權(quán)限集合,所述DsSetTargetAccess例程的執(zhí)行邏輯設(shè)置與操作系統(tǒng)應(yīng)用程序接口 API中的SetNamedSecurityInfo例程一致。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明通過(guò)在對(duì)目標(biāo)文件操作時(shí)若沒(méi)有操作權(quán)限(包括文件權(quán)限、所有者限制),則調(diào)用自定義的用于目標(biāo)權(quán)限設(shè)置的應(yīng)用程序接口針對(duì)該目標(biāo)文件添加操作權(quán)限后,執(zhí)行目標(biāo)文件解鎖和粉碎的操作。本發(fā)明所提供的文件解鎖、粉碎、粉碎機(jī)制不僅安全、可靠、成功率高,并且可以在復(fù)雜的客戶端環(huán)境中識(shí)別惡意程序的文件自保護(hù)行為并加以對(duì)抗,增強(qiáng)了和驅(qū)動(dòng)級(jí)惡意程序攻防的對(duì)抗能力。


      圖I是本發(fā)明的一種文件解鎖的方法實(shí)施例I的步驟流程圖;圖2是本發(fā)明的一種文件解鎖的方法實(shí)施例2的步驟流程圖;圖3是本發(fā)明的一種文件解鎖的裝置實(shí)施例的結(jié)構(gòu)框圖。
      具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
      對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。本發(fā)明實(shí)施例的核心構(gòu)思之一在于,在對(duì)目標(biāo)文件操作時(shí)若沒(méi)有操作權(quán)限(包括文件權(quán)限、所有者限制),則調(diào)用自定義的用于目標(biāo)權(quán)限設(shè)置的應(yīng)用程序接口針對(duì)該目標(biāo)文件添加操作權(quán)限后,執(zhí)行目標(biāo)文件解鎖和粉碎的操作。參考圖1,示出了本發(fā)明的一種文件解鎖的方法實(shí)施例I的步驟流程圖,具體可以包括以下步驟步驟101、獲取目標(biāo)文件的操作權(quán)限信息;“權(quán)限限制”是微軟設(shè)計(jì)操作系統(tǒng)時(shí)的一種細(xì)粒度訪問(wèn)控制機(jī)制,Windows操作系統(tǒng)內(nèi)核有專門的功能模塊(縮寫為Se,全稱是Security),設(shè)計(jì)的原則要符合美國(guó)C2級(jí)操作系統(tǒng)的安全標(biāo)準(zhǔn)。目前微軟操作系統(tǒng)中 權(quán)限限制細(xì)粒度的體現(xiàn)在如下方面(I)完全控制;(2)遍歷文件夾/運(yùn)行文件;(3)列出文件夾/運(yùn)行數(shù)據(jù);(4)讀取屬性;(5)讀取擴(kuò)展屬性;(6)創(chuàng)建文件/寫入數(shù)據(jù);(7)創(chuàng)建文件夾/附加數(shù)據(jù);(8)寫入屬性;(9)寫入擴(kuò)展屬性;(10)刪除;(11)讀取權(quán)限;(12)更改權(quán)限;(13)取得所有權(quán)。Windows操作系統(tǒng)導(dǎo)出了一組權(quán)限操作的API,如GetNamedSecurityInfo函數(shù)、AccessCheck函數(shù)等。其中,GetNamedSecurityInfo函數(shù)主要是用于得到目標(biāo)文件的安全描述符(Security Descriptor簡(jiǎn)稱SD,這是操作系統(tǒng)權(quán)限相關(guān)的一個(gè)基本數(shù)據(jù)結(jié)構(gòu)),AccessCheck函數(shù)主要是用于基于安全描述符查詢目標(biāo)文件的權(quán)限限制情況。因而,在本發(fā)明的一種優(yōu)選實(shí)施例中,所述步驟101具體可以包括如下子步驟子步驟SI I、調(diào)用操作系統(tǒng)應(yīng)用程序接口 API中的GetNamedSecurityInfo例程和AccessCheck 例程;子步驟S12、通過(guò)所述GetNamedSecurityInfo例程獲取目標(biāo)文件的安全描述符,以及,通過(guò)所述AccessCheck例程依據(jù)所述安全描述符查詢目標(biāo)文件的操作權(quán)限信息。為更好地識(shí)別來(lái)意程序的文件自保護(hù)行為并加以對(duì)抗,作為本發(fā)明的另一種優(yōu)選實(shí)施例,也可以通過(guò)調(diào)用自定義的用于查詢文件權(quán)限的應(yīng)用程序接口獲取目標(biāo)文件的操作權(quán)限信息。例如,自定義的應(yīng)用程序接口導(dǎo)出了一組函數(shù)接口 AsGetFileLockType、DsSetTargetAccess等,其中DsGetFileLockType可以查詢指定文件權(quán)限,它行為模擬了操作系統(tǒng) API GetNamedSecurityInfo> AccessCheck 等例程。因而,在本發(fā)明的另一種優(yōu)選實(shí)施例中,所述步驟101具體可以包括如下子步驟子步驟S21、調(diào)用自定義的應(yīng)用程序接口中的DsSetTargetAccess例程設(shè)置目標(biāo)文件的權(quán)限集合,所述DsSetTargetAccess例程的執(zhí)行邏輯設(shè)置與操作系統(tǒng)應(yīng)用程序接口API 中的 SetNamedSecurityInfo 例程一致。在具體實(shí)現(xiàn)中,對(duì)于調(diào)用者而言,返回值宏ERR0R_SUCCESS (值為O)表示成功、宏ERROR_ACCESS_DENIED表示失敗(訪問(wèn)拒絕,值為5)。也就是說(shuō),根據(jù)上述返回值,調(diào)用者可以獲知對(duì)目標(biāo)文件有無(wú)操作權(quán)限。
      當(dāng)然,上述獲取目標(biāo)文件操作權(quán)限信息的方法僅僅用作示例,本領(lǐng)域技術(shù)人員依據(jù)實(shí)際情況采用任一種方法獲取文件的操作權(quán)限信息都是可行的,本發(fā)明對(duì)此無(wú)需加以限制。步驟102、若所述目標(biāo)文件無(wú)操作權(quán)限,則調(diào)用自定義的用于目標(biāo)權(quán)限設(shè)置的應(yīng)用程序接口針對(duì)所述目標(biāo)文件添加操作權(quán)限。在本發(fā)明的一種優(yōu)選實(shí)施例中,所述步驟102具體可以包括如下子步驟子步驟S31、調(diào)用自定義的應(yīng)用程序接口中的DsSetTargetAccess例程設(shè)置目標(biāo)文件的權(quán)限集合,所述DsSetTargetAccess例程的執(zhí)行邏輯設(shè)置與操作系統(tǒng)應(yīng)用程序接口API 中的 SetNamedSecurityInfo 例程一致。針對(duì)文件解鎖的應(yīng)用,在本發(fā)明的一種優(yōu)選實(shí)施例中,在針對(duì)所述目標(biāo)文件添加操作權(quán)限后,還可以包括如下步驟
      調(diào)用操作系統(tǒng)應(yīng)用程序接口 API或自定義的用于打開(kāi)文件的應(yīng)用程序接口,打開(kāi) 所述具有操作權(quán)限的目標(biāo)文件。針對(duì)文件粉碎的應(yīng)用,在本發(fā)明的一種優(yōu)選實(shí)施例中,在打開(kāi)所述目標(biāo)文件后,還可以包括如下步驟對(duì)所述具有操作權(quán)限的目標(biāo)文件進(jìn)行操作,所述操作包括文件刪除操作。本實(shí)施例主要是針對(duì)實(shí)際中先對(duì)文件進(jìn)行權(quán)限校驗(yàn),在獲得權(quán)限后執(zhí)行文件打開(kāi)解鎖,或進(jìn)一步執(zhí)行文件刪除粉碎而言的。需要說(shuō)明的是,在本發(fā)明實(shí)施例中,所述文件打開(kāi)不是指通過(guò)雙擊鼠標(biāo)或按回車鍵等觸發(fā)方式打開(kāi)文件(如*. exe、*. doc等類型的文件);而是指用操作系統(tǒng)API或本發(fā)明的自定義應(yīng)用程序接口 BAPI (應(yīng)用本發(fā)明,可以在操作系統(tǒng)用戶態(tài)接口完整實(shí)現(xiàn)一套文件操作調(diào)用庫(kù))的CreateFileO函數(shù)等打開(kāi)文件、得到文件句柄的操作,因?yàn)橹挥械玫轿募浔蟛趴梢赃M(jìn)一步操作該文件。從函數(shù)調(diào)用方法角度而言,本發(fā)明實(shí)施例中所指文件“打開(kāi)”主要包括以下幾種情形I、使用Windows標(biāo)準(zhǔn)API CreateFile函數(shù)打開(kāi)目標(biāo)文件;2、使用 Windows Native API ZwCreateFile/NtCreateFile 函數(shù)打開(kāi)目標(biāo)文件;3、使用 Windows Native API ZwOpenFile/NtOpenFile 函數(shù)打開(kāi)目標(biāo)文件其中,CreateFile的參數(shù)dwCreationDisposition可以控制函數(shù)行為是“創(chuàng)建新文件”還是“打開(kāi)已經(jīng)存在的文件”。參考圖2,示出了本發(fā)明的一種文件解鎖的方法實(shí)施例2的步驟流程圖,具體可以包括以下步驟步驟201、調(diào)用自定義的用于打開(kāi)文件的應(yīng)用程序接口打開(kāi)所述目標(biāo)文件;在本發(fā)明的一種優(yōu)選實(shí)施例中,所述步驟201具體可以包括以下子步驟子步驟S41、獲取針對(duì)目標(biāo)文件的操作請(qǐng)求,所述請(qǐng)求中包括調(diào)用者輸入?yún)?shù),所述輸入?yún)?shù)中包括文件路徑;子步驟S42、校驗(yàn)所述調(diào)用者輸入?yún)?shù),若校驗(yàn)通過(guò),則依據(jù)所述文件路徑在對(duì)象管理器中查找對(duì)應(yīng)的文件對(duì)象解析例程;子步驟S43、若查找到對(duì)應(yīng)的文件對(duì)象解析例程,則依據(jù)所述文件對(duì)象解析例程生成I/O請(qǐng)求包,并發(fā)送至預(yù)置的文件系統(tǒng)下層設(shè)備的原始地址。更為優(yōu)選的是,所述子步驟S42中依據(jù)文件路徑在對(duì)象管理器中查找對(duì)應(yīng)的文件對(duì)象解析例程的步驟具體包括以下子步驟;子步驟S421、判斷文件路徑是否已經(jīng)拆解完畢,若否,則執(zhí)行子步驟S422 ;若是,則執(zhí)行子步驟S424 ;
      ·
      子步驟S422、按照路徑分隔符拆解出文件路徑中下一個(gè)待拆解的路徑段;子步驟S423、采用當(dāng)前拆解出的路徑段在對(duì)象管理器中搜索,判斷是否存在對(duì)應(yīng)的文件對(duì)象例程;若是,則返回子步驟S421 ;若否,則執(zhí)行子步驟S425 ;子步驟S424、獲得所述文件路徑對(duì)應(yīng)的文件對(duì)象解析例程。子步驟S425、返回未找到對(duì)應(yīng)文件對(duì)象解析例程的信息。在本發(fā)明實(shí)施例中,所述文件包括WINDOWS操作系統(tǒng)中所支持類型的文件,所述文件操作是指針對(duì)文件的原子操作或原子操作的組合,所述原子操作包括文件創(chuàng)建、文件讀取、文件寫入、文件屬性設(shè)置、文件屬性獲取、文件指針設(shè)置、文件大小獲取、文件刪除、目錄移除、句柄關(guān)閉、第一個(gè)文件查找、下一個(gè)文件查找、文件查找關(guān)閉、判斷路徑是否為目錄、判斷目標(biāo)文件是否存在、長(zhǎng)路徑獲取、短路徑獲取、路徑查找、文件復(fù)制、文件移動(dòng)等。例如,文件的殺毒操作即為文件讀取、第一個(gè)文件查找、下一個(gè)文件查找、文件查找關(guān)閉、文件移動(dòng)等原子操作的組合。在具體實(shí)現(xiàn)中,所述I/O請(qǐng)求包中可以包括從文件操作請(qǐng)求中提取的文件操作信息,在發(fā)送I/o請(qǐng)求包至預(yù)置的文件系統(tǒng)下層設(shè)備的原始地址之后,所述調(diào)用自定義的應(yīng)用程序接口對(duì)所述目標(biāo)文件進(jìn)行操作的步驟還可以包括以下子步驟子步驟S14、由所述文件系統(tǒng)下層設(shè)備依據(jù)所述文件操作信息執(zhí)行對(duì)應(yīng)的文件操作。作為本發(fā)明文件解鎖應(yīng)用的一種示例,所述文件操作請(qǐng)求可以包括目標(biāo)文件打開(kāi)請(qǐng)求,相應(yīng)地,所述文件操作信息可以包括目標(biāo)文件打開(kāi)操作,在這種情況下,所述文件系統(tǒng)下層設(shè)備則可以依據(jù)所述文件操作信息執(zhí)行打開(kāi)所述目標(biāo)文件的操作。作為本發(fā)明文件刪除應(yīng)用的一種示例,所述文件操作請(qǐng)求還可以包括目標(biāo)文件刪除請(qǐng)求,相應(yīng)地,所述文件操作信息還可以包括目標(biāo)文件刪除操作,在這種情況下,所述文件系統(tǒng)下層設(shè)備則可以依據(jù)所述文件操作信息在打開(kāi)所述目標(biāo)文件后,執(zhí)行所述目標(biāo)文件的刪除操作。在具體實(shí)現(xiàn)中,調(diào)用者進(jìn)程通過(guò)調(diào)用BAPI發(fā)起文件操作請(qǐng)求,調(diào)用對(duì)應(yīng)的文件操作接口例程,操作系統(tǒng)內(nèi)核態(tài)驅(qū)動(dòng)獲取并校驗(yàn)所述來(lái)自用戶態(tài)的請(qǐng)求,構(gòu)建查詢數(shù)據(jù)結(jié)構(gòu)循環(huán)解析傳入的文件路徑,最終查找到對(duì)象管理器中維護(hù)的對(duì)象類型,這一過(guò)程有效對(duì)抗了內(nèi)核態(tài)的劫持內(nèi)險(xiǎn)。此后,操作系統(tǒng)內(nèi)核態(tài)驅(qū)動(dòng)構(gòu)建并填充IRP請(qǐng)求數(shù)據(jù)包,發(fā)送至預(yù)先確定的文件系統(tǒng)下層設(shè)備的原始地址處,此時(shí)文件系統(tǒng)調(diào)用棧上的第三方過(guò)濾驅(qū)動(dòng)(其他安全軟件、驅(qū)動(dòng)級(jí)惡意程序)被穿透(旁路,bypass)。簡(jiǎn)而言之,即本發(fā)明通過(guò)建立一條新的、可信的、可以穿透過(guò)濾驅(qū)動(dòng)的文件操作執(zhí)行路徑,有效避免了傳統(tǒng)操作系統(tǒng)的文件執(zhí)行路徑上存在的風(fēng)險(xiǎn)。步驟202、獲取目標(biāo)文件的操作權(quán)限信息;在本實(shí)施例中,本步驟具體可以為,調(diào)用自定義的應(yīng)用程序接口中的DsGetFileLockType例程,通過(guò)所述DsGetFileLockType例程獲取目標(biāo)文件的安全描述符,并依據(jù)所述安全描述符查詢目標(biāo)文件的操作權(quán)限信息。步驟203、若所述目標(biāo)文件無(wú)操作權(quán)限,則調(diào)用自定義的用于目標(biāo)權(quán)限設(shè)置的應(yīng)用程序接口針對(duì)所述目標(biāo)文件添加操作權(quán)限。本實(shí)施例主要是針對(duì)實(shí)際中先解鎖打開(kāi)目標(biāo)文件,然后進(jìn)行權(quán)限校驗(yàn),在獲得權(quán)限后進(jìn)一步執(zhí)行文件刪除粉碎而言的。針對(duì)文件粉碎的應(yīng)用,在本發(fā)明的一種優(yōu)選實(shí)施例中,在對(duì)所述目標(biāo)文件添加操作權(quán)限后,還可以包括如下步驟對(duì)所述具有操作權(quán)限的目標(biāo)文件進(jìn)行操作,所述操作包 括文件刪除操作。在本實(shí)施例,所述文件刪除操作由文件系統(tǒng)下層設(shè)備根據(jù)IRP中的文件刪除操作信息完成。需要說(shuō)明的是,對(duì)于方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。參考圖3,示出了本發(fā)明的一種文件解鎖的裝置實(shí)施例的結(jié)構(gòu)框圖,具體可以包括以下模塊權(quán)限信息獲取模塊301,用于獲取目標(biāo)文件的操作權(quán)限信息;權(quán)限添加模塊302,用于在所述目標(biāo)文件無(wú)操作權(quán)限時(shí),調(diào)用自定義的用于目標(biāo)權(quán)限設(shè)置的應(yīng)用程序接口針對(duì)所述目標(biāo)文件添加操作權(quán)限。在本發(fā)明的一種優(yōu)選實(shí)施例,針對(duì)文件解鎖的應(yīng)用,所述的裝置還包括第一文件打開(kāi)模塊,用于在針對(duì)所述目標(biāo)文件添加操作權(quán)限后,調(diào)用操作系統(tǒng)應(yīng)用程序接口 API或自定義的用于打開(kāi)文件的應(yīng)用程序接口,打開(kāi)所述具有操作權(quán)限的目標(biāo)文件。作為本發(fā)明的另一種優(yōu)選實(shí)施例,針對(duì)文件解鎖的應(yīng)用,所述的裝置還包括第二文件打開(kāi)模塊,用于在獲取目標(biāo)文件的操作權(quán)限信息之前,調(diào)用自定義的用于打開(kāi)文件的應(yīng)用程序接口打開(kāi)所述目標(biāo)文件。針對(duì)文件粉碎的應(yīng)用,本實(shí)施例還可以包括以下模塊文件粉碎模塊,用于對(duì)所述具有操作權(quán)限的目標(biāo)文件進(jìn)行操作,所述操作包括文件刪除操作。在具體實(shí)現(xiàn)中,所述目標(biāo)文件的操作權(quán)限信息可以通過(guò)調(diào)用操作系統(tǒng)應(yīng)用程序接口 API中的GetNamedSecurityInfo例程和AccessCheck例程獲??;其中,所述GetNamedSecurityInfo例程用于獲取目標(biāo)文件的安全描述符,所述AccessCheck例程用于依據(jù)所述安全描述符查詢目標(biāo)文件的操作權(quán)限信息。作為本發(fā)明具體應(yīng)用的一種示例,所述目標(biāo)文件的操作權(quán)限信息還可以通過(guò)調(diào)用自定義的應(yīng)用程序接口中的DsGetFileLockType例程獲??;其中,所述DsGetFileLockType例程用于獲取目標(biāo)文件的安全描述符,并依據(jù)所述安全描述符查詢目標(biāo)文件的操作權(quán)限信
      肩、O在本發(fā)明的一種優(yōu)選實(shí)施例中,所述權(quán)限添加模塊可以包括
      預(yù)設(shè)例程調(diào)用子模塊,用于調(diào)用自定義的應(yīng)用程序接口中的DsSetTargetAccess例程設(shè)置目標(biāo)文件的權(quán)限集合,所述DsSetTargetAccess例程的執(zhí)行邏輯設(shè)置與操作系統(tǒng)應(yīng)用程序接口 API中的SetNamedSecurityInfo例程一致。由于所述裝置實(shí)施例基本相應(yīng)于前述方法實(shí)施例,故本實(shí)施例的描述中未詳盡之處,可以參見(jiàn)前述實(shí)施例中的相關(guān)說(shuō)明,在此就不贅述了。本發(fā)明可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。例如個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。本發(fā)明可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組 件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本發(fā)明,在這些分布式計(jì)算環(huán)境中,由通過(guò)通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。以上對(duì)本發(fā)明所提供的一種文件解鎖的方法和一種文件解鎖的裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
      及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
      權(quán)利要求
      1.一種文件解鎖的方法,其特征在于,包括 獲取目標(biāo)文件的操作權(quán)限信息; 若所述目標(biāo)文件無(wú)操作權(quán)限,則調(diào)用自定義的用于目標(biāo)權(quán)限設(shè)置的應(yīng)用程序接口針對(duì)所述目標(biāo)文件添加操作權(quán)限。
      2.如權(quán)利要求I所述的方法,其特征在于,在針對(duì)所述目標(biāo)文件添加操作權(quán)限后,還包括 調(diào)用操作系統(tǒng)應(yīng)用程序接口 API或自定義的用于打開(kāi)文件的應(yīng)用程序接口,打開(kāi)所述具有操作權(quán)限的目標(biāo)文件。
      3.如權(quán)利要求I所述的方法,其特征在于,在獲取目標(biāo)文件的操作權(quán)限信息之前,還包括 調(diào)用自定義的用于打開(kāi)文件的應(yīng)用程序接口打開(kāi)所述目標(biāo)文件。
      4.如權(quán)利要求1、2或3所述的方法,其特征在于,還包括 對(duì)所述具有操作權(quán)限的目標(biāo)文件進(jìn)行操作,所述操作包括文件刪除操作。
      5.如權(quán)利要求I或2所述的方法,其特征在于,所述獲取目標(biāo)文件的操作權(quán)限信息的步驟包括 調(diào)用操作系統(tǒng)應(yīng)用程序接口 API中的GetNamedSecurityInfo例程和AccessCheck例程; 通過(guò)所述GetNamedSecurityInfo例程獲取目標(biāo)文件的安全描述符,以及,通過(guò)所述AccessCheck例程依據(jù)所述安全描述符查詢目標(biāo)文件的操作權(quán)限信息。
      6.如權(quán)利要求1、2或3所述的方法,其特征在于,所述獲取目標(biāo)文件的操作權(quán)限信息的步驟包括 調(diào)用自定義的應(yīng)用程序接口中的DsGetFileLockType例程,通過(guò)所述DsGetFileLockType例程獲取目標(biāo)文件的安全描述符,并依據(jù)所述安全描述符查詢目標(biāo)文件的操作權(quán)限信息。
      7.如權(quán)利要求2或3所述的方法,其特征在于,所述調(diào)用自定義的用于目標(biāo)權(quán)限設(shè)置的應(yīng)用程序接口針對(duì)目標(biāo)文件添加操作權(quán)限的步驟包括 調(diào)用自定義的應(yīng)用程序接口中的DsSetTargetAccess例程設(shè)置目標(biāo)文件的權(quán)限集合,所述DsSetTargetAccess例程的執(zhí)行邏輯設(shè)置與操作系統(tǒng)應(yīng)用程序接口 API中的SetNamedSecurityInfo 例程一致。
      8.如權(quán)利要求3所述的方法,其特征在于,所述調(diào)用自定義的應(yīng)用程序接口打開(kāi)目標(biāo)文件的步驟包括 獲取針對(duì)目標(biāo)文件的操作請(qǐng)求,所述請(qǐng)求中包括調(diào)用者輸入?yún)?shù),所述輸入?yún)?shù)中包括文件路徑; 校驗(yàn)所述調(diào)用者輸入?yún)?shù),若校驗(yàn)通過(guò),則依據(jù)所述文件路徑在對(duì)象管理器中查找對(duì)應(yīng)的文件對(duì)象解析例程; 若查找到對(duì)應(yīng)的文件對(duì)象解析例程,則依據(jù)所述文件對(duì)象解析例程生成I/O請(qǐng)求包,并發(fā)送至預(yù)置的文件系統(tǒng)下層設(shè)備的原始地址。
      9.如權(quán)利要求8所述的方法,其特征在于,所述依據(jù)文件路徑在對(duì)象管理器中查找對(duì)應(yīng)的文件對(duì)象解析例程的步驟具體包括以下子步驟;子步驟SI、判斷文件路徑是否已經(jīng)拆解完畢,若否,則執(zhí)行子步驟S2 ;若是,則執(zhí)行子步驟S4 ; 子步驟S2、按照路徑分隔符拆解出文件路徑中下一個(gè)待拆解的路徑段; 子步驟S3、采用當(dāng)前拆解出的路徑段在對(duì)象管理器中搜索,判斷是否存在對(duì)應(yīng)的文件對(duì)象例程;若是,則返回子步驟SI ;若否,則執(zhí)行子步驟S5 ; 子步驟S4、獲得所述文件路徑對(duì)應(yīng)的文件對(duì)象解析例程。
      子步驟S5、返回未找到對(duì)應(yīng)文件對(duì)象解析例程的信息。
      10.一種文件解鎖的裝置,其特征在于,包括 權(quán)限信息獲取模塊,用于獲取目標(biāo)文件的操作權(quán)限信息; 權(quán)限添加模塊,用于在所述目標(biāo)文件無(wú)操作權(quán)限時(shí),調(diào)用自定義的用于目標(biāo)權(quán)限設(shè)置的應(yīng)用程序接口針對(duì)所述目標(biāo)文件添加操作權(quán)限。
      11.如權(quán)利要求10所述的裝置,其特征在于,還包括 第一文件打開(kāi)模塊,用于在針對(duì)所述目標(biāo)文件添加操作權(quán)限后,調(diào)用操作系統(tǒng)應(yīng)用程序接口 API或自定義的用于打開(kāi)文件的應(yīng)用程序接口,打開(kāi)所述具有操作權(quán)限的目標(biāo)文件。
      12.如權(quán)利要求10所述的裝置,其特征在于,還包括 第二文件打開(kāi)模塊,用于在獲取目標(biāo)文件的操作權(quán)限信息之前,調(diào)用自定義的用于打開(kāi)文件的應(yīng)用程序接口打開(kāi)所述目標(biāo)文件。
      13.如權(quán)利要求10、11或12所述的裝置,其特征在于,還包括 文件粉碎模塊,用于對(duì)所述具有操作權(quán)限的目標(biāo)文件進(jìn)行操作,所述操作包括文件刪除操作。
      14.如權(quán)利要求10或11所述的裝置,其特征在于,所述目標(biāo)文件的操作權(quán)限信息通過(guò)調(diào)用操作系統(tǒng)應(yīng)用程序接口 API中的GetNamedSecurityInfo例程和AccessCheck例程獲??;其中,所述GetNamedSecurityInfo例程用于獲取目標(biāo)文件的安全描述符,所述AccessCheck例程用于依據(jù)所述安全描述符查詢目標(biāo)文件的操作權(quán)限信息。
      15.如權(quán)利要求10、11或12所述的裝置,其特征在于,所述目標(biāo)文件的操作權(quán)限信息通過(guò)調(diào)用自定義的應(yīng)用程序接口中的DsGetFi IeLockType例程獲?。黄渲?,所述DsGetFileLockType例程用于獲取目標(biāo)文件的安全描述符,并依據(jù)所述安全描述符查詢目標(biāo)文件的操作權(quán)限信息。
      16.如權(quán)利要求11或12所述的裝置,其特征在于,所述權(quán)限添加模塊包括 預(yù)設(shè)例程調(diào)用子模塊,用于調(diào)用自定義的應(yīng)用程序接口中的DsSetTargetAccess例程設(shè)置目標(biāo)文件的權(quán)限集合,所述DsSetTargetAccess例程的執(zhí)行邏輯設(shè)置與操作系統(tǒng)應(yīng)用程序接口 API 中的 SetNamedSecurityInfo 例程一致。
      全文摘要
      本發(fā)明提供了一種文件解鎖的方法及裝置,其中所述方法包括獲取目標(biāo)文件的操作權(quán)限信息;若所述目標(biāo)文件無(wú)操作權(quán)限,則調(diào)用自定義的用于目標(biāo)權(quán)限設(shè)置的應(yīng)用程序接口針對(duì)所述目標(biāo)文件添加操作權(quán)限。本發(fā)明所提供的文件解鎖、粉碎、粉碎機(jī)制不僅安全、可靠、成功率高,并且可以在復(fù)雜的客戶端環(huán)境中識(shí)別惡意程序的文件自保護(hù)行為并加以對(duì)抗,增強(qiáng)了和驅(qū)動(dòng)級(jí)惡意程序攻防的對(duì)抗能力。
      文檔編號(hào)G06F21/56GK102855438SQ20111017555
      公開(kāi)日2013年1月2日 申請(qǐng)日期2011年6月27日 優(yōu)先權(quán)日2011年6月27日
      發(fā)明者王宇, 潘劍鋒, 鄭文彬 申請(qǐng)人:奇智軟件(北京)有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1