Peter II -- 三個關於史芬克斯的問題

 

B85506043 賴勝華

B85506050 江至軒

有多少使用者需要知道如何有效率的使用他的電腦?當然他需要知道如何使用鍵盤,而隨著大量圖形介面的出現,如何使用滑鼠也是必需要知道的。知道一些關於電腦如何運作的知識也是很有幫助的,例如 如何使用磁碟,最重要的是要知道如何打開及關閉電腦。讀說明書來了解你使用的程式也是不錯的方法。然而,這樣就夠了嗎?也許吧。

為了防止電腦遭受病毒感染,使用者必須知道那些東西,這是一個有點困難的問題。只須要知道如何使用Virus Scanner嗎?還是須要知道有多少不同的病毒和它們會感染那些東西嗎?這是一個困難的問題,不過我以下的回答將會使妳感到有些驚訝。

有關病毒防衛戰最前線的消息指出,如果你想防衛電腦遭受病毒侵襲,你必須知道一些零碎的小知識,例如要知道搖滾巨星的名字和受歡迎的程度。不可思議的是,這些是對抗病毒的重要利器,尤其是對在2月27被Peter II感染的電腦來說。

 

The Installation Routine

Peter II是一個普通的常駐的MBS病毒,它有6個磁區(0C00h Bytes)大小,5個用來存病毒碼,1個用來存被取代的開機磁區。

當使用者用受感染的磁片開機時,病毒便會開始執行它會先減掉已經用掉計價體的大小(藉由將位置0000:0413h的WORD減4),再把剩下的病毒碼拷貝到記憶體中,這會減少4KB的記憶體容量。

當病毒在DOS還為載入前,病毒不能始用DOS的Service GetSystemTime和GetSystemDate,所以它會用其他更複雜的手段去探測系統的時間。它藉由讀取存在CMOS的資料來達成這個目的 : 將位址輸出到Port 70h然後從Port 71h取得資料。如果日期是2月27日,病毒便會呼叫觸發程式。

如果觸發條件不滿足的話,病毒會讀出原Int 13h並寫入病毒碼,然後載入自己的Int 13h handler,更改中斷向量表,使Int 13h中斷向量指向自己。如果電腦用受感染的磁片開機,病毒會企圖感染硬碟。做完這件事後便執行原開機程式。

但是病毒在載入前不會檢查記憶體的內容,某些情況下這會導致電腦當機。考慮用一個受感染的磁片去將一個有已受感染硬碟的電腦做開機的動作,軟碟上的病毒會先掛上自己的Int 13h,然後執行軟碟的開機程式。如果磁片不是開機磁片,螢幕將會出現Non-System disk or disk error.Replace and press any key when ready的訊息。

這種情況下,如果軟碟被取出且按下任意一鍵後,硬碟上的病毒拷貝便會被執行。它會掛上目前Int 13h的位址(已經指向病毒)。所以下次當Int 13h被呼叫時便會造成電腦當機。

Infection and Int 13h handling

Master Boot Recorder在病毒載入期間會遭受感染。病毒會讀取原磁區的資料並檢查病毒的ID Byte 如果在Offset 01FDh的Byte是BBh的話,代表磁碟已受感染,所以便從Routine跳出,。如果不是,病毒便會儲存這個Sector的資料存到硬碟Sector 6, head 10, cylinder 0的地方並把自己寫入硬碟的第1磁區及後面4個磁區。

病毒會監控所有呼叫Int 13h的動作來達到保護及隱藏病毒碼的目的。當任何企圖讀、寫磁區的動作發生時病毒會代換適當的登錄值,使得讀、寫的動作不會接觸到病碼儲存的磁區,當第1磁區被讀取時,病毒會將位址代換為被移走的Boot Sector的位址。而讀寫Sector 2~7的動作將會被轉換到Sector 8。在大部份的電腦,這些Sector通常都是填滿0的。

不幸的是,並不是如上述般簡單。在早期的NetWare Servers(Version 2.xx)這些空間是存放NetWare開機程式,如果病毒發生在這電腦上的話將導致多方面的傷害。由於許多開機型病毒都使用這塊致命地帶來儲存病毒碼,所以這類型的病毒總是對NetWare Servers造成莫大的傷害。

每當軟碟被使用時,病毒會檢查開機磁區的內容看是否已經受過感染。如果位址01DFh的值是11h的話,便跳出Routine。

然後病毒會檢查Boot Sector的其他地方 位於位址0081h的Byte。這個Byte記錄磁碟一個Track有幾個Sectors,如果不是15(代表磁碟不是1.2MB,5.25吋的磁碟)便停止Routine。

如果磁碟被認為適何感染,則病毒嘗試去格式化磁碟末端多餘的磁柱(cylinder),一個正常的1.2MB的軟碟有80個可被DOS存取的磁柱,編號為0~79。雖然不能用DOS呼叫去存取這個範圍外的地方,一些drive controllers能夠使用這些範圍外的磁柱,而且病毒便利用這種技巧來達到感染磁碟而不會減少磁碟容量。

病毒使用這些多出的磁區來存部分的病毒碼。而被搬離的原Boot Sector便存到Standard root directory的最後一個Sector(sector 14 , head 0 , cylinder 0) 。

Trigger

227日,如上所述病毒會呼叫Trigger Routine。因為Routine是被編碼過的,所以第一步必須先解碼。完成後,Routine會顯示下列訊息:

 

Good morning,EVERYbody,I am Peter II Do not turn off the power,or you will lost all of the data in Hardisk!!!

WAIT for 1 MINUTE,please…

 

然後病毒會將硬碟中所有的Sector編碼:所有的WORDs都跟7878hXOR的動作,如果電腦在這時關機,所有硬碟裡的資料都會不見,使用者便必須將備份再重新拷貝到硬碟中。不過,如果你能回答以下三個問題,便可救回你的磁碟

 

ok.If you give the right answer to the following question,I will save your HD

  1. Who has sung the song called “I’ll be there”? 1.Mariah Carey 2.The Escape Club 3.The Jackson five 4.All (1-4)
  2. What is Phil Collins? 1.A singer 2.A drummer 3.A producer 4.Above all (1-4)
  3. Who has the MOST TOP 10 singles in 1980’s? 1.Michael Jackson 2.Phil Collins(featuring Genesis) 3.Madonna 4.Whitney Houston (1-4)

 

使用者必須回答三個正確答案,如此病毒會將硬碟裡的資料解碼還原,然後印出:

CONGRATULATIONS!!!YOU successfully pass the quiz!AND NOW RECOVERING YOUR HARDDISK……

如果答案是錯的,則會印出

Sorry!Go to hell.Clousy man!

然後你便會失去所有的資料。

病毒的trigger routine的確讓人感到有趣,然而輕視他人資料使得這變成一個暴力及邪惡的程式。幸運的是,這沒有時間限,你可以打電話問朋友。而答案是什麼呢?簡單…4,42

 

Peter

Alias

Peter II

Type

Memory-resident Master Boot Sector.

Self Recognition

Disk

Checks the byte at the location 01FDh for the value BBh or 11h

Memory

None

Hex Pattern

FA0E 1F33 C08E D08C 007C

2683 2E13 0404 FB0E 07B9 0300

Intercepts

Int 13h for infection and stealth.

Trigger

Displays three questions and encrypts the contents of the hard drive sector by sector.If the are answered correctly the disk is recovered.

Removal

Specific and generic removal is possible.Under clean system condition,replace originalcontents of Master Boot Sector from sector 6(hard drive)or from logical sector 28(floppy).