許多開發者誤以為病毒只能用組合語言或腳本編寫,實則高階語言同樣能實現完整惡意功能。本文以 Delphi 為例,拆解蠕蟲病毒的三大核心模組——保護、感染、發作——並說明相對應的檢測與防禦思路。
呼叫 GetSystemDirectory 取得系統路徑,使用 CopyFile 將自身複製為 ruin.exe、virus_ruin.exe,再以 SetFileAttributes(FILE_ATTRIBUTE_HIDDEN+FILE_ATTRIBUTE_SYSTEM) 設為隱藏系統檔。
修改登錄鍵值:
HKLM\Software\Microsoft\Windows\CurrentVersion\Run 寫入 ruin.exe 實現開機自啟。HKCR\txtfile\shell\open\command 關聯至 virus_ruin.exe %1,若 Run 鍵被刪,使用者開啟文字檔仍會觸發病毒。Win9x 呼叫 RegisterServiceProcess;NT 系統可採用 DLL 注入、服務安裝或 win.ini 載入等方式。
典型手法包括:
.EXE/.SCR(PE 前綴寫入法)。.WAB、.ADC、.IND 通訊錄發送帶毒郵件(利用 Outlook COM 或 MAPI)。autorun.inf 傳播(文中未列但常見)。常見觸發條件:特定日期、感染數量門檻、偵測特定語言環境(如代碼頁 932)。破壞行為涵蓋:覆寫檔案內容、刪除檔案、格式化磁碟、修改 MBR、下載執行第二階段載荷等。
| 行為 | 檢測方式 |
|---|---|
| 大量 PE 檔頭修改 | 檔案完整性監控(FIM)、HIPS 規則 |
| 登錄 Run 鍵異常寫入 | 登錄監控、基線比對 |
| 進程注入 Explorer | EDR 記憶體掃描、遠程線程建立攔截 |
| 批量郵件發送 | 郵件流量異常分析、SMTP 連線限制 |