「殼」是保護軟體不被非法修改/反編譯的前置代碼,功能類似自然界的殼。加殼過程中原始碼被壓縮/加密,執行時殼先運行解殼還原後移交控制權。本文系統整理殼的分類、偵測工具、脫殼工具與常見殼的脫殼對策。
目的:隱藏原始程式入口點 (OEP),防破解、防分析、防病毒掃描(惡意程式常加殼躲避查殺)。
| 工具 | 功能 |
|---|---|
| FI (fileinfo.exe) | 偵測殼類型能力極強 |
| Language 2000 中文版 | 偵測殼類型 + 識別開發語言 (Delphi, VB, VC 等),VB 最難破 |
| PEiD, GetTyp, PE-Scan | 常用殼偵測器 |
| 階段 | 工具 |
|---|---|
| 尋找 OEP | SoftICE, TRW, OllyDbg, Loader, PEiD |
| Dump 記憶體映像 | IceDump, TRW, PEditor, ProcDump32, LordPE |
| PE 編輯/修復 IAT | PEditor, ProcDump32, LordPE, ImportREC, ReVirgin |
| 專用脫殼 | ASProtect: Caspr (v1.1-1.2), Rad (v1.1) |
| 殼類型 | 推薦脫殼方法 | 備註 |
|---|---|---|
| ASPack | UnASPack (舊版) / Caspr (全版本) | Caspr 用法:caspr target.exe 產生 target.ex_ → 重命名 |
| UPX | UPX 自帶脫殼:upx -d target.exe | 注意版本一致性 |
| PECompact | UnPECompact (傻瓜式 GUI) | |
| Armadillo | SoftICE + IceDump | 較繁瑣 |
| DBPE | 新版暫無解,可嘗試破解 | 國產優秀加密殼 |
| NeoLite | 自身脫殼功能 | |
| PCGuard | SoftICE + IceDump + FrogIce | |
| Petite | 舊版 Pedump32 直脫;新版需 SoftICE | |
| WWPack32 | 同 PECompact,建議 SoftICE + Pedump32 | 資源段有時無法修復 |
POPAD 後跳轉;加密殼需分析解密迴路。用 UltraEdit 開啟檔案:
• 加殼/未脫殼 → 中文顯示亂碼/無法辨識。
• 成功脫殼 → 中文清晰可見。
可用 UltraEdit 替換作者資訊(注意位元組數相等,不足補 00)。
脫殼技術是逆向工程、病毒分析、軟體本地化的核心基本功。掌握工具鏈與各殼特性,方能應對日新月異的保護殼。