1575-突變綠毛蟲的攻擊
B85506013 鄭欣明
跟隨著一些類似的病毒,有較少的病毒造成世界感染而大肆報導病毒出現在病毒保衛戰。不過據報導,有些病毒像New Zealand2,Casacde,Jerusalem,不斷地製造問題,因為他們增長且病毒的樣本非常的少。
有一個叫Caterpillar病毒(aka 1575)像一個鬥士,脫離出擁擠的軍隊而顯露在這片場地上,他像Italian和Plastique,也和Joshi,Dark Avenger,Nomenklature同等類。
一個command.com檔的傳染者
有些病毒特別會避免傳染command.com檔儘管事實上command.com檔是幾個首先會被執行的檔,且執行檔是邏輯上會增加病毒繁殖的潛力。
有人認為為什麼寫這些不去傳染command.com檔的作者的想法是:因為如此一來很容易被防毒程式給發現,然而,由於這些病毒作者好像察覺了病毒被發現的風險,故出現了像Casacde這樣全世界流行且感染command.com檔且沒有上述不成熟的容易發現的風險。
像Caterpillar病毒在每次呼叫都會特別去察看C:\command.com檔(且纏繞在程式碼中),就是鎖定這個檔案被傳染。這可以解釋為什麼病毒會在短短的時間中傳遍全世界。
操作
Caterpillar感染com和exe檔。當操作DOS的所有競爭指標的時候他前往記憶體的所在地(所以他沒有比BIOS記憶資訊低層)且讓DOS FCS尋找檔案的程式掉入陷阱,像執行DIR等檢查記憶體內容的指令時就會被感染。當我們使用軟碟時,額外活動性的磁片應該警示使用者但是若是沒有注意則很容易被感染。
只有被檢查的磁碟會被病毒感染,而且會有一個bug會造成病毒失去所有他的基本檔案是有八個字母的檔案在中斷指令中。DOS的危機錯誤處理被引入陷阱中,所以使用者不會看到寫入一個保護的磁片之失敗。被感染的exe檔由於病毒的貪污會有運作不正確的趨勢。
扳機
當一個已經被感染兩個月以上的檔案被執行時,且command.com檔已經被感染,加上已經有複製的病毒在記憶體中時是使病毒發病的扳機一般的路徑。
在使用者隨後的被一隻綠色的毛蟲所迎接,且在字母中咀嚼、使正文變黃當中我們已經察覺到這病毒作者的特殊癖好。
如果沒有中斷,這顯示會持續三分多鐘,任何輸入會使毛蟲退回導致螢幕成捲軸,且毛蟲會繼續蠕動,你沒有辦法使螢幕垂直捲動除非等到毛蟲完成她的旅行。
技術上來講這個病毒程式是一個奇異的融化壺:有易讀的程式碼散佈在長且寬的迂迴之路,且有一些瑣碎的錯誤和神秘的結構,除了一個簡單的JMP指令連接了病毒程式和com檔之外,還有12個byte可以組織病毒程式節區。
程式下一片碼會執行一個奇異的堆疊,並且跳過一大堆東西但是最後沒有什麼,他好像只是個可以避免防毒系統的函式,這是很難追蹤的一個部份因為他在堆疊使用了中斷向量表,也有可能是這程式和令一個沒有病毒之程式有關。
即使病毒還沒有感染記憶體前,他也會去檢查C:\command.com檔且感染之,一個資料串列有可能產生懷疑而成為一個多了32個附加字母的 串列,已經被感染的檔案的最後兩個byte被標示成0C,0A
如果病毒發現已經有複製的病毒在記憶體中,他會檢查已被感染的日期以確定是否已經感染兩個月了,如果是,則BIOS的計時器會掉到陷阱中且會造出一個生動的毛蟲。在C:\command.com檔剛被傳染的時候毛蟲並不會顯現出來。
一個移動的居住者就是int 21h會使函式1Ah、11h和12h被感染,自此開始,所有的尋找程式的操作都會經過DOS,故像前文所提到的,傳回檔案名的工作和尋找.com和.exe檔的工作都會暫停
自然而然的這病毒比較喜歡讓DOS執行尋找的程式,當病毒已經掉入自己的陷阱中時,他需要通過自己的攔截使DOS來做這件事:通常是用FAR CALL到老的位址,但是這作者選擇提供一個通過程式,中斷21仍然使用有潛在死亡程式代碼,但是有兩個呼叫會使我們不用AL且會放入57h來避免使用自己。他自己的攔截路徑會抓到這個且記號且通過交給DOS。
偵測和移除
Caterpillar病毒在EXE和COM檔中有1575到1591位元長的感染長度,而有可能以下的十六進位模型:
Caterpillar 0E1F A12B 018E D087 ECBE 3C01 BF00 00B9 1000 FCF2 A4E9 DEFE
Caterpillar 不會被譯成密碼,也不會想要使自己隱藏在記憶體內。
被感染的檔案應該利用乾淨的軟體移除。