專利名稱:計(jì)算機(jī)病毒免疫軟件的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)科學(xué)領(lǐng)域,主要涉及一種計(jì)算機(jī)病毒免疫軟件的制作方法。
目前,計(jì)算機(jī)程序是易受計(jì)算機(jī)病毒感染的。傳統(tǒng)的計(jì)算機(jī)病毒免疫技術(shù)是通過(guò)為程序加病毒特征碼的方法來(lái)實(shí)現(xiàn)的。這種方法只能抵御一種或幾種病毒的攻擊,對(duì)于大多數(shù)病毒而言,它基本上是失效的,即它是不通用的。雖然存在種類繁多的消毒軟件,但實(shí)際工作中仍存在下列問(wèn)題不能及時(shí)發(fā)現(xiàn)系統(tǒng)中侵染的病毒,特別是新病毒,從而使侵入系統(tǒng)的病毒具有潛在的危害性;對(duì)新病毒不能及時(shí)作消毒處理,從而導(dǎo)致由于病毒的存在而影響工作的進(jìn)度和質(zhì)量;有時(shí)消毒軟件本身也可能被病毒感染,即消毒軟件本身的安全可靠性不能得到保障。為了解決這些問(wèn)題,本發(fā)明在軟件制作上作了改造,從而能使使用本發(fā)明制作的軟件在受到計(jì)算機(jī)病毒感染后的第一次運(yùn)行時(shí)即可發(fā)出病毒警告,并對(duì)自身進(jìn)行消毒或自戕處理,自戕后的軟件可通過(guò)程序醫(yī)生予以修復(fù)。
本發(fā)明的目的在于給出一種制作能及時(shí)發(fā)現(xiàn)自身感染的病毒、發(fā)出病毒警告并對(duì)自身消毒或自戕的計(jì)算機(jī)病毒免疫軟件的方法。
為實(shí)現(xiàn)該目的,本發(fā)明首先設(shè)計(jì)病毒通用免疫疫苗,而后將該疫苗植入相應(yīng)的計(jì)算機(jī)軟件中。病毒通用免疫疫苗在設(shè)計(jì)時(shí)同時(shí)包含下列功能測(cè)試它所在軟件是否發(fā)生變化,設(shè)計(jì)時(shí)集中表現(xiàn)為感覺(jué)器;根據(jù)軟件發(fā)生的變化決定對(duì)軟件是否進(jìn)行修復(fù)或自戕或正常運(yùn)行,設(shè)計(jì)時(shí)集中表現(xiàn)為決策器;對(duì)軟件修復(fù)或自戕,或正常運(yùn)行,設(shè)計(jì)時(shí)集中表現(xiàn)為執(zhí)行器。它的工作原理是通過(guò)感覺(jué)器進(jìn)行測(cè)試計(jì)算機(jī)病毒的存在性,將情況給決策器判別,并根據(jù)判別結(jié)果由執(zhí)行器對(duì)程序進(jìn)行修復(fù)或自戕,或按正常的過(guò)程執(zhí)行。為了避免病毒通用免疫疫苗只能對(duì)抗一種或幾種計(jì)算機(jī)病毒,以及編制的代碼較長(zhǎng),病毒通用免疫疫苗的感覺(jué)器在設(shè)計(jì)上不采用測(cè)試病毒特征碼的方法,而是通過(guò)測(cè)試一些由于計(jì)算機(jī)病毒感染而使計(jì)算機(jī)程序必定和極大可能發(fā)生的變化或具有的特征程序長(zhǎng)度是否被改變、與程序運(yùn)行相關(guān)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是否被改變、程序運(yùn)行前各定位信息是否被改變、程序的開始程序段是否被改變來(lái)完成。這些特征若被改變,則可能存在計(jì)算機(jī)病毒。當(dāng)然,如果程序能夠測(cè)試這些變化或特征,它必須首先能測(cè)試出自己的名字,因此,測(cè)試自己的名字也是感覺(jué)器的一項(xiàng)內(nèi)容。決策器的設(shè)計(jì)是通過(guò)感覺(jué)器得到的信息,作出是否執(zhí)行程序消毒、程序自戕、程序正常執(zhí)行的決定,并驅(qū)動(dòng)執(zhí)行器工作。執(zhí)行器在設(shè)計(jì)上能根據(jù)感覺(jué)器得到的信息和執(zhí)行器發(fā)出的指令,執(zhí)行修復(fù)自身程序(即對(duì)自身程序進(jìn)行消毒處理)、程序自戕、程序正常運(yùn)行的功能。設(shè)計(jì)程序自戕功能的原因是在計(jì)算機(jī)病毒已經(jīng)激活的系統(tǒng)中,計(jì)算機(jī)病毒對(duì)程序的修改是在程序存盤的一瞬間,這使得在帶毒環(huán)境下消過(guò)毒的程序在存盤時(shí)有可能又重新被病毒感染,因此通過(guò)病毒通用免疫疫苗的程序自戕功能以避免這種病毒的再感染。自戕后的程序可用程序醫(yī)生來(lái)修復(fù)。這里的程序自戕是指為使程序不受計(jì)算機(jī)病毒感染而對(duì)程序作的一種改動(dòng),被改動(dòng)后的程序不能直接運(yùn)行,程序醫(yī)生可以通過(guò)約定修復(fù)已自戕的程序。這里的程序醫(yī)生是指可以根據(jù)病毒通用免疫疫苗中自戕程序的約定去修復(fù)已自戕的程序。最后,在病毒通用免疫疫苗的設(shè)計(jì)中,另一個(gè)考慮的因素是不影響被植入軟件的功能,以便能方便植入相應(yīng)軟件。為了做到這一點(diǎn),在病毒通用免疫疫苗的設(shè)計(jì)上開始時(shí)設(shè)計(jì)保護(hù)程序現(xiàn)場(chǎng)部分,結(jié)束時(shí)設(shè)計(jì)恢復(fù)程序現(xiàn)場(chǎng)部分。這里所謂的將病毒通用免疫疫苗植入軟件是指通過(guò)修改軟件目標(biāo)程序使病毒通用免疫疫苗成為軟件的一部分的方法和通過(guò)修改軟件所依賴的語(yǔ)言系統(tǒng)使軟件在再次編譯時(shí)包含病毒通用免疫疫苗的方法。
因此,用本發(fā)明制作的軟件具有直接對(duì)抗幾乎所有計(jì)算機(jī)病毒(即對(duì)幾乎所有的計(jì)算機(jī)病毒是通用的)、及時(shí)發(fā)現(xiàn)侵犯軟件的病毒(即可避免計(jì)算機(jī)病毒的潛在危害性)、及時(shí)對(duì)自身消毒或自戕以使自身無(wú)毒(即不對(duì)工作產(chǎn)生很大影響,并使軟件具有很高的安全可靠性)、及時(shí)報(bào)告入侵系統(tǒng)的計(jì)算機(jī)病毒以使用戶對(duì)系統(tǒng)及時(shí)采取消毒等措施的特點(diǎn)。這樣,它不僅能為工礦企業(yè)的生產(chǎn)帶來(lái)極大的好處,而且也能在一定程度上使軍事、國(guó)防以及國(guó)家安全諸方面軟件的安全可靠性得到提高。另外,用該方法制作的軟件構(gòu)成的系統(tǒng),能有效地提高信息對(duì)抗能力。
本發(fā)明給出的
如下附圖1為病毒通用免疫疫苗與所在軟件的連接圖。它主要給出了病毒通用免疫疫苗與它可能植入的軟件的連接關(guān)系。其中,軟件(1)是指被病毒通用免疫疫苗植入的軟件,決策器(2)、感覺(jué)器(3)、執(zhí)行器(4)分別是病毒通用免疫疫苗的主要構(gòu)成部分,程序自身或系統(tǒng)環(huán)境是感覺(jué)器(3)可測(cè)試信息的渠道,同時(shí)也是執(zhí)行器(4)執(zhí)行相關(guān)程序操作所能作用的渠道,正常軟件輸入和正常軟件輸出只經(jīng)過(guò)軟件(1)而不對(duì)病毒通用免疫疫苗程序的任何部分起作用。這就是說(shuō),病毒通用免疫疫苗僅起保護(hù)程序免受病毒感染的作用,并不影響軟件(1)的正常操作。附圖2是病毒通用免疫疫苗工作流程的一種情況,它說(shuō)明首先通過(guò)感覺(jué)器測(cè)試程序相關(guān)數(shù)據(jù),而后,決策器判別程序是否被病毒感染。若不被感染的話,返回程序正常操作;若被病毒感染,則由執(zhí)行器發(fā)出病毒警告,并修復(fù)程序或自戕程序后存盤。最后返回程序正常操作。附圖3是病毒通用免疫疫苗工作流程的另一種情況,它說(shuō)明首先通過(guò)感覺(jué)器測(cè)試程序相關(guān)數(shù)據(jù),而后,決策器判別程序是否被病毒感染。若不被感染的話,返回程序正常操作;若被病毒感染,則由執(zhí)行器發(fā)出病毒警告,并修復(fù)程序或自戕程序后存盤。最后程序終止。附圖4是DOS系統(tǒng)上相關(guān)于EXE文件和COM文件的病毒通用免疫疫苗程序流程圖。該圖是本發(fā)明為實(shí)現(xiàn)病毒通用免疫疫苗而給出的一個(gè)例子。它首先為不影響被植入軟件的功能而保護(hù)程序現(xiàn)場(chǎng),而后計(jì)算程序開始運(yùn)行時(shí)的DS、CS、IP、SS、SP的初始值,計(jì)算程序文件長(zhǎng)度,查找程序名稱,從而構(gòu)成病毒通用免疫疫苗程序的感覺(jué)器部分。之后判別DS、CS、IP、SS、SP的初始值與程序文件的要求是否一致。若一致則判別程序文件中與運(yùn)行相關(guān)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是否被改變。這里的數(shù)據(jù)結(jié)構(gòu)主要是指EXE文件的頭信息。若沒(méi)有改變,則判別由感覺(jué)器得到的程序文件的正確長(zhǎng)度與當(dāng)前程序文件的長(zhǎng)度是否一致。若一致,則恢復(fù)程序現(xiàn)場(chǎng),以不影響被植入軟件的功能。上述三個(gè)條件有一個(gè)不正確,病毒通用免疫疫苗程序就認(rèn)為它所在的軟件已被病毒感染。它首先發(fā)出病毒警告,根據(jù)DS、CS、IP、SS、SP的初始值和文件長(zhǎng)度的正確值修復(fù)程序。通過(guò)判別程序是否自戕而作出程序自戕后存盤或程序修復(fù)后存盤的決定。最后恢復(fù)程序現(xiàn)場(chǎng),以確保不影響被植入軟件的功能。其中,發(fā)出病毒警告、將修復(fù)后程序以及自戕后程序存盤的一系列操作屬于執(zhí)行器部分。而判別程序是否被病毒感染的條件判別部分屬于決策器部分。
實(shí)現(xiàn)本發(fā)明的最好方式有兩個(gè)編制能將病毒通用免疫疫苗植入一般程序目標(biāo)代碼的程序,以使當(dāng)前流行的大量軟件受到保護(hù);編制能將病毒通用免疫疫苗植入當(dāng)前有影響的高級(jí)語(yǔ)言系統(tǒng)中的程序,以使由它們生成的軟件受到保護(hù)。第一種方式可以保護(hù)正在使用的軟件,第二種方式可以保護(hù)大量的將要面市的軟件和提高與軍事、國(guó)防以及國(guó)家安全諸方面有關(guān)的軟件的安全可靠性,并使它們具有一定的信息對(duì)抗能力。
權(quán)利要求
1.一種計(jì)算機(jī)病毒免疫軟件的制作方法,其特征是將病毒通用免疫疫苗植入軟件中;
2.權(quán)力要求1中所述的計(jì)算機(jī)病毒免疫軟件的制作方法中,病毒通用免疫疫苗主要由感覺(jué)器(3)、決策器(2)、執(zhí)行器(4)組成,在植入軟件(1)后不影響軟件(1)的正常功能,其特征是感覺(jué)器(3)能測(cè)試它所在軟件(1)是否發(fā)生變化;決策器(2)能根據(jù)軟件(1)的變化決定對(duì)軟件是否進(jìn)行修復(fù)或自戕或正常運(yùn)行;執(zhí)行器(4)能對(duì)軟件(1)修復(fù)或自戕,或正常運(yùn)行;
3.權(quán)利要求1中所述的計(jì)算機(jī)病毒免疫疫苗的制作方法中,植入的特征是通過(guò)修改軟件目標(biāo)程序使病毒通用免疫疫苗成為軟件的一部分,或通過(guò)修改軟件所依賴的語(yǔ)言系統(tǒng)使軟件在再次編譯時(shí)包含病毒通用免疫疫苗;
4.權(quán)力要求1中所述的計(jì)算機(jī)病毒免疫疫苗的制作方法,用該方法產(chǎn)生的軟件的特征是由病毒通用免疫疫苗和軟件(1)組成。
全文摘要
本發(fā)明屬于計(jì)算機(jī)科學(xué)領(lǐng)域,主要涉及一種計(jì)算機(jī)病毒免疫軟件的制作方法。它主要是將病毒通用免疫疫苗植入軟件或語(yǔ)言中,使相應(yīng)的軟件或相應(yīng)語(yǔ)言生成的軟件在使用中能及時(shí)發(fā)現(xiàn)病毒、發(fā)出病毒警告、對(duì)自身進(jìn)行消毒或自戕,無(wú)毒時(shí)執(zhí)行軟件正常操作。自戕軟件可由程序醫(yī)生修復(fù)。用該方法制作的軟件比傳統(tǒng)方法生成的軟件更安全可靠,由于它能及時(shí)發(fā)現(xiàn)入侵系統(tǒng)的病毒,使用戶及時(shí)采取措施,從而起到保護(hù)程序和數(shù)據(jù)的作用。
文檔編號(hào)G06F11/00GK1204085SQ9711871
公開日1999年1月6日 申請(qǐng)日期1997年9月17日 優(yōu)先權(quán)日1997年9月17日
發(fā)明者田軍營(yíng) 申請(qǐng)人:田軍營(yíng)