本文原始碼為病毒範例,僅供安全研究、教學分析用途。傳播、執行惡意代碼屬違法行為,嚴禁濫用。
此病毒 (dv1) 以組合語言 (TASM32/TLINK) 撰寫,可感染 DOS 下的 .COM 與 .EXE 檔案。核心模組:
INT 21h/4D4Dh 判斷是否已駐留記憶體。INT 21h 攔截 4Bh (Exec)、43h (Get/Set Attr)、3Dh (Open) 功能,針對 .COM/.EXE 寫入病毒本體。JMP VIRUS。StartCS:IP、StartSS:SP 指向病毒碼 (置於檔尾並對齊段落),設定 CheckSum='VV' 為感染標記,重寫 Header。INT 20h;EXE 還原 SS:SP/CS:IP) 並轉跳執行。DosMcb Struc
Flag db ? ; 'M'=非最後, 'Z'=最後
Owner dw ? ; 0008h=系統, 0=空閒
Sizes dw ? ; 區塊大小 (段落數)
DosMcb Ends
ExeHeader Struc
Flags dw 'ZM' ; EXE 標記
ModSize dw ? ; 最後頁字節數
Pages dw ? ; 頁數 (512bytes/頁)
Reloc dw ? ; 重定位項數
MeSize dw ? ; Header 段落數
MinMem dw ? ; 最小記憶體
MaxMem dw ? ; 最大記憶體
StartSs dw ? ; SS 初值
StartSp dw ? ; SP 初值
CheckSum dw ? ; 檢查和
StartIp dw ? ; IP 初值
StartCs dw ? ; CS 初值
RelocOff dw ? ; 重定位表偏移
ExeHeader Ends
INT 21h Hook、MCB 異常縮減、EXE Header CheckSum 異常、檔案大小異常增長。