FANDOM


Diamond屬於在MS-DOS運作且有一定危險性的TSR檔案寄生病毒,作者為Dark Avenger。此病毒以部分變種的觸發行為所顯示的ASCII圖形命名。

已知的變種有28個並分5個版本:

  • Virus.DOS.Diamond.444
  • Virus.DOS.Diamond.568
  • Virus.DOS.Diamond.607
  • Virus.DOS.Diamond.978
  • Virus.DOS.Diamond.1013

另有3個變種屬於此族。

感染行為编辑

執行病毒後,其程式會留在記憶體中保持運作,並會使用INT 8和21h,藉此感染任何執行的應用程式。

在EXE的應用程式中,檔頭有分「MZ」和「ZM」兩種,當病毒偵測到這個檔頭時,儘管檔案格式是COM(COMMAND.COM就是以MZ作為檔頭的DOS應用程式),它仍會當此為EXE格式,並在感染之後將檔頭改為「MZ」。

此病毒在感染檔案時有機會損毀它們,令它們不能正常工作甚至會當掉系統。

部分變種(不等於666位元組而且小於978位元組)不會檢查自己的TSR程式是否已經在RAM,再次執行或感染檔案後它就會再放置一份到RAM中,使之佔用更多空間。也就是感染越多的檔案,可用的記憶體也會越來越少。

此病毒在感染檔案時從寄主中抽取8個位元組到自己的程式碼後尾作為辨識,在不同內容的檔案這個字串都可以不同。如果病毒在RAM時,帶有這字串的受感染的檔案會被顯示成原本的檔案大小,也就是把感染大小隱藏。

以下為抽取的位置:

字串位置 0 1 2 3 4 5 6 7
從寄主抽取的位置(16進制) 10 11 0E 0F 14 15 16 17

雖然所有變種都存在這個機制,但只有部分的變種有應用到。

Diamond.444和465编辑

開始時會設一個倍率基數1,每感染一個程式後增加。而且增加的方法都不同。這些變種不檢查檔案是否曾被感染過故會重複感染。

這些變種利用迴圈檢查感染後的新檔案大小,如果感染後的總大小超過或等於65,024位元組,那麼它會跳出迴圈。對於感染DOS應用程式,在上述情況會在執行該程式後回到DOS,但不感染;而在EXE格式的情況下則是感染後當掉系統。

在感染一個DOS應用程式後,倍率基數每次加1,所以感染的大小的增長倍數就是1、2、3、4、5、6...。因為它不感染比自己本身小的檔案,所以最大的倍率可達145(Diamond.444)或138(Diamond.465)。

而在感染EXE應用程式,倍率增長方式稍為不同,可用以下公式計算:

Diamond444-465 infect exe

公式中,s是感染檔案時用到的倍數,而n為感染次數。

所以感染大小增長倍數就是1、2、5、13、34、89。89之後的倍數已經變的非常大而且已經遠超過感染大小上限。

如果使用者重啟電腦,當病毒再次載入RAM後,倍率就會還原到1。

被這些變種感染的DOS應用程式將無法執行原本的程式內容,而部分EXE應用程式則可。

Diamond.485编辑

每次感染執行的程式後不會回到DOS,也就是當掉系統。

這變種不會檢查檔案是否曾被感染過所以會重複感染。

Diamond.568、584、594、602、606、608、609、614和620编辑

每次感染執行的程式後不會回到DOS,也就是把系統當掉。不過會檢查是否曾被感染,如是,則只當掉系統。

Diamond.602感染檔案後不當掉系統。

Diamond.606、609和614不感染比自己小的檔案。

Diamond.607、621至978、1013至1110、Greemlin.1146和RockSteady.666编辑

這些變種利用8位元組字串檢查機制來自我隱藏,在感染檔案後不會看到檔案大小改變,而且不感染比自己小的檔案。受感染的程式執行時可能會出問題。

Diamond.Lucifer.1086编辑

此變種也會利用8位元組字串檢查機制來自我隱藏,如果受感染的檔案原本的時間戳記為上午12:00:00,此變種將其移除使之沒有修改時間。

進階資料编辑

下表列出所有變種的TSR在記憶體所佔用的空間。

變種 RAM使用(位元組)
Diamond.444 496
Diamond.465 512
Diamond.485 528
Diamond.568 608
Diamond.584 624
Diamond.594 640
Diamond.602 640
Diamond.606 656
Diamond.607 656
Diamond.608 656
Diamond.609 656
Diamond.614 656
Diamond.620 672
Diamond.621 672
Diamond.624 672
Diamond.626 672
Diamond.666.b 704
Diamond.891 928
Diamond.978 1,024
Diamond.994 1,120
Diamond.1013 1,056
Diamond.1014 1,056
Diamond.1024(A和B) 1,072
Diamond.1050 1,296
Diamond.1063 1,120
Diamond.1096 1,136
Diamond.1110 1,152
Diamond.Greemlin.1146 1,184
Diamond.Lucifer.1086 1,136
Diamond.RockSteady.666 704

MD5:

變種 MD5雜湊
Diamond.444 7722d86ecc694c19d5ecb183e1efe587
Diamond.465 deaeee27375e8b46f33ca06c8441030e
Diamond.485 33319669e8a35f3a13c3746721e38ae5
Diamond.568 3cf87b2a4bed4dc4a693220ec1f58d88
Diamond.584 4be8d19c1e08f29b9d7318160e1d1886
Diamond.594 158b32b09f2bd8126209241a2c913733
Diamond.602 620f9ad3a1ca979443e71a41aa9d36c4
Diamond.606 e4e0415f153bc6f7ff2e11860f945df8
Diamond.607 e71cf640e2a4219bb9afb18cc6ce9e80
Diamond.608 02f031aca70a4052a1fb6cd1f1bf7d8b
Diamond.609 18a23a340d4473bf0cd937a8276af9f6
Diamond.614 c3e72a56bd2e91d1ae67a91ef712c362
Diamond.620 d1a20329b7e3b462010bd274c947bd16
Diamond.621 e98ac807e0e541045bb3940af76bb5b9
Diamond.624 f5272d82fe6fe118b05d7b33342e984b
Diamond.626 4ea09bbc05370e11fd881ecf5e8a6f86
Diamond.666.b fe1980e97af53a67d65d073ccf862f6b
Diamond.891 fbd1becca56d4d6aba70d09ff1321a0b
Diamond.978 92b16c4d635f81094334913fc35a7303
Diamond.994 a16c9d763d51272f1d27237a8c5516c9
Diamond.1013 ed8bbb180829ee969f96aa35742b20e8
Diamond.1014 719c713664dedfa4dcb45fcf80b63aee
Diamond.1024.a 1bedd9e1c58ceded79d6cbbe92f0c53b
Diamond.1024.b d78c71bf475456c42a76cde2d18b5ede
Diamond.1050 fb2a0adddb7910121ad395d227de4772
Diamond.1063 577922e896fae33ae474cb0ae5c98050
Diamond.1096 0a57eb838fa562679bf57867301412b1
Diamond.1110 fb52c1f7bb08b248d018aff1bd0d8d0d
Diamond.Greemlin.1146 b7058038fbd240fa5cb2e9dbd98d56e2
Diamond.Lucifer.1086 fc82e53cdb8fba3068289faefd8c6773
Diamond.RockSteady.666 adf0633d00407242d76b1455cf5e34e5

註:以上部分變種需更改檔案二進位內容方能正常執行測試。

觸發行為编辑

此族的變種的觸發行為主要分為3個不同的版本。

Diamond.444、465、485、607、614、621、624和626编辑

不觸發。

Diamond.568、584、594、602、606、608、609和620编辑

當使用者嘗試輸入DIR或複製檔案的指令,這些變種會令相關指令跑進無效的程式碼,從而會當掉系統,並可能會癱瘓CPU的運作。事後必須冷重啟。

DOS版本7.1有比較安全的機制,在這個情況發生時不一定會當掉系統,而是中止有關操作並回到DOS。

Diamond.666.b和RockSteady.666编辑

如果在任何月份的13日執行受感染的程式,這些變種以INT 13h將Head 0的首10個柱面格式化,並以垃圾訊息覆寫C:首32個邏輯磁區,之後再以INT 19h重啟系統。

Diamond.891编辑

此變種在任何時間的0分0秒至14秒期間嘗試在畫面上顯示不同顏色的ASCII 04h字元(階磚),但失敗。

Diamond.978编辑

此變種會在星期二將C:格式化,但因編程出錯,它指向第三個軟碟機。

此變種亦會在任何時間的0分0秒至14秒期間嘗試在畫面上顯示不同顏色的階磚字元,但因為當中有嚴重錯誤的程式碼,如果在這段期間執行任何程式,系統會跑進這段錯誤程式碼的無限迴圈。

Diamond.1013、1014、1024、1050、1063、1096, 1110和Lucifer.1086编辑

Diamond1014

Diamond.1014在分鐘到達00的一刻

這些變種會在星期二嘗試將C:格式化,但因編程出錯所以指向第三個軟碟機。

如果病毒已在RAM中又或者受感染的程式在任何時間的0分0秒至13秒期間執行,它會在畫面上顯示不同顏色的階磚字元,之後會散開不停彈跳並逐點清除畫面上的文字。任何指令都無法清除這些階磚字元。

Diamond.1013的階磚字元不會彈跳,可以容易的清除掉。

Diamond.Greemlin.1146编辑

這變種同樣會顯示和彈跳階磚字元,同時減慢系統約10%的處理速度。如果在7月14日執行受感染的程式,它會存取插入的軟碟,並覆寫當中部分的磁區。

變種编辑

Diamond總共有31個變種:

  • Virus.DOS.Diamond.444
  • Virus.DOS.Diamond.465
  • Virus.DOS.Diamond.485
  • Virus.DOS.Diamond.568
  • Virus.DOS.Diamond.584
  • Virus.DOS.Diamond.594
  • Virus.DOS.Diamond.602
  • Virus.DOS.Diamond.606
  • Virus.DOS.Diamond.607
  • Virus.DOS.Diamond.608
  • Virus.DOS.Diamond.609
  • Virus.DOS.Diamond.614
  • Virus.DOS.Diamond.620
  • Virus.DOS.Diamond.621
  • Virus.DOS.Diamond.624
  • Virus.DOS.Diamond.626
  • Virus.DOS.Diamond.666.b
  • Virus.DOS.Diamond.891
  • Virus.DOS.Diamond.978
  • Virus.DOS.Diamond.994
  • Virus.DOS.Diamond.1013
  • Virus.DOS.Diamond.1014
  • Virus.DOS.Diamond.1024 (A and B)
  • Virus.DOS.Diamond.1050
  • Virus.DOS.Diamond.1063
  • VIrus.DOS.Diamond.1096
  • Virus.DOS.Diamond.1110
  • Virus.DOS.Diamond.Greemlin.1146
  • Virus.DOS.Diamond.Lucifer.1086
  • Virus.DOS.Diamond.RockSteady.666

其他資料编辑

AhRocko屬Diamond的族。

Diamond.666.b和RockSteady.666是Rocko的後繼版本。

Diamond.994的TSR程式碼中存在無效執行緒,在執行後會鎖死系統,而且也不能觸發。

自我隱藏的變種能互相偵測,對於存在多於一個變種感染的檔案,在其中一種在RAM時顯示的檔案大小會有可見的差異。

Diamond.444和465包含以下內部字串:

9090909090

Diamond.485、568至626、891、978、994、1013、1024和1096包含以下內部字串:

7106286813

Diamond.666.b和RockSteady.666包含以下不完整的內部字串:

RocK STeaDY

Diamond.1050包含以下內部字串:

NEWDIAMOND

Diamond.1063包含以下內部字串:

DAMAGE!!!!

Diamond.1110包含以下內部字串:

Jump for joy!!!
DAMAGE-B!!

Diamond.Greemlin.1146包含以下內部字串:

greemlin

Diamond.Lucifer.1086包含以下內部字串:

Lucifer (C) by C.J.
C.J.

參考來源编辑

  1. VX Heaven上記載的Diamond源始碼
  2. Diamond在VX Heaven上的變種清單
  3. Diamond在Online VSUMF-secure上的描述(僅部分變種)