国产精品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>

      文件打開方法及裝置的制作方法

      文檔序號:6432399閱讀:244來源:國知局
      專利名稱:文件打開方法及裝置的制作方法
      技術(shù)領域
      本發(fā)明涉及數(shù)據(jù)處理技術(shù)領域,特別涉及一種文件打開方法及裝置。
      背景技術(shù)
      隨著網(wǎng)絡的迅速發(fā)展,信息數(shù)量日益增加,存儲信息的各種電子文件數(shù)量也越來越多。無論是在日常的休閑娛樂中,還是在緊張忙碌的工作中,都常常會看到或用到各種各樣的文件,打開文件也幾乎成為了人們每天必不可少的事?,F(xiàn)有的文件打開方式都是通過常規(guī)的Windows API (Application ProgrammingInterface,應用程序編程接口 )機制實現(xiàn),且文件的打開操作會被文件過濾驅(qū)動捕獲和控制。其中,文件過濾驅(qū)動是一種Windows驅(qū)動程序,其依附在文件系統(tǒng)上,可以截獲系統(tǒng)對文件的訪問,并提供過濾控制等功能。在裝有殺毒軟件的機器上,文件打開動作被文件過濾驅(qū)動捕獲后,會激活一次病毒掃描。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題現(xiàn)有的文件打開方式中,文件打開時激活的病毒掃描在多數(shù)情況下是不必要的,且會加重系統(tǒng)負擔;另外,在多個殺毒軟件共存的情況下,其中一款殺毒軟件的文件打開操作會引起另一款殺毒軟件的病毒掃描,掃描又會打開文件,另一款殺毒會被激活,然后再去掃描,由此引發(fā)文件的重復打開,導致系統(tǒng)出現(xiàn)兼容性問題。

      發(fā)明內(nèi)容
      為了在打開文件的同時,避免出現(xiàn)因文件的重復打開而引起的兼容性問題以及加重系統(tǒng)負擔的問題,本發(fā)明實施例提供了一種文件打開方法及裝置。所述技術(shù)方案如下一方面,提供了一種文件打開方法,所述方法包括捕獲文件打開動作,并獲取對應的原始文件系統(tǒng)設備對象和原始文件系統(tǒng)分發(fā)函數(shù)地址;直接向所述原始文件系統(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,并由所述文件系統(tǒng)將所述文件打開請求傳遞給所述原始文件系統(tǒng)分發(fā)函數(shù)地址所對應的原始文件系統(tǒng)分發(fā)函數(shù),由所述原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作。進一步地,所述捕獲文件打開動作之前,還包括搜索32位動態(tài)鏈接庫文件的導入表,以預設的函數(shù)地址替換所述導入表中保存的函數(shù)地址;相應地,由所述原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作時,具體包括由所述原始文件系統(tǒng)分發(fā)函數(shù)按照替換后的預設的函數(shù)地址執(zhí)行文件打開操作。進一步地,所述捕獲文件打開動作之后,還包括記錄所述文件打開動作所對應的參數(shù);相應地,由所述原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作時,具體包括由所述原始文件系統(tǒng)分發(fā)函數(shù)按照記錄的參數(shù)執(zhí)行文件打開操作。
      其中,所述獲取對應的原始文件系統(tǒng)設備對象,具體包括通過預先編寫的驅(qū)動程序在記錄有文件系統(tǒng)設備對象的VPB結(jié)構(gòu)中查找對應的原始文件系統(tǒng)設備對象。所述獲取對應的原始文件系統(tǒng)分發(fā)函數(shù)地址,具體包括以BOOT方式啟動預先編寫的驅(qū)動程序,通過所述預先編寫的驅(qū)動程序獲取對應的原始文件系統(tǒng)分發(fā)函數(shù)地址。所述直接向所述原始文件系統(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,具體包括使用IoCreateFileSpecifyDeviceObjectHint函數(shù),并以所述原始文件系統(tǒng)設備對象為參數(shù),將所述文件打開請求直接發(fā)送給所述原始文件系統(tǒng)設備對象所在的文件系統(tǒng)。另一方面,還提供了一種文件打開裝置,所述裝置包括捕獲模塊,用于捕獲文件打開動作;第一獲取模塊,用于在所述捕獲模塊捕獲到文件打開動作后,獲取對應的原始文件系統(tǒng)設備對象;第二獲取模塊,用于在所述捕獲模塊捕獲到文件打開動作后,獲取對應的原始文件系統(tǒng)分發(fā)函數(shù)地址;發(fā)送模塊,用于直接向所述第一獲取模塊獲取到的原始文件系統(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,并由所述文件系統(tǒng)將所述文件打開請求傳遞給所述第二獲取模塊獲取到的原始文件系統(tǒng)分發(fā)函數(shù)地址所對應的原始文件系統(tǒng)分發(fā)函數(shù);打開模塊,用于由所述原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作。進一步地,所述裝置,還包括替換模塊,用于搜索32位動態(tài)鏈接庫文件的導入表,以預設的函數(shù)地址替換所述導入表中保存的函數(shù)地址;相應地,所述打開模塊,具體用于由所述原始文件系統(tǒng)分發(fā)函數(shù)按照所述替換模塊替換后的預設的函數(shù)地址執(zhí)行文件打開操作。進一步地,所述裝置,還包括記錄模塊,用于記錄所述捕獲模塊捕獲到的文件打開動作所對應的參數(shù);相應地,所述打開模塊,具體用于由所述原始文件系統(tǒng)分發(fā)函數(shù)按照所述記錄模塊記錄的參數(shù)進行文件打開操作。其中,所述第一獲取模塊,具體用于通過預先編寫的驅(qū)動程序在記錄有文件系統(tǒng)設備對象的VPB結(jié)構(gòu)中查找對應的原始文件系統(tǒng)設備對象。所述第二獲取模塊,具體用于以BOOT方式啟動預先編寫的驅(qū)動程序,通過所述預先編寫的驅(qū)動程序獲取對應的原始文件系統(tǒng)分發(fā)函數(shù)地址。所述發(fā)送模塊,具體用于使用IoCreateFileSpecifyDeviceObjectHint函數(shù),并以所述原始文件系統(tǒng)設備對象為參數(shù),將所述文件打開請求直接發(fā)送給所述原始文件系統(tǒng)設備對象所在的文件系統(tǒng)。本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是通過捕獲文件打開動作,直接向?qū)脑嘉募到y(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,由對應的原始文件系統(tǒng)分發(fā)函數(shù)進行文件打開操作,實現(xiàn)了對文件過濾驅(qū)動的穿透,從而避免了因每次打開文件都進行病毒掃描的不必要操作,且避免了在安裝多個殺毒軟件時,因重復打開文件進行掃描所造成的系統(tǒng)負擔加重問題及兼容性問題。


      為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明實施例一提供的文件打開方法流程圖;圖2是本發(fā)明實施例二提供的文件打開方法流程圖;圖3是本發(fā)明實施例二提供的文件打開過程中的穿透流程圖;圖4是本發(fā)明實施例三提供的文件打開裝置的結(jié)構(gòu)示意圖;圖5是本發(fā)明實施例三提供的另一種文件打開裝置的結(jié)構(gòu)示意圖;圖6是本發(fā)明實施例三提供的又一種文件打開裝置的結(jié)構(gòu)示意圖。
      具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。實施例一由于現(xiàn)有的文件打開方式中,文件打開動作會被文件過濾驅(qū)動捕獲和控制,從而激活病毒掃描,該種操作不僅會增加系統(tǒng)的負擔,針對安裝多個殺毒軟件的情況,該種操作還可引發(fā)多個殺毒軟件的兼容性問題。對此,本實施例提供了一種文件打開方法,該方法通過穿透原有的文件打開方式中的文件過濾驅(qū)動操作,直接將文件打開請求發(fā)送到文件系統(tǒng)來執(zhí)行打開操作,從而避免了因文件過濾驅(qū)動的控制所造成的系統(tǒng)負擔加重問題及兼容性問題。參見圖1,本實施例提供的方法流程具體如下101 :捕獲文件打開動作,并獲取對應的原始文件系統(tǒng)設備對象和原始文件系統(tǒng)分發(fā)函數(shù)地址;102:直接向原始文件系統(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,并由文件系統(tǒng)將文件打開請求傳遞給原始文件系統(tǒng)分發(fā)函數(shù)地址所對應的原始文件系統(tǒng)分發(fā)函數(shù);103 :由原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作。進一步地,捕獲文件打開動作之前,還包括搜索32位動態(tài)鏈接庫文件的導入表,以預設的函數(shù)地址替換導入表中保存的函數(shù)地址;相應地,由原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作時,具體包括由原始文件系統(tǒng)分發(fā)函數(shù)按照替換后的預設的函數(shù)地址執(zhí)行文件打開操作。其中,32位動態(tài)連接庫文件的導入表中記錄了可執(zhí)行文件需要使用到的系統(tǒng)API函數(shù)的地址,這個API函數(shù)的地址即為導入表中保存的函數(shù)地址,例如,NtCreateFile和NtOpenFile等函數(shù)的地址。以預設的函數(shù)地址替換導入表中保存的函數(shù)地址是為了在文件過濾驅(qū)動捕獲和控制文件打開操作之前,穿透中間經(jīng)過的過濾驅(qū)動,從而將文件打開請求直接傳遞到原始文件系統(tǒng)設備對象所在的文件系統(tǒng),并由原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作,進而避免因每次打開文件都進行病毒掃描的不必要操作,且避免了在安裝多個殺毒軟件時,因重復打開文件進行掃描所造成的系統(tǒng)負擔加重問題及兼容性問題。具體實現(xiàn)時,可以預設的函數(shù)MyNtCreateFile的地址替換導入表中保存的函數(shù)的地址,當然,還可以采用其他預設的函數(shù),本實施例不對具體的預設的函數(shù)地址進行限定,能夠?qū)崿F(xiàn)對文件過濾驅(qū)動的穿透即可。進一步地,捕獲文件打開動作之后,還包括記錄文件打開動作所對應的參數(shù);相應地,由原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作時,具體包括由原始文件系統(tǒng)分發(fā)函數(shù)按照記錄的參數(shù)執(zhí)行文件打開操作。其中,獲取對應的原始文件系統(tǒng)設備對象,具體包括通過預先編寫的驅(qū)動程序在記錄有文件系統(tǒng)設備對象的VPB(Volume ParameterBlock,卷參數(shù)塊)結(jié)構(gòu)中查找對應的原始文件系統(tǒng)設備對象。獲取對應的原始文件系統(tǒng)分發(fā)函數(shù)地址,具體包括以BOOT方式啟動預先編寫的驅(qū)動程序,通過預先編寫的驅(qū)動程序獲取對應的原始文件系統(tǒng)分發(fā)函數(shù)地址。直接向原始文件系統(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,具體包括使用IoCreateFileSpecifyDeviceObjectHint函數(shù),并以原始文件系統(tǒng)設備對象為參數(shù),將文件打開請求直接發(fā)送給原始文件系統(tǒng)設備對象所在的文件系統(tǒng)。本實施例提供的方法,通過捕獲文件打開動作,直接向?qū)脑嘉募到y(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,由對應的原始文件系統(tǒng)分發(fā)函數(shù)進行文件打開操作,實現(xiàn)了對文件過濾驅(qū)動的穿透,從而避免了因每次打開文件都進行病毒掃描的不必要操作,且避免了在安裝多個殺毒軟件時,因重復打開文件進行掃描所造成的系統(tǒng)負擔加重問題及兼容性問題。為了更加詳細地闡述本實施例提供的方法,接下來,以實施例二為例,對本實施例提供的方法進行解釋說明,詳見如下實施例二 實施例二本實施例提供了一種文件打開方法,該方法通過穿透原有的文件打開方式中的文件過濾驅(qū)動,直接將文件打開請求發(fā)送到文件系統(tǒng)來執(zhí)行文件打開操作,從而對上述實施例一提供的方法作進一步詳細的解釋說明,避免了因文件過濾驅(qū)動的控制所造成的系統(tǒng)負擔加重問題及兼容性問題。參見圖2,本實施例提供的方法流程具體如下201 :搜索32位動態(tài)鏈接庫文件的導入表,并以預設的函數(shù)地址替換導入表中保存的函數(shù)地址;其中,32位動態(tài)鏈接庫文件的導入表,即為可執(zhí)行文件必備的kernel32. dll的導入表,其記錄了文件需要使用到的系統(tǒng)API函數(shù)的地址。搜索該32位動態(tài)鏈接庫文件的導入表,以預設的函數(shù)地址替換導入表中保存的函數(shù)地址的過程即為實現(xiàn)hook的過程,通過在ring應用層執(zhí)行hook,即可先對打開文件等操作進行控制,從而在替換地址之后,當調(diào)用原來函數(shù)時,流程會進入到替換后的預設的函數(shù)。本實施例不對導入表中保存的原函數(shù)地址及替換后的地址進行限定,此處hook的函數(shù)可以是NtCreateFile和NtOpenFile等函數(shù),替換后的預設的函數(shù)地址可根據(jù)需要進行設定。具體實現(xiàn)時,可以預設的函數(shù)MyNtCreateFile的地址替換導入表中保存的函數(shù)的地址,當然,還可以采用其他預設的函數(shù),本實施例不對具體的預設的函數(shù)地址進行限定,能夠?qū)崿F(xiàn)對文件過濾驅(qū)動的穿透即可。如圖3所示,替換導入表中保存的函數(shù)地址后,文件打開流程由原來的虛箭頭所示流程修改為實箭頭所示的流程,從而穿透了原有流程中可能存在的文件過濾驅(qū)動。需要說明的是,對于多次打開同一文件或打開多個文件的情況,無需每次重復執(zhí)行該步驟,替換kernel32. dll導入表中記錄的系統(tǒng)API函數(shù)的地址一次即可,替換之后,每當調(diào)用原來的系統(tǒng)API函數(shù)時,都將改成調(diào)用替換后的地址所對應的函數(shù),以此穿透原來的文件過濾驅(qū)動。202 :捕獲文件打開動作,并記錄打開動作所對應的參數(shù);針對該步驟,本實施例不對捕獲文件打開動作的具體方式進行限定,由于現(xiàn)有的文件打開方式中也會存在捕獲文件打開動作的操作,因此可通過現(xiàn)有的實現(xiàn)方式實現(xiàn)。對于打開動作所對應的參數(shù),本實施例對此不進行具體限定,包括但不限于文件名,申請的權(quán)限等參數(shù)。記錄打開動作所對應的參數(shù),即將打開動作所對應的參數(shù)保存到內(nèi)存中,以備后續(xù)根據(jù)記錄的參數(shù)執(zhí)行打開操作。203 :獲取對應的原始文件系統(tǒng)設備對象和原始文件系統(tǒng)分發(fā)函數(shù)地址;具體地,文件系統(tǒng)指用于存儲文件的磁盤或分區(qū),而文件系統(tǒng)設備對象可以是某個磁盤,或某個分區(qū),不同的文件對應不同的文件系統(tǒng)設備對象,例如,如果待打開的文件位于C磁盤,則可將C磁盤作為該文件對應的文件系統(tǒng)設備對象。而文件系統(tǒng)分發(fā)函數(shù)用于執(zhí)行文件打開操作,對于不同的文件系統(tǒng)設備對象,其可以調(diào)用多個文件系統(tǒng)分發(fā)函數(shù)。當文件系統(tǒng)設備對象接收到文件打開請求時,即可調(diào)用對應的文件系統(tǒng)分發(fā)函數(shù)。在本實施例中,針對經(jīng)過文件過濾驅(qū)動捕獲并修改后的文件系統(tǒng)設備對象及文件系統(tǒng)分發(fā)函數(shù),本實施例將未被文件過濾驅(qū)動修改的該文件原本對應的文件系統(tǒng)設備對象稱為原始文件系統(tǒng)設備對象,該原始文件系統(tǒng)設備對象調(diào)用的文件系統(tǒng)分發(fā)函數(shù)稱為原始文件系統(tǒng)分發(fā)函數(shù)。本實施例不對獲取原始文件系統(tǒng)設備對象和原始文件系統(tǒng)分發(fā)函數(shù)地址的方式進行限定。實際應用中,可預先編寫用于獲取原始文件系統(tǒng)設備對象和原始文件系統(tǒng)分發(fā)函數(shù)地址的驅(qū)動程序,通過該預先編寫的驅(qū)動程序來獲取原始文件系統(tǒng)設備對象和原始文件系統(tǒng)分發(fā)函數(shù)地址。由于VPB(Volume Parameter Block,卷參數(shù)塊)結(jié)構(gòu)中記錄了文件系統(tǒng)設備對象,因此,可通過預先編寫的驅(qū)動程序在記錄有文件系統(tǒng)設備對象的VPB結(jié)構(gòu)中查找對應的原始文件系統(tǒng)設備對象。另外,由于預先編寫的驅(qū)動程序以BOOT方式啟動時,此時系統(tǒng)記錄的信息都是未經(jīng)修改過的,且可信的,則驅(qū)動程序以BOOT方式啟動時獲取到的文件系統(tǒng)分發(fā)函數(shù)地址即為原始文件系統(tǒng)分發(fā)函數(shù)地址。因此,可以BOOT方式啟動預先編寫的驅(qū)動程序,通過該預先編寫的驅(qū)動程序獲取對應的原始文件系統(tǒng)分發(fā)函數(shù)地址。204:直接向原始文件系統(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,并由文件系統(tǒng)將文件打開請求傳遞給原始文件系統(tǒng)分發(fā)函數(shù)地址所對應的原始文件系統(tǒng)分發(fā)函數(shù);具體地,直接向原始文件系統(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求時,本實施例不對具體的發(fā)送方式進行限定,具體實現(xiàn)時,可使用IoCreateFileSpecifyDeviceObjectHint函數(shù),并以原始文件系統(tǒng)設備對象為參數(shù),將文件打開請求直接發(fā)送給原始文件系統(tǒng)設備對象所在的文件系統(tǒng)。其中,IoCreateFileSpecifyDeviceObjectHint 函數(shù)為 Windows 系統(tǒng)自用的已有API函數(shù),通過使用該函數(shù)即可將文件打開請求直接發(fā)送給原始文件系統(tǒng)設備對象所在的文件系統(tǒng);當該文件打開請求被發(fā)送到原始文件系統(tǒng)設備對象所在的文件系統(tǒng)后,即將觸發(fā)原始文件系統(tǒng)設備對象調(diào)用對應的原始文件系統(tǒng)分發(fā)函數(shù),因而由該文件系統(tǒng)將該文件打開請求傳遞給原始文件系統(tǒng)分發(fā)函數(shù)地址所對應的原始文件系統(tǒng)分發(fā)函數(shù),由該原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作,從而繞開了中間的文件過濾驅(qū)動。205:由原始文件系統(tǒng)分發(fā)函數(shù)按照替換后的預設的函數(shù)地址及記錄的參數(shù)執(zhí)行文件打開操作。針對該步驟,由原始文件系統(tǒng)分發(fā)函數(shù)按照替換后的預設的函數(shù)地址執(zhí)行文件打開操作時,原來的文件打開流程已經(jīng)被修改,如圖3所示,虛箭頭所指的流程為原來的文件打開流程,其存在的NtCreateFile函數(shù)被替換為MyNtCreateFile函數(shù),文件打開流程也因此由原來虛箭頭所指的流程變?yōu)閷嵓^所指的流程,從而繞過了中間可能存在的文件過濾驅(qū)動,避免了過濾驅(qū)動截獲對文件的訪問而引起的對文件進行掃描等不必要的操作,即使安裝了多個殺毒軟件,通過本實施例提供的方法打開文件時,另一款殺毒軟件不會檢測到該文件的打開動作,從而不會被激活去掃描文件,因此避免了兼容性問題,也避免了加重系統(tǒng)負擔的問題。另外,由原始文件系統(tǒng)分發(fā)函數(shù)按照記錄的參數(shù)執(zhí)行文件打開操作的目的是為了符合原來的文件打開方式。例如,原來的文件打開動作對應的參數(shù)表明其僅具有讀權(quán)限,則在記錄該參數(shù),并根據(jù)該參數(shù)打開文件時,仍保持其僅具有讀權(quán)限,從而與原打開文件的權(quán)限要求保持一致,滿足用戶對文件打開的原始需求。本實施例提供的方法,通過捕獲文件打開動作,直接向?qū)脑嘉募到y(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,由對應的原始文件系統(tǒng)分發(fā)函數(shù)進行文件打開操作,實現(xiàn)了對文件過濾驅(qū)動的穿透,從而避免了因每次打開文件都進行病毒掃描的不必要操作,且避免了在安裝多個殺毒軟件時,因重復打開文件進行掃描所造成的系統(tǒng)負擔加重問題及兼容性問題。實施例三本實施例提供了一種文件打開裝置,參見圖4,該裝置包括捕獲模塊401,用于捕獲文件打開動作;第一獲取模塊402,用于在捕獲模塊401捕獲到文件打開動作后,獲取對應的原始文件系統(tǒng)設備對象;第二獲取模塊403,用于在捕獲模塊401捕獲到文件打開動作后,獲取對應的原始文件系統(tǒng)分發(fā)函數(shù)地址;發(fā)送模塊404,用于直接向第一獲取模塊402獲取到的原始文件系統(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,并將文件打開請求傳遞給第二獲取模塊403獲取到的原始文件系統(tǒng)分發(fā)函數(shù)地址所對應的原始文件系統(tǒng)分發(fā)函數(shù);打開模塊405,用于由原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作。進一步地,參見圖5,該裝置,還包括替換模塊406,用于搜索32位動態(tài)鏈接庫文件的導入表,以預設的函數(shù)地址替換導入表中保存的函數(shù)地址;相應地,打開模塊405,具體用于由原始文件系統(tǒng)分發(fā)函數(shù)按照替換模塊406替換后的預設的函數(shù)地址執(zhí)行文件打開操作。進一步地,參見圖6,該裝置,還包括記錄模塊407,用于記錄捕獲模塊401捕獲到的文件打開動作所對應的參數(shù);相應地,打開模塊405,具體用于由原始文件系統(tǒng)分發(fā)函數(shù)按照記錄模塊407記錄的參數(shù)進行文件打開操作。其中,第一獲取模塊402,具體用于通過預先編寫的驅(qū)動程序在記錄有文件系統(tǒng)設備對象的VPB結(jié)構(gòu)中查找對應的原始文件系統(tǒng)設備對象。第二獲取模塊403,具體用于以BOOT方式啟動預先編寫的驅(qū)動程序,通過預先編寫的驅(qū)動程序獲取對應的原始文件系統(tǒng)分發(fā)函數(shù)地址。發(fā)送模塊404,具體用于使用 IoCreateFileSpecifyDeviceOb jectHint 函數(shù),并以原始文件系統(tǒng)設備對象為參數(shù),將文件打開請求直接發(fā)送給原始文件系統(tǒng)設備對象所在的文件系統(tǒng)。本實施例提供的裝置,通過捕獲文件打開動作,直接向?qū)脑嘉募到y(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,由對應的原始文件系統(tǒng)分發(fā)函數(shù)進行文件打開操作,實現(xiàn)了對文件過濾驅(qū)動的穿透,從而避免了因每次打開文件都進行病毒掃描的不必要操作,且避免了在安裝多個殺毒軟件時,因重復打開文件進行掃描所造成的系統(tǒng)負擔加重問題及兼容性問題。需要說明的是上述實施例提供的文件打開裝置在打開文件時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的文件打開裝置與文件打開方法實施例屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。本領域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
      權(quán)利要求
      1.一種文件打開方法,其特征在于,所述方法包括 捕獲文件打開動作,并獲取對應的原始文件系統(tǒng)設備對象和原始文件系統(tǒng)分發(fā)函數(shù)地址; 直接向所述原始文件系統(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,并由所述文件系統(tǒng)將所述文件打開請求傳遞給所述原始文件系統(tǒng)分發(fā)函數(shù)地址所對應的原始文件系統(tǒng)分發(fā)函數(shù),由所述原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作。
      2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述捕獲文件打開動作之前,還包括 搜索32位動態(tài)鏈接庫文件的導入表,以預設的函數(shù)地址替換所述導入表中保存的函數(shù)地址; 相應地,由所述原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作時,具體包括 由所述原始文件系統(tǒng)分發(fā)函數(shù)按照替換后的預設的函數(shù)地址執(zhí)行文件打開操作。
      3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述捕獲文件打開動作之后,還包括 記錄所述文件打開動作所對應的參數(shù); 相應地,由所述原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作時,具體包括 由所述原始文件系統(tǒng)分發(fā)函數(shù)按照記錄的參數(shù)執(zhí)行文件打開操作。
      4.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述獲取對應的原始文件系統(tǒng)設備對象,具體包括 通過預先編寫的驅(qū)動程序在記錄有文件系統(tǒng)設備對象的卷參數(shù)塊VPB結(jié)構(gòu)中查找對應的原始文件系統(tǒng)設備對象。
      5.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述獲取對應的原始文件系統(tǒng)分發(fā)函數(shù)地址,具體包括 以BOOT方式啟動預先編寫的驅(qū)動程序,通過所述預先編寫的驅(qū)動程序獲取對應的原始文件系統(tǒng)分發(fā)函數(shù)地址。
      6.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述直接向所述原始文件系統(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,具體包括 使用IoCreateFileSpecifyDeviceObjectHint函數(shù),并以所述原始文件系統(tǒng)設備對象為參數(shù),將所述文件打開請求直接發(fā)送給所述原始文件系統(tǒng)設備對象所在的文件系統(tǒng)。
      7.一種文件打開裝置,其特征在于,所述裝置包括 捕獲模塊,用于捕獲文件打開動作; 第一獲取模塊,用于在所述捕獲模塊捕獲到文件打開動作后,獲取對應的原始文件系統(tǒng)設備對象; 第二獲取模塊,用于在所述捕獲模塊捕獲到文件打開動作后,獲取對應的原始文件系統(tǒng)分發(fā)函數(shù)地址; 發(fā)送模塊,用于直接向所述第一獲取模塊獲取到的原始文件系統(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,并由所述文件系統(tǒng)將所述文件打開請求傳遞給所述第二獲取模塊獲取到的原始文件系統(tǒng)分發(fā)函數(shù)地址所對應的原始文件系統(tǒng)分發(fā)函數(shù); 打開模塊,用于由所述原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作。
      8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置,還包括 替換模塊,用于搜索32位動態(tài)鏈接庫文件的導入表,以預設的函數(shù)地址替換所述導入表中保存的函數(shù)地址; 相應地,所述打開模塊,具體用于由所述原始文件系統(tǒng)分發(fā)函數(shù)按照所述替換模塊替換后的預設的函數(shù)地址執(zhí)行文件打開操作。
      9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置,還包括 記錄模塊,用于記錄所述捕獲模塊捕獲到的文件打開動作所對應的參數(shù); 相應地,所述打開模塊,具體用于由所述原始文件系統(tǒng)分發(fā)函數(shù)按照所述記錄模塊記錄的參數(shù)進行文件打開操作。
      10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第一獲取模塊,具體用于通過預先編寫的驅(qū)動程序在記錄有文件系統(tǒng)設備對象的卷參數(shù)塊VPB結(jié)構(gòu)中查找對應的原始文件系統(tǒng)設備對象。
      11.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第二獲取模塊,具體用于以BOOT方式啟動預先編寫的驅(qū)動程序,通過所述預先編寫的驅(qū)動程序獲取對應的原始文件系統(tǒng)分發(fā)函數(shù)地址。
      12.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述發(fā)送模塊,具體用于使用IoCreateFileSpecifyDeviceObjectHint函數(shù),并以所述原始文件系統(tǒng)設備對象為參數(shù),將所述文件打開請求直接發(fā)送給所述原始文件系統(tǒng)設備對象所在的文件系統(tǒng)。
      全文摘要
      本發(fā)明公開了一種文件打開方法及裝置,屬于數(shù)據(jù)處理技術(shù)領域。方法包括捕獲文件打開動作,并獲取對應的原始文件系統(tǒng)設備對象和原始文件系統(tǒng)分發(fā)函數(shù)地址;直接向原始文件系統(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,并由文件系統(tǒng)將文件打開請求傳遞給原始文件系統(tǒng)分發(fā)函數(shù)地址所對應的原始文件系統(tǒng)分發(fā)函數(shù),由原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作。本發(fā)明通過直接向原始文件系統(tǒng)設備對象所在的文件系統(tǒng)發(fā)送文件打開請求,由原始文件系統(tǒng)分發(fā)函數(shù)執(zhí)行文件打開操作,實現(xiàn)對文件過濾驅(qū)動的穿透,從而避免了因每次打開文件都進行病毒掃描的不必要操作,且避免安裝多個殺毒軟件時,因重復打開文件進行掃描造成的系統(tǒng)負擔加重問題及兼容性問題。
      文檔編號G06F17/30GK102982031SQ20111026003
      公開日2013年3月20日 申請日期2011年9月5日 優(yōu)先權(quán)日2011年9月5日
      發(fā)明者謝飛, 高小明, 馬勁松, 劉桂澤 申請人:騰訊科技(深圳)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1