基本介紹
- 中文名:1091病毒
- 類似病毒:1099病毒
- 感染檔案類型:.exe、.com
- 要求:只能感染長度大於2295位元組的檔案
傳染機理,病毒檢測,記憶體檢查,.com檔案,.exe檔案,病毒消除,.com檔案,.exe檔案,
傳染機理
“1091”病毒長度基數為443H(1091)位元組,感染檔案時附在檔案尾部。它先於正常程式進人記憶體後,修改最後一個記憶體控制塊MCB,使其減少6EH節(1760位元組),然後駐留記憶體,地址從CS:0100開始。0054:0000開始的一段記憶體為病毒運行的數據區。用PCTOOLS看記憶體容量時,記憶體總量減少ZKB。病毒駐留記憶體後更改了下面的中斷向量:
INT08H(時鐘中斷)為XXXX:016BH
INT09H(鍵盤中斷)為XXXX:0113H
INT21H(DOS功能調用)為XXXX:01B0H
原來的中斷向最分別保存在[0112-1015],[0116一0119],[011A一011D]病毒截留了DOS功能調用(INT21H)的36H號(查看磁碟剩餘空間)子功能。每次只感染一個檔案。被感染的檔案增加的長度在1091-(1091+16)之間。該病毒同1099病毒一樣,在記憶體中設定了一個計數器,位於CS:020EH處,初始值為FF-FAH。病毒利用鍵盤中斷來控制該計數器的值,每發生一次鍵盤中斷,計數器的值恢復為FFFAH,如果長時間(約一小時)不擊鍵盤,計數器的值減至零,病毒發作。其現象為:
- 病毒通過對70H和71H號連線埠的操作,破壞由主機板電池供電的CMOS中的數據,改系統日期為93年l月1日,硬碟容t為40M。
- 病毒調用13H(磁碟讀寫功能)號中斷,用記憶體中的一些數據來搜蓋硬碟的主引導記錄(MBR)破壞硬碟的分區表,使硬碟數據表面上丟失,來一個不大不小的惡作劇。
該病毒採用了與1099病毒同樣的加密方法和反跟蹤措施(即異或加密和封鎖鍵盤操作來反跟蹤)。運行過程中動態解密,所以只能動態跟蹤,無法靜態分析。
病毒檢測
記憶體檢查
病毒程式判斷自己是否已駐留記憶體時使用了下面的語句:
0054:0004 813E3E0583B4
CMP WORD PTR [053E],B483
(此時的DS值為0000)
0054:000A7475
JZ0081
(若相等則已駐留記憶體,轉向0054:0081執行)利用這段程式可以判斷記憶體中是否已駐留該病毒。
.com檔案
病毒感染.COM檔案時,讀取檔案開頭的11個位元組到病毒體偏移為onH處保存。原檔案CS:looH處的前幾條指令被改為:
CS:0100 0E PUSH CS
CS:0101 8CC8 MOVAX, CS
CS:0103 05XXXX ADDAX.XXXX
CS:0106 50PUSH AX
CS:0107 68 DB 68
CS:0108 0001 ADD [BX+DI],AL
CS:010A CB RETF
用DEBUG載入染毒的.COM檔案執行到上面程式最後一句後可以看到下面程式:
CS:01002ECS:
(該指令位於病毒體偏移為0000處)
CS:01018C062A02MOV[022A],ES
CS:01050EPUSHCS
CS:01061F POPDS
CS:0107BgDA00MOVCX,00DA
CS:010ABE0903MOVS1.0309
CS:010D5ADB6A
CS:010E5E PUSPSP
這也可以用作判斷.COM檔案是否染毒的依據。
.exe檔案
病毒感染.EXE檔案時,讀取.EXE檔案的檔案頭中重定位時所需,的有關值作如下處理:
IP--->[0123-0124]; CS--->[0125-0126]
SP--->[0121-0122]; SS--->[011F-0120]
病毒重新計算上述值,寫人被感染檔案。
用DEBUG載入染毒的。EXE檔案時也可以看到上面的程式段,這些指令位於病毒開始的地方,其後的1091位元組就是病毒的指令代碼。這可以用作判斷.EXE檔案是否染毒的依據。
病毒消除
.com檔案
只要用DEBUG把病毒體偏移為011FH處的n個位元組寫回原檔案開始處,並把檔案從尾部減去1091個位元組,重新寫回即可。
.exe檔案
把染毒檔案改名為非.exe檔案,然後用DEBUG把位於病毒休內偏移[011F-0120]、[0121-0122]、[0123-0124]、[0125-0126]處的數值填回檔案頭相應位置。重新計算檔案長度等有關參數(參見所附的C語言程式),並把檔案從尾部減去1091位元組,重新寫回,改回原檔案名稱即可。