本文描述惡意軟體持久化技術,僅供防禦研究、安全分析參考。製作、傳播木馬屬違法犯罪,嚴禁實作濫用。
Windows 透過登錄鍵 HKEY_CLASSES_ROOT\exefile\shell\open\command 定義 .exe 檔案的預設打開動作。預設值為 "%1" %*。若將此值修改為木馬程式路徑 (如 "C:\Trojan.exe" "%1" %*),則使用者雙擊任意 .exe 皆會先啟動木馬。木馬再啟動原程式並恢復登錄,即可隱蔽持久化,甚至在安全模式下生效。
CreateMutex("MyStart") 防止重複執行。AfxGetApp()->m_lpCmdLine (即原程式路徑)。"%1" %* (否則 ShellExecute 會再次觸發木馬)。ShellExecute(NULL, "open", 原程式路徑, ...) 啟動真實程式。"C:\Trojan.exe" "%1" %*。CString str = AfxGetApp()->m_lpCmdLine; // 取得傳入參數
HANDLE hMutex = CreateMutex(NULL, FALSE, "MyStart");
if (GetLastError() == ERROR_ALREADY_EXISTS) PostQuitMessage(0);
if (!str.IsEmpty()) {
// 處理路徑中的反斜線
CString tmp;
for (int i=0; i
HKCR\exefile\shell\open\command 值變更 (如 Sysinternals Autoruns、Windows Defender)。