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

關於 BCB 寫入檔案感染技術的原理分析與防禦對策

     編輯:關於C++

文件感染技術是傳統電腦病毒的核心傳播手段,通過將惡意代碼注入合法可執行文件,實現隨宿主程序執行而複製傳播。本文從技術原理角度分析基於 C++ Builder (BCB) 的文件感染典型實現模式——**外殼法**與**入口點修改法**,並探討現代防禦體系的對策。嚴正聲明:本文僅供安全研究、病毒分析教學及防禦技術開發參考,嚴禁用於編寫、傳播惡意代碼。

核心感染模式

模式一:外殼法 — 最經典、最通用

原理:構建一個獨立的「外殼」程序 (Stub),將原始宿主程序作為資源或數據區內嵌。運行時:

  1. 外殼程序先執行 (可執行權限檢查、反調試、解密、環境檢測)。
  2. 將內嵌的宿主程序釋放到臨時目錄或記憶體中。
  3. 啟動宿主程序 (CreateProcess / RunPE)。
  4. 可選:監控宿主退出,清理臨時檔案。

關鍵技術點:

  • 外殼需用純 Win32 API / SDK 編寫,避免 VCL/CLR 依賴,體積小 (數 KB)。
  • 內嵌宿主數據需加密 (XOR、AES、自定義),防止靜態提取。
  • 圖標、版本資訊、簽名需從宿主提取並應用到外殼,保持外觀一致。
  • 感染過程:讀取目標 EXE -> 加密 -> 附加/替換到外殼資源區 -> 修復 PE 校驗和 -> 寫入新檔。

模式二:入口點修改法 (EPO) — 直接修改宿主 PE

原理:直接修改目標 PE 文件,將病毒代碼注入代碼區空洞或新增區段,修改 AddressOfEntryPoint 指向病毒代碼,病毒代碼執行完跳回原入口點 (OEP)。

文中代碼片段分析 (inFect 函數):


// 簡化邏輯
1. 打開目標檔案,檢查是否已感染 (讀取偏移 80 處標誌 "AntGhazi")。
2. 讀取原檔案全部內容到記憶體 (pSearchFile)。
3. 構造病毒體:標誌(8B) + 原檔大小(4B) + 病毒代碼 + 原檔內容。
4. 修改圖標 (ModifyIcon) 使外觀不變。
5. 覆寫目標檔案:病毒體 + 原檔內容。
6. 恢復檔案時間屬性。

缺陷與風險:

  • **文件體積暴增** (原檔大小 + 病毒體),極易被發現。
  • **破壞簽名**:數位簽名失效,SmartScreen、殺毒軟體高度疑似。
  • **相容性差**:對加殼、壓縮、.NET、64位、簽名文件極易導致崩潰。
  • **無反調試/反虛擬機**:極易被沙箱、模擬器捕獲。

PE 格式知識是前提

無論哪種模式,深入理解 PE 結構是基礎:

  • IMAGE_DOS_HEADER.e_lfanew 定位 PE Header。
  • IMAGE_OPTIONAL_HEADER.AddressOfEntryPoint (入口點 RVA)。
  • IMAGE_SECTION_HEADER 區段屬性 (可讀/寫/執行)、對齊、原始數據指針。
  • 區段擴展/新增區段技術 (修改 NumberOfSections、SizeOfImage、對齊計算)。
  • 導入表 (IAT) 修復、重定位表處理 (若修改 ImageBase)。

現代防禦體系對抗感染

防禦層面技術手段對感染的效果
**靜態特徵**特徵碼掃描、熵值檢測(加密區段)、PE 結構異常檢查(區段名、屬性、入口點異常)、資源異常、數位簽名驗證查殺已知變種、發現未知可疑文件
**動態行為**API 掛鉤監控、沙箱模擬執行、系統調用序列分析、文件系統微濾波驅動監控寫入 EXE、進程創建鏈分析攔截釋放、注入、修改 EXE 等惡意行為
**記憶體防護**DEP (NX)、ASLR、CFG (控制流守護)、ACG (任意代碼防護)、VBS (虛擬化安全)阻止 Shellcode 執行、RunPE 注入、ROP 攻擊
**信譽與雲端**文件雲端查殺、數位簽名信任鏈、智慧螢幕過濾、零信任執行控制阻止無簽名/低信譽文件執行
**自我保護**關鍵系統文件保護 (WRP/SFC)、受保護進程 (PPL)、防篡改驅動防止系統文件被感染替換

合法應用場景與最佳實踐

類似技術在合法軟體中有正當用途:

  • 安裝包/自解壓包:外殼 + 內嵌載荷 (MSI、CAB、自定義格式),無惡意行為,簽名可信。
  • 應用虛擬化/便攜化:ThinApp、VMware ThinApp、Cameyo 等,虛擬化文件系統/註冊表,單文件部署。
  • 軟體護盾/加殼:VMProtect、Themida、Enigma Protector,加密原代碼、導入表、反調試,授權驗證。
  • EDR Agent 部署:單文件無依賴部署,含驅動程式資源動態釋放安裝。

合規要求:數位簽名、明確用戶授權、無隱蔽行為、通過殺毒軟體白名單認證、開源或接受安全審計。

總結

文件感染技術雖然歷史悠久,但其核心——**PE 結構操控、代碼注入、入口點劫持、資源內嵌**——構成了二進制安全攻防的基石。現代防禦體系通過「靜態+動態+記憶體+信譽+雲端」多維立體防護,已將傳統感染型病毒壓縮至極低生存空間。安全研究人員應專注於**未知威脅狩獵、行為建模、記憶體取證、供應鏈安全**等前沿方向,而非過度鑽研過時的感染技術實現細節。

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