Quandary
B85506043 賴勝華
B85506050 江至軒
Quandary是一個很流行的開機型病毒。它感染硬碟及軟碟,並使用一個審慎的編碼方式來逃避偵測。當受這種病毒感染的軟碟被拿來開機,受感染的Boot Sector會被載入到記憶體Offset 7C00h , Segment 0的地方執行。
編碼
/ 解碼在呼叫”編碼” / “解碼”的Routine之前病毒碼前八個Bytes會先設定好entry registers。程式碼中的34Bytes負責做編碼的動作,使用一個利用XOR的簡單運算方法,這是一個常被使用的編碼方法(因為它可以反轉)。當第一次被呼叫時它會對目標編碼,而第二次呼叫時會對目標物解碼還原為原來的樣子。
控制權被轉移到編解碼後的病毒碼;然後下令去取得
Int 13h的控制權並佔據1KB的記憶體空間。它們必須編碼,因為它包含了一般開機型病毒都會有的標準程式碼,而這些程式碼容易被一般偵測程式所偵測出來。一旦執行後,Quandary會再將自己編碼一次而還原為原病毒碼,因為它們已經不再需要編碼了。
Taking Controll
接下來病毒會將512Bytes大小的Image拷貝到記憶體頂端的一個被造出的Segment,在Offset 7C00h的地方。這時一個病毒正常會跳到拷貝至記憶體中Image的位置,不過Quandary卻送出Int 19h使電腦重新開機,不是暖開機,也不是冷開機:所有的中斷向量和記憶體中的內容都原封不動而firmware會載入開機磁區並轉移控制權。
當
firmware試著去讀MBS時這個請求被送到受感染磁碟的handler,handler藉由呼叫BIOS來完成讀取取,這在Quandary抓到中斷向量表時已經設定好了,這有錯誤嗎?病毒傳回給呼叫者 – 一個錯誤的程式碼。在成功存取磁碟的情況下,
Quandary會檢查Sector最後兩個Bytes是否為55AAh:在所有的MBR中該當都是如此。如果MBS在某些原因下不是如此,則電腦的硬碟將不會受到感染。如果開機磁區被任為是符合常理的,則病毒會檢查在
Offset 125h的Word是否為1405h。這是令人困惑的,因為不管有無受Quandary感染它都不會做此事。它似乎在確定是否曾經感染過,若有便將之取代 – 就好像是免費更新一樣!如果開機磁區包含1405hQuandary就會做”更新的動作”,將Sector 14(原病毒放置MBR拷貝的地方)搬到Sector 15,然後用自己的Image取代MBR並將控制權交回呼叫者。在沒有其他病毒的情形下,
Quandary會藉由比較Offset 1BBh和C928h的WORD,如果一樣,則代表已受感染,便將存在Sector 15的MBS取得並傳回給呼叫者,以這種方式達到隱形的目的。Infection
在Quandary已經證實磁碟未受感染並開始進行傳染的動作,它將為被更動的MBS寫到Head 0 , Sector 14的地方,拷貝位於MBS Offset 1Beh地方的64 Bytes到自己在記憶體中的Image(為保留Partition Table)並將自己寫到Head 0 , Sector 0的地方,如此便完成傳染的動作。
軟碟的感染也是一樣的:病毒會從磁區開頭拷貝
60 Bytes到自己的程式碼中以保留BIOS Parameter Block的資料。再將原開機磁區搬到Head 1 , Sector 15。Quandary只會感染1.44 MB的磁碟。Summary
Quandary有一點與眾不同。它的設計者好像至少寫過一個以上不同的病毒但他的程式碼看來又不夠熟練並且不太清楚一些命令如何運作。不過這個病毒很流行而且運作的不錯。它的Routine並沒有防止它重複寫入,而且它不旦沒有Trigger也沒有payload:或許我們應該為此而感到高興。
Quandary
Alias:
NewBoot_1 , IHC , Parity-enc , Boot-c.
Type:
Hard disks , 1.44 MB diskettes.
Self-recognition:
Word at offset 1BBh equal to C928h.
Hex Pattern on Hard / Floppy Disks and in memory:
81BF 2501 0514 7478 2681 BFBB
0128 C974 3CB0 01E8 9400 B801
Intercepts:
Int 13h.
Trigger:
None.
Removal:
For diskettes , salvage required files (which will be completely unaffected) , and format.Use FDISK /MBR to disinfect hard drive MBR.