核心思想
建立新二進位檔:依序寫入 **綁定器本體** + **長度** + **檔案1資料** + **長度** + **檔案2資料** + **長度** ... + **最後一檔資料** (無長度)。執行時反序讀取、切割、寫出還原各檔案並執行。
捆綁流程 (雙檔案示例)
- 取得綁定器自身大小 (`BinderSize`)、檔案1大小 (`Size1`)。
- 若檔案1有圖示,作為最終輸出圖示;否則用綁定器預設圖示。
- 建立輸出檔,依序寫入:
- 綁定器本體資料 (`BinderSize` bytes)
- `BinderSize` (DWORD)
- 檔案1資料 (`Size1` bytes)
- `Size1` (DWORD)
- 檔案2資料 (剩餘所有 bytes,無長度前綴)
釋放流程 (綁定器啟動時自動執行)
- 開啟自身檔案 (`GetModuleFileName`)。
- 讀取 `BinderSize` (倒數第 2 個 DWORD?需約定位置),`Seek` 過綁定器本體。
- 讀取 `Size1`,讀取 `Size1` bytes 寫出檔案1。
- 讀取 `Size2`,讀取 `Size2` bytes 寫出檔案2...
- 最後一檔直接讀至 EOF。
- 依序 `ShellExecute` 或 `CreateProcess` 執行釋出檔案。
- 可選:釋出至暫存目錄、執行完自刪。
安全性警示
此技術常被木馬/惡意軟體濫用 (捆綁後門)。合法用途:安裝包無安裝程式單檔部署、綠色軟體封裝。**嚴禁用於惡意用途**,開發者應簽名、加入完整性校驗、殺毒白名單申報。