簡述
中國炸彈病毒也稱為1500病毒。它有一個變種稱為中國炸彈-B( Chinese bomb-B,其檢測軟體為SCAN;消除軟體為KILL)。該病毒的位元組長度為1.5K位元組。它傳染COMMANI.COM檔案,隨系統的啟動駐留於記憶體。中國炸彈病毒1989年首先發現我國陝西西安,是土生土長的計算機病毒之一。
中國炸彈病毒傳染各種DOS版本中的COMMAND.COM檔案,被傳染上該病毒的COMMAND.COM檔案比原來檔案增加了1492(5D4H)個位元組。如果使用被傳染的DOS系統啟動機器,計算機系統運行速度將減慢,尤其是執行DOS查看目錄DR命令、打開檔案或裝入、執行檔案時,系統運行速度明顯減慢,並且此時磁碟如果有未被傳染的COMMAND.COM檔案,則該檔案會立即被傳染上中國炸彈病毒。該病毒屬於常駐記憶體型計算機病毒,中國炸彈病毒駐留記憶體後,不改變0040:0013H、0040:0014H兩處的內容,所以般用DEBUG不能發現系統記憶體容量的減少。病毒發作的條件是
(1)系統時間是15分或45分,並且秒數是15秒或45秒;
(2)打開磁碟上任一個檔案(21H中斷3DH號功能調用)。當同時滿足以上兩個條件時,該病毒便把記憶體中任意一塊數據寫入硬碟前80個扇區,將主引導記錄(分區表)DOS引導記錄、磁碟檔案分配表(FAT表)等覆益,從而完全破壞磁碟。
表現
傳染有中國炸彈病毒的系統啟動時,病毒首先常駐記憶體並監視系統的運行情況,如破壞條件滿足,中國炸彈病毒即破壞系統,否則病毒將監視系統中是否有COMMAND.COM檔案,以進行傳染。傳染有中國炸彈的電腦程式在運行時可能出現如下症狀
(1)COMMAND.COM加長1492位元組,檔案的建立時間將變為1980年1月1日;
(2)執行DOS的內部命令時,時間延長;
(3)系統在破壞是顯示:——Chinese Bomb——(made in China 1989)。
中國炸彈病毒連結在COMMAND.COM檔案的尾部,並將第一條指令改為JMP××××(××××是原 COMMAND.COM檔案的長度),當系統啟動流程進行到執行COMMAND.COM檔案時,病毒程式將首先得到執行。
組成
病毒程式從邏輯結構上可分為初始化部分、傳染部分和病毒的破壞及表現部分。
1.中國炸彈病毒的初始化部分
(1)初始化部分首先將記憶體中COMMAND.COM程式末尾的病毒程式前移至CS:0100H,將COMMAND.COM程式覆蓋,並將指令指針(IP)移至此區繼續執行。
(2)調用解碼子程式將數據區中密碼翻譯成數據,該數據區存放檔案路徑名、原檔案長度、病毒標識、原檔案第一條指令和螢幕顯示信息等。
(3)釋放除程式本身所需以外的記憶體空間,並為COMMAND.COM檔案申請全部記憶體自由空間,在申請到的記憶體段內建立新程式段,並將磁碟上COMMAND.COM檔案讀入記憶體中新程式段,將新程式段內程式的第一條指令恢復為正確指令,使其成為正確的COMMAND.COM程式。
(4)用INT 18H中斷替代INT 21H中斷,修改INT 21H中斷的入口地址,將控制權交給病毒程式。
(5)調用病毒傳染部分傳染硬碟中COMMAND.COM檔案。
(6)轉至記憶體新程式段處執行正確的COMMAND.COM程式。
2.中國炸彈病毒的傳染部分
病毒的傳染部分由被修改的INT 21H完成,即如果本次中斷是INT 2lH中斷中的獲得磁碟自由空間(36H)功能調用(DOS中的DIR命令執行此調用)、打開檔案(3DH)調用或者裝入執行檔案(4BH)調用等調用之一,病毒根據本次中斷所涉及的驅動器,調用傳染部分傳染該盤中的COMMAND.COM檔案。
(1)打開盤上的COMMAND.COM檔案,將其屬性改為普通檔案屬性(20H),以便進行讀寫操作。
(2)比較檔案中偏移量03H位元組開始處的一個字是否等於偏移量150H位元組開始處的一個字,如果兩處的字值相同,病毒程式即認為該檔案已被傳染,不再次傳染之;若檔案中偏移量03H及150H兩處的標識字不同,則病毒傳染該檔案,傳染時病毒將正常檔案的長度和第一條指令保存於數據區中,調用解碼子程式,將數據區恢復成密碼;將病毒程式(長度為5D4H)寫入檔案末尾,並將COMMAND.COM檔案第一條指令修改為JMP××(×××為原檔案長度),而後將檔案150H處標識寫到03H處,作為病毒傳染的標識。
3.病毒的破壞及表現部分
病毒的破壞及表現部分是被修改的INT 21H中斷服務程式,當執行INT21H中斷時,便進入病毒的INT 21H中斷程式。被病毒修改的INT 21H程式完成如下幾個功能:
(1)首先保存INT2H中斷的原入口地址,並且保護中斷現場。
(2)如果本次中斷是INT 21H中斷的打開檔案(3DH號)功能調用,同時,當前系統時是15分或45分且秒數是15秒或45秒時,則破壞硬碟,並且在螢幕上顯示上述病毒信息。
檢測
從上面的分析中可以看出,中國炸彈病毒主要利用了COMMAND.COM檔案常駐記憶體的特點,並且接管了DOS功能調用INT21H中斷,每當執行INT21H中斷時,中國炸彈病毒便得到了一次活動機會。
中國炸彈病毒的實際位元組長度為1492位元組,一般而言,在DOS狀態下使用DIR命令查看磁碟中的COMMAND.COM檔案位元組數是否增加了1492個位元組及檔案建立時間是否發生變化,可以發現COMMAND.COM檔案是否被傳染。如果COMMAND.COM增加了1492個位元組,同時COMMAND.COM檔案的建立時間變為1980年1月1日,便可認定已傳染上了中國炸彈病毒。DOS2.0、3.0、3.2、3.3版本中COMMAND.COM檔案位元組數分別為17654(十進制)、22042(十進制)、23791(十進制)、25307(十進制)。傳染後長度應分別為19146(十進制)、23534(十進制)、25283(十進制)、26799(十進制)。
中國炸彈病毒的另外一個特點,是病毒在COMMAND.COM檔案中設定標識,即將相對於檔案頭的檔案偏移量為150H的兩個位元組放入相對於檔案頭偏移量為03H開始處的一個字中,這樣,被病毒傳染的COMMAND.COM檔案相對於檔案頭偏移量為03H、04H中的內容與相對於檔案頭偏移量為150H、15IH處的內容是相同的,因此,可以用DEBUG調出 COMMAND.COM後用D命令顯示103H、104H與250H、251H( DEBUG載入檔案是從偏移量為100處開始的)四單元中的內容,查看其是否相等。如果103H、104H和250H、251H所組成的兩個字是相等的而且檔案長度增加了1492位元組,我們就可以斷定COMMAND.COM檔案中傳染有中國炸彈病毒。用DEBUG檢測系統的具體方法如下
這樣通過上面講到的COMMAND.COM檔案的三種變化,即可斷定系統的命令解釋程式COMMAND.COM檔案中傳染有中國炸彈病毒。
消除
因為病毒修改了COMMAND.COM檔案的前6個位元組的內容,這就能夠在正常的COMMAND.COM檔案執行之前首先執行病毒程式,同時病毒又是連結於檔案的尾部,所以我們可以用恢復被傳染的COMMAND.COM檔案的前6個位元組並去除檔案尾部5D4H位元組病毒程式的方法消除中國炸彈病毒,但是由於病毒對原來 COMMAND.cOM檔案的前6個位元組採用加密的方法保存在自己的數據區中,因比我們必須首先執行病毒代碼部分的病毒解密程式部分以解密這6個位元組使用系統調試程式 DEBUG消除中國炸彈病毒的具體過程如下:
注意:用DEBUG.COM對COMMAND.COM檔案手工解毒後應該立即重新啟動系統,以避免其他盤中的 COMMAND.COM檔案被中國炸彈病毒傳染。