本文原為教導編寫「檔案綁定器」將多個執行檔合併為單一檔案,並釋放執行,文中明確提及配合 QQ 木馬使用。此技術常被惡意軟體用於載入器、Dropper、多重惡意程式打包分發。現重寫為技術原理分析、合法應用場景(如安裝包、自解壓縮)與惡意軟體特徵識別指南。
PE (Portable Executable) 格式允許在檔案末尾附加任意資料而不影響原程式執行,因 Windows 載入器只解析標頭與區段表。綁定器利用此特性:
[Stub Loader] + [Payload1.exe] + [Payload2.exe] + [Length2][Length1]
GetModuleFileName / _pgmptr)。len2、len1。file_size - 60 - len2,讀取寫入 %TEMP%\payload2.exe。file_size - 60 - len2 - len1,讀取寫入 %TEMP%\payload1.exe。CreateProcess 啟動兩個 Payload。ExitProcess 結束 Stub。ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW) + MoveWindow(0,0,0,0) 隱藏工作列圖示。%TEMP% 使用 GUID/時間戳命名。CreateProcess + WriteProcessMemory 注入記憶體執行 (Process Hollowing)。| 場景 | 說明 | 合法性關鍵 |
|---|---|---|
| 安裝精靈 | 單一 Setup.exe 內嵌 MSI、CAB、Prerequisites (VC++ Runtime, .NET) | 數位簽章、用戶同意、透明解壓路徑 |
| 自解壓縮檔 (SFX) | 7-Zip/WinRAR SFX 模組 + 壓縮資料 | 開源演算法、可驗證完整性 |
| 便攜式應用打包 | Cameyo, ThinApp, VMware ThinApp 虛擬化單一 EXE | 隔離環境、無註冊表汙染 |
| 更新程式 | 單一 Updater.exe 內嵌新版本主程式 + 依賴項 | 簽章驗證、回滾機制 |
%TEMP%/%APPDATA% 並立即 CreateProcess。CreateProcess 父子關係異常(如 Word 啟動不明 EXE)、WriteProcessMemory 跨程序注入。%TEMP% 執行權限 (Software Restriction Policies)。PE-bear/CFF Explorer 檢視區段、資源、Overlay 大小。binwalk -e 或手動 dd 提取 Overlay 區塊。x64dbg 斷點於 CreateFile/ReadFile/WriteFile/CreateProcess 追蹤釋放路徑。檔案綁定技術本身中性,關鍵在於使用意圖與行為。資安人員需掌握其原理以強化靜態/動態偵測能力,開發者應避免在合法軟體中使用類似「自我釋放執行」模式,改用標準安裝/部署技術。