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

多檔案捆綁為單一可執行檔:二進位拼接 + 執行時自解壓釋放原理

     編輯:VC 教學

核心思想

建立新二進位檔:依序寫入 **綁定器本體** + **長度** + **檔案1資料** + **長度** + **檔案2資料** + **長度** ... + **最後一檔資料** (無長度)。執行時反序讀取、切割、寫出還原各檔案並執行。

捆綁流程 (雙檔案示例)

  1. 取得綁定器自身大小 (`BinderSize`)、檔案1大小 (`Size1`)。
  2. 若檔案1有圖示,作為最終輸出圖示;否則用綁定器預設圖示。
  3. 建立輸出檔,依序寫入:
    • 綁定器本體資料 (`BinderSize` bytes)
    • `BinderSize` (DWORD)
    • 檔案1資料 (`Size1` bytes)
    • `Size1` (DWORD)
    • 檔案2資料 (剩餘所有 bytes,無長度前綴)

釋放流程 (綁定器啟動時自動執行)

  1. 開啟自身檔案 (`GetModuleFileName`)。
  2. 讀取 `BinderSize` (倒數第 2 個 DWORD?需約定位置),`Seek` 過綁定器本體。
  3. 讀取 `Size1`,讀取 `Size1` bytes 寫出檔案1。
  4. 讀取 `Size2`,讀取 `Size2` bytes 寫出檔案2...
  5. 最後一檔直接讀至 EOF。
  6. 依序 `ShellExecute` 或 `CreateProcess` 執行釋出檔案。
  7. 可選:釋出至暫存目錄、執行完自刪。

安全性警示

此技術常被木馬/惡意軟體濫用 (捆綁後門)。合法用途:安裝包無安裝程式單檔部署、綠色軟體封裝。**嚴禁用於惡意用途**,開發者應簽名、加入完整性校驗、殺毒白名單申報。

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