首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

VC++ 檔案綁定器技術原理分析與惡意軟體防範

     編輯:VC 教學

本文原為教導編寫「檔案綁定器」將多個執行檔合併為單一檔案,並釋放執行,文中明確提及配合 QQ 木馬使用。此技術常被惡意軟體用於載入器、Dropper、多重惡意程式打包分發。現重寫為技術原理分析、合法應用場景(如安裝包、自解壓縮)與惡意軟體特徵識別指南。

一、PE 檔案結構與綁定原理

PE (Portable Executable) 格式允許在檔案末尾附加任意資料而不影響原程式執行,因 Windows 載入器只解析標頭與區段表。綁定器利用此特性:

[Stub Loader] + [Payload1.exe] + [Payload2.exe] + [Length2][Length1]
  • Stub Loader:自訂小型啟動程式,負責解析尾部長度資訊、分離 Payload、寫入暫存目錄、啟動子程序、自我清理。
  • 長度標記:固定長度(如 30 bytes)儲存各 Payload 大小,Stub 從檔尾反向讀取定位。

二、Stub Loader 核心流程(偽代碼)

  1. 取得自身模組路徑 (GetModuleFileName / _pgmptr)。
  2. 開啟自身檔案,Seek 到檔尾 - 60 bytes 讀取 len2、len1。
  3. 計算 Payload2 起始位移:file_size - 60 - len2,讀取寫入 %TEMP%\payload2.exe。
  4. 計算 Payload1 起始位移:file_size - 60 - len2 - len1,讀取寫入 %TEMP%\payload1.exe。
  5. CreateProcess 啟動兩個 Payload。
  6. ExitProcess 結束 Stub。

三、隱藏技術與反分析手法

  • 無視窗模式:ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW) + MoveWindow(0,0,0,0) 隱藏工作列圖示。
  • 隨機檔名:Payload 寫入 %TEMP% 使用 GUID/時間戳命名。
  • 延遲執行/環境檢測:偵測沙箱、虛擬機、除錯器存在時延遲或退出。
  • 無檔案變體:Payload 不落地,直接 CreateProcess + WriteProcessMemory 注入記憶體執行 (Process Hollowing)。

四、合法應用場景

場景說明合法性關鍵
安裝精靈單一 Setup.exe 內嵌 MSI、CAB、Prerequisites (VC++ Runtime, .NET)數位簽章、用戶同意、透明解壓路徑
自解壓縮檔 (SFX)7-Zip/WinRAR SFX 模組 + 壓縮資料開源演算法、可驗證完整性
便攜式應用打包Cameyo, ThinApp, VMware ThinApp 虛擬化單一 EXE隔離環境、無註冊表汙染
更新程式單一 Updater.exe 內嵌新版本主程式 + 依賴項簽章驗證、回滾機制

五、惡意綁定器特徵識別 (IOC)

  • Stub 區段熵值極高(加密/壓縮/混淆)。
  • 資源區包含多個 MZ/PE 標頭特徵碼。
  • 啟動時寫入 %TEMP%/%APPDATA% 並立即 CreateProcess。
  • 無數位簽章、或簽章無效/被竄改。
  • 網路行為:啟動後連接 C2、下載額外模組。

六、企業級防禦建議

  1. 應用程式控制:AppLocker / WDAC 僅允許簽章受信任的執行檔運行。
  2. EDR 行為監控:攔截 CreateProcess 父子關係異常(如 Word 啟動不明 EXE)、WriteProcessMemory 跨程序注入。
  3. 沙箱動態分析:提交可疑檔案至 Cuckoo、Hybrid Analysis、ANY.RUN 觀察行為。
  4. 靜態掃描:YARA 規則偵測多重 PE 標頭、Stub 特徵碼、已知惡意綁定器模板。
  5. 最小權限:標準使用者帳號、受限制的 %TEMP% 執行權限 (Software Restriction Policies)。

七、逆向分析實務步驟

  1. PE-bear/CFF Explorer 檢視區段、資源、Overlay 大小。
  2. binwalk -e 或手動 dd 提取 Overlay 區塊。
  3. 對提取出的 Payload 遞迴分析(雜湊比對、VT 查詢、行為分析)。
  4. 動態除錯:x64dbg 斷點於 CreateFile/ReadFile/WriteFile/CreateProcess 追蹤釋放路徑。

檔案綁定技術本身中性,關鍵在於使用意圖與行為。資安人員需掌握其原理以強化靜態/動態偵測能力,開發者應避免在合法軟體中使用類似「自我釋放執行」模式,改用標準安裝/部署技術。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved