亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

感染計(jì)算機(jī)病毒文件的追蹤檢測(cè)方法

文檔序號(hào):6453622閱讀:337來(lái)源:國(guó)知局
專(zhuān)利名稱:感染計(jì)算機(jī)病毒文件的追蹤檢測(cè)方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種計(jì)算機(jī)病毒的檢測(cè)方法,特別是指一種檢測(cè)計(jì)算機(jī)系統(tǒng)的基本輸出入系統(tǒng)的INT13h中斷向量地址是否被改變而判斷文件是否感染計(jì)算機(jī)病毒的方法。當(dāng)本發(fā)明檢測(cè)到任何企圖改變計(jì)算機(jī)系統(tǒng)的基本輸出入系統(tǒng)BIOS的INT13h中斷向量地址時(shí),即可發(fā)出即時(shí)的病毒警告,以適時(shí)警告使用者該計(jì)算機(jī)已感染到計(jì)算機(jī)病毒。
計(jì)算機(jī)病毒可分為常駐型病毒與非常駐型病毒兩種,不同的計(jì)算機(jī)病毒都有其特有的病毒型態(tài)、傳播途徑,這些計(jì)算機(jī)病毒對(duì)一計(jì)算機(jī)系統(tǒng)而言,都會(huì)造成不同程度的破壞。
當(dāng)執(zhí)行到一被感染有常駐型病毒的程序時(shí),該病毒程序會(huì)將它自己常駐在計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器之中,等到下一個(gè)程序要執(zhí)行的時(shí)候,常駐在存儲(chǔ)器中的計(jì)算機(jī)病毒便會(huì)伺機(jī)去感染目前所要執(zhí)行的程序。有些類(lèi)型的計(jì)算機(jī)病毒是由攔截計(jì)算機(jī)系統(tǒng)的中斷向量來(lái)達(dá)到感染的目的。例如,在目前已知的大部分計(jì)算機(jī)病毒會(huì)去修改基本輸出入系統(tǒng)BIOS所提供的INT03h、INT13h或INT21h中斷向量,其最主要的目的就是達(dá)到感染的目的。當(dāng)計(jì)算機(jī)病毒程序攔截到該中斷向量(例如INT13h)時(shí),該病毒程序會(huì)改變?cè)撝袛嘞蛄康南蛄康刂罚⒁砸恍碌妮o程序取代該中斷向量的功能,并以該新的輔程序作為病毒傳布的途徑。
中斷向量INT13h的功能是控制硬盤(pán)及軟盤(pán)的數(shù)據(jù)存取功能。此一中斷由寄存器AH中不同的函數(shù)值,可得到不同的磁盤(pán)I/O功能。例如當(dāng)AH值為03h時(shí),其功能系為寫(xiě)入數(shù)據(jù)至磁盤(pán)的磁區(qū),部分計(jì)算機(jī)病毒程序即常利用這個(gè)功能函數(shù)來(lái)破壞磁盤(pán)的分割磁區(qū)(Partition Sector)或?qū)懭霐?shù)據(jù)至其它磁區(qū)。以例如當(dāng)AH值為05h時(shí),其功能為格式化硬盤(pán),如果計(jì)算機(jī)病毒是利用此項(xiàng)功能,則在病毒發(fā)作的時(shí)候會(huì)格式化(Format)硬盤(pán)。因此,若無(wú)法有效檢測(cè)計(jì)算機(jī)系統(tǒng)的病毒的話,則對(duì)于計(jì)算機(jī)的使用及數(shù)據(jù)的安全性將會(huì)有極大的威脅。
因此,本發(fā)明的主要目的是提供一種檢測(cè)計(jì)算機(jī)病毒的方法,本發(fā)明的方法可以在檢測(cè)到任何企圖改變INT13h的向量地址的動(dòng)作時(shí),即可發(fā)出即時(shí)的病毒警告,以適時(shí)警告使用者該計(jì)算機(jī)可能已感染到計(jì)算機(jī)病毒。本發(fā)明的方法也可用于日后未知病毒的追蹤檢測(cè)。
本發(fā)明的另一目的是提供一種檢測(cè)感染有計(jì)算機(jī)病毒的文件的方法,其結(jié)合了中央處理器中相關(guān)的控制寄存器、斷點(diǎn)寄存器、除錯(cuò)控制寄存器、除錯(cuò)狀態(tài)寄存器等來(lái)執(zhí)行病毒的檢測(cè)。
為達(dá)到本發(fā)明的上述目的,本發(fā)明所提供的感染有計(jì)算機(jī)病毒文件的追蹤檢測(cè)方法,是首先在該計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中指定一存儲(chǔ)區(qū),然后設(shè)定該中央處理器中各相關(guān)寄存器、判斷該中央處理器是否有除錯(cuò)狀況產(chǎn)生、判斷中央處理器的除錯(cuò)狀態(tài)寄存器中的對(duì)應(yīng)中斷點(diǎn)條件是否被設(shè)定。當(dāng)中斷點(diǎn)條件已被設(shè)定時(shí),即由堆棧中取得觸發(fā)該除錯(cuò)狀況的指令地址,然后將該指令段及偏移地址予以正規(guī)化、以及建立一存儲(chǔ)器控制區(qū)塊串行,并對(duì)前述的存儲(chǔ)器控制區(qū)塊的串行進(jìn)行掃描以找出任何涵蓋到前述正規(guī)化的指令段及偏移地址的程序。將該改變INT13h中斷向量的程序名稱及地址予以記錄。最后對(duì)該存儲(chǔ)區(qū)中的文件內(nèi)容進(jìn)行掃描,若對(duì)比出與已知病毒碼相同的文件內(nèi)容,即警告使用者,若未對(duì)比出與已知病毒碼相同的文件內(nèi)容時(shí),則可輸出該文件內(nèi)容,以作為日后未知病毒的追蹤檢測(cè)。
本發(fā)明的其它目的及其進(jìn)一步的病毒檢測(cè)方法,將由以下的較佳實(shí)施例說(shuō)明結(jié)合附圖,作進(jìn)一步的說(shuō)明,其中

圖1是顯示一包括有中央處理器、輸出入界面、磁盤(pán)裝置、存儲(chǔ)器的典型個(gè)人計(jì)算機(jī)簡(jiǎn)化系統(tǒng)圖;圖2是顯示中央處理器中各主要寄存器的示意圖;圖3是顯示一Pentium級(jí)中央處理器內(nèi)部相關(guān)寄存器的示意圖;圖4是顯示本發(fā)明病毒檢測(cè)方法的流程圖;圖5是接續(xù)圖4的流程圖。
圖1是顯示一典型個(gè)人計(jì)算機(jī)系統(tǒng)中,包括有一中央處理器1、一輸出入界面3、一磁盤(pán)裝置4、一存儲(chǔ)器5間的簡(jiǎn)化系統(tǒng)示意圖。該中央處理器1經(jīng)由系統(tǒng)區(qū)域總線2及輸出入界面3而與磁盤(pán)裝置4連接,而中央處理器1則經(jīng)由該系統(tǒng)總線2而與一存儲(chǔ)器5相連接。其中該系統(tǒng)總線2是包括有地址總線21、數(shù)據(jù)總線22、及控制總線23,以作為中央處理器2與各元件間的數(shù)據(jù)、地址信號(hào)、及控制信號(hào)的傳送路徑。
在以下的實(shí)施例中,是以Intel公司Pentium級(jí)中央處理器作一較佳實(shí)施例說(shuō)明,且該磁盤(pán)裝置4是可經(jīng)由一IDE界面而與中央處理器1相連接。
參照?qǐng)D2所示,其是顯示一典型的中央處理器中各主要寄存器的示意圖。中央處理器內(nèi)部的一般用途寄存器依其功能的不同,約略可分為通用目的寄存器10(General Purpose Register)、狀態(tài)及指令寄存器11(Status andInstruction Register)、段寄存器12(Segment Register)。其中該通用目的寄存器10包括有數(shù)個(gè)十六位寄存器AX、BX、CX、DX、BP、SP、SI、DI、以及數(shù)個(gè)八位的寄存器AH、AL、BH、BL、CH、CL、DH、DL。這些寄存器一般是用來(lái)處理字節(jié)數(shù)據(jù)。而較先進(jìn)的中央處理器在處理32位的數(shù)據(jù)時(shí),可以使用八個(gè)32位的通用目的寄存器EAX、EBX、ECX、EDX、EBP、ESP、ESI、EDI。
狀態(tài)及指令寄存器11包括有IP、FLAGS、EIP、EFLAGS寄存器,是用來(lái)指定欲執(zhí)行指令、以及指示在執(zhí)行指令后的結(jié)果狀態(tài)。
段寄存器12包括有程序段寄存器CS、堆棧段寄存器SS、數(shù)據(jù)段寄存器DS、額外數(shù)據(jù)段寄存器ES、特征位段寄存器FS、通用段寄存器GS。這些寄存器可用來(lái)決定存儲(chǔ)器地址段的基底地址。
在Pentium級(jí)中央處理器內(nèi)部尚包括有其它系統(tǒng)寄存器,這些系統(tǒng)寄存器中,與本發(fā)明的病毒檢測(cè)方法有關(guān)的寄存器示于圖3中,其包括有控制寄存器組13及除錯(cuò)寄存器組14。其中的控制寄存器組13中包括有數(shù)個(gè)控制寄存器CR0~CR4,其中控制寄存器CR4的位定義中,共有位0至位6,其中的位3乃為除錯(cuò)擴(kuò)展功能(Debuggging Extension)的設(shè)定位,當(dāng)該位設(shè)定為1時(shí),乃啟動(dòng)輸出入界面斷點(diǎn)除錯(cuò)擴(kuò)展功能,當(dāng)該位設(shè)定為0時(shí),乃解除輸出入界面斷點(diǎn)除錯(cuò)擴(kuò)展功能。
除錯(cuò)寄存器組14中包括有八個(gè)寄存器DR0~DR7,其中的DR0~DR3是作為除錯(cuò)地址寄存器(Debug Address Resister),每一個(gè)除錯(cuò)地址寄存器中含32位的斷點(diǎn)線性地址(Breakpoint Linear Address)。DR6是作為除錯(cuò)狀態(tài)寄存器(Debug Status Register),其可在除錯(cuò)狀況產(chǎn)生時(shí),告知該除錯(cuò)狀況的條件。DR7是作為一除錯(cuò)控制寄存器(Debug Control Register),其可用來(lái)致能或禁能斷點(diǎn)功能、以及可用來(lái)設(shè)定斷點(diǎn)條件。
每一個(gè)除錯(cuò)地址寄存器DR0~DR3皆有一些各自的控制位(在除錯(cuò)控制寄存器DR7中),例如在DR7中的LEN位值決定了斷點(diǎn)地址的存取長(zhǎng)度,當(dāng)LEN=00時(shí),其存取長(zhǎng)度為一個(gè)字節(jié),當(dāng)LEN=01時(shí)其存取長(zhǎng)度為二個(gè)字節(jié),當(dāng)LEN=11時(shí),其存取長(zhǎng)度為四個(gè)字節(jié)。又,DR7中的R/W的位值決定在斷點(diǎn)地址上發(fā)生斷點(diǎn)的原因,當(dāng)R/W=00時(shí)與表示指令碼存取,R/W=01時(shí)是表示數(shù)據(jù)寫(xiě)入,當(dāng)R/W=10時(shí)是表示I/O讀取或?qū)懭?,?dāng)R/W=11時(shí)是表示數(shù)據(jù)讀取與寫(xiě)入。
以下將同時(shí)參照?qǐng)D1所示的系統(tǒng)結(jié)構(gòu)圖、圖2及圖3所示的中央處理器內(nèi)部寄存器組結(jié)構(gòu)及圖4、圖5所示的控制流程圖,對(duì)本發(fā)明的病毒檢測(cè)方法作一詳細(xì)說(shuō)明如后。
在程序啟始后,本發(fā)明首先在步驟100中,在該計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中指定一存儲(chǔ)區(qū),此一存儲(chǔ)區(qū)可在后續(xù)的病毒檢測(cè)程序中用來(lái)保存該改變中斷向量INT13h的程序的名稱及其啟始地址。
接著在步驟101中進(jìn)行中央處理器中各相關(guān)寄存器的設(shè)定,此步驟中包括1.在中央處理器的任一個(gè)除錯(cuò)地址寄存器(DR0~DR3)中設(shè)定十六進(jìn)位數(shù)值數(shù)據(jù)4Ch,該數(shù)值數(shù)據(jù)4Ch是用以指出INT13h中斷向量于中斷向量表中的存儲(chǔ)器地址所在(由于每個(gè)中斷向量占4字節(jié)大小,此值即由13h×4而求得)。2.在中央處理器的除錯(cuò)控制寄存器DR7的R/W位(讀取/寫(xiě)入控制位)中設(shè)定數(shù)值01,其意味啟動(dòng)中央處理器在執(zhí)行數(shù)據(jù)寫(xiě)入時(shí)的中斷功能。3.在該除錯(cuò)控制寄存器DR7的LEN位(長(zhǎng)度位)中設(shè)定數(shù)值11,其數(shù)值是代表斷點(diǎn)地址的存取長(zhǎng)度值是四個(gè)字節(jié)。
在完成上述的相關(guān)寄存器數(shù)據(jù)設(shè)定之后,即執(zhí)行步驟102,此一步驟是判斷是否有除錯(cuò)狀況(Debug Exception)產(chǎn)生,若無(wú),則繼續(xù)重復(fù)測(cè)試,若有,中央處理器會(huì)啟始一中斷向量INT01h的中斷服務(wù)程序,并執(zhí)行下一步驟103,進(jìn)一步判斷中央處理器中除錯(cuò)狀態(tài)寄存器DR6的狀態(tài),該除錯(cuò)狀態(tài)寄存器DR6可反映斷點(diǎn)寄存器DR0-DR3的狀態(tài)。
在步驟103中,判斷中央處理器的除錯(cuò)狀態(tài)寄存器DR6中的對(duì)應(yīng)中斷點(diǎn)條件(Breakpoint Condition)是否被設(shè)定。若結(jié)果為否,則回到步驟102,若結(jié)果為是,則進(jìn)行下一步驟104。
在步驟104中,由存儲(chǔ)器堆棧段(Stack Segment)中取得觸發(fā)該除錯(cuò)狀況的指令的段及偏移地址(Segment & Offset)值。然后,在步驟105中,將該指令的段及偏移地址予以正規(guī)化。
接著在步驟106中,建立一DOS的存儲(chǔ)器控制區(qū)塊(Memory ControlBlock,簡(jiǎn)稱MCB)串行。建立該存儲(chǔ)器控制區(qū)塊串行的方式,首先需呼叫DOS作業(yè)系統(tǒng)中的INT21h/AH=52h功能函數(shù),在執(zhí)行該INT21h/AH=52h功能函數(shù)之后,可在存儲(chǔ)器地址ES:[BX-2]取得第一個(gè)存儲(chǔ)器控制區(qū)塊的段地址(16位),而由存儲(chǔ)器控制區(qū)塊所包含的區(qū)塊擁有者的PSP(程序前置區(qū))段地址及區(qū)塊長(zhǎng)度等信息,可進(jìn)一步取得當(dāng)時(shí)在存儲(chǔ)器中所有程序(Process)的地址與名稱。
在本發(fā)明的實(shí)施例中,該存儲(chǔ)器控制區(qū)塊的格式可為
在圖5所示的步驟107中,對(duì)前述的存儲(chǔ)器控制區(qū)塊的串行(MCB List)進(jìn)行掃描,以找出所在區(qū)域涵蓋前述正規(guī)化后段及偏移地址的程序。
然后在步驟108中,將該改變INT13h中斷向量的程序名稱及地址予以記錄在步驟100中所指定的存儲(chǔ)區(qū)中。再于步驟109中,對(duì)該存儲(chǔ)區(qū)中的文件內(nèi)容進(jìn)行掃描,并與已知病毒碼進(jìn)行對(duì)比。
對(duì)比的結(jié)果,若并未檢測(cè)到相同于已知病毒碼的話,步驟110,則執(zhí)行步驟111,將該文件的內(nèi)容予以輸出,以作為日后未知病毒的追蹤檢測(cè)。若步驟110中的判別結(jié)果為是,則即時(shí)顯示該計(jì)算機(jī)病毒的名稱,以警示該計(jì)算機(jī)已感染計(jì)算機(jī)病毒。
藉由以上的病毒檢測(cè)方法以及利用中央處理器中相關(guān)的寄存器,使本發(fā)明可以有效即時(shí)檢測(cè)到任何企圖寫(xiě)入至計(jì)算機(jī)系統(tǒng)的磁盤(pán)裝置的計(jì)算機(jī)病毒。一旦檢測(cè)到已知的計(jì)算機(jī)病毒碼后,即可發(fā)出一警告,以適時(shí)警告使用者,若未對(duì)比到相符的已知計(jì)算機(jī)病毒時(shí),則可以作為日后未知病毒的追蹤檢測(cè)。
因此,本發(fā)明所提供的計(jì)算機(jī)病毒檢測(cè)方法,具有高度的產(chǎn)業(yè)利用價(jià)值,可達(dá)到預(yù)期的功效。
權(quán)利要求
1.一種感染計(jì)算機(jī)病毒文件的追蹤檢測(cè)方法,檢測(cè)企圖改變計(jì)算機(jī)系統(tǒng)的基本輸入系統(tǒng)的INT13h中斷向量地址的計(jì)算機(jī)病毒程序,該計(jì)算機(jī)系統(tǒng)的中央處理器內(nèi)部配置有控制寄存器、斷點(diǎn)寄存器、除錯(cuò)控制寄存器、除錯(cuò)狀態(tài)寄存器,該檢測(cè)方法包括下列步驟a.在該計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中指定一存儲(chǔ)區(qū);b.設(shè)定該中央處理器中各相關(guān)寄存器;c.判斷該中央處理器是否有除錯(cuò)狀況產(chǎn)生,若無(wú),則繼續(xù)重復(fù)測(cè)試,若有,則進(jìn)一步判斷中央處理器的除錯(cuò)狀態(tài)寄存器中的對(duì)應(yīng)中斷點(diǎn)條件是否被設(shè)定;d.若該中央處理器的除錯(cuò)狀態(tài)寄存器中的對(duì)應(yīng)中斷點(diǎn)條件已被設(shè)定,則由存儲(chǔ)器堆棧段中取得觸發(fā)該除錯(cuò)狀況的指令的區(qū)及偏移位置;e.將該指令的段及偏移地址予以正規(guī)化;f. 建立一存儲(chǔ)器控制區(qū)塊串行;g.對(duì)該存儲(chǔ)器控制區(qū)塊的串行進(jìn)行掃描,以找出涵蓋到前述正規(guī)化的指令段及偏移地址的程序;h.將該改變INT13h中斷向量的程序名稱及地址予以記錄在步驟a中所指定的存儲(chǔ)區(qū)中;i.對(duì)該存儲(chǔ)區(qū)中的文件內(nèi)容進(jìn)行掃描,并與已知病毒碼對(duì)比,若對(duì)比出與已知病毒碼相同的文件內(nèi)容,即警示使用者。
2.如權(quán)利要求1所述的感染計(jì)算機(jī)病毒文件的追蹤檢測(cè)方法,其中步驟b在設(shè)定該中央處理器中各相關(guān)寄存器的步驟包括b1.在中央處理器的任一個(gè)除錯(cuò)地址寄存器中設(shè)定一預(yù)定數(shù)值;b2.在中央處理器的除錯(cuò)控制寄存器的讀取/寫(xiě)入控制位中設(shè)定一預(yù)定數(shù)值;b3.在該除錯(cuò)控制寄存器的長(zhǎng)度設(shè)定位中設(shè)定一預(yù)定數(shù)值。
3.如權(quán)利要求2所述的感染計(jì)算機(jī)病毒文件的追蹤檢測(cè)方法,其中步驟b1在任一個(gè)除錯(cuò)地址寄存器中所設(shè)定的預(yù)定數(shù)值為十六進(jìn)位數(shù)值數(shù)據(jù)4Ch。
4.如權(quán)利要求2所述的感染計(jì)算機(jī)病毒文件的追蹤檢測(cè)方法,其中步驟b2中,該中央處理器的除錯(cuò)控制寄存器的讀取/寫(xiě)入控制位中所設(shè)定的預(yù)定數(shù)值為01,其意味啟動(dòng)中央處理器在執(zhí)行數(shù)據(jù)寫(xiě)入時(shí)的中斷功能。
5.如權(quán)利要求2所述的感染計(jì)算機(jī)病毒文件的追蹤檢測(cè)方法,其中步驟b3中,該中央處理器的除錯(cuò)控制寄存器的長(zhǎng)度設(shè)定位中所設(shè)定的預(yù)定數(shù)值為11,其是代表斷點(diǎn)地址的存取長(zhǎng)度值是四個(gè)字節(jié)。
6.如權(quán)利要求1所述的感染計(jì)算機(jī)病毒文件的追蹤檢測(cè)方法,其中步驟f建立存儲(chǔ)器控制區(qū)塊串行是呼叫DOS作業(yè)系統(tǒng)中的INT21h/AH=52h功能函數(shù)。
7.如權(quán)利要求1所述的感染計(jì)算機(jī)病毒文件的追蹤檢測(cè)方法,其中步驟1中,若在對(duì)該存儲(chǔ)區(qū)中的檔案內(nèi)容進(jìn)行掃描及對(duì)比時(shí),并未對(duì)比出與已知病毒碼相同的檔案內(nèi)容時(shí),其還包括輸出該檔案內(nèi)容,以作為日后未知病毒的追蹤檢測(cè)。
全文摘要
感染計(jì)算機(jī)病毒文件的追蹤檢測(cè)方法,在計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中指定存儲(chǔ)區(qū),設(shè)定中央處理器中各相關(guān)寄存器、判斷中央處理器有否除錯(cuò)狀況、除錯(cuò)狀態(tài)寄存器中的對(duì)應(yīng)中斷點(diǎn)條件是否設(shè)定。設(shè)定時(shí),由堆棧中取觸發(fā)除錯(cuò)狀況指令地址,將該指令段及偏移地址正規(guī)化、建立存儲(chǔ)器控制區(qū)塊串行,對(duì)前述存儲(chǔ)器控制區(qū)塊串行掃描,找出涵蓋前述正規(guī)化指令段及偏移地址程序。將該改變INT13h中斷向量的程序名稱及地址記錄。對(duì)存儲(chǔ)區(qū)中文件內(nèi)容掃描,與已知病毒碼對(duì)比,對(duì)比相同即警示使用者。
文檔編號(hào)G06F11/00GK1304089SQ0010104
公開(kāi)日2001年7月18日 申請(qǐng)日期2000年1月11日 優(yōu)先權(quán)日2000年1月11日
發(fā)明者蔡俊男 申請(qǐng)人:神達(dá)電腦股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1