6.1 殼的基礎知識
程式運作流程
未加殼程式流程
- 原程式 -> 加載到記憶體中 -> 順利執行
加殼程式流程
- 加殼程式 -> 加密的原程式讀取到記憶體 -> 解密并釋放 -> 原程式加載到記憶體中 -> 順利執行
殼的運作過程
- 加載API函數
- 解密區段
- 進行代碼重定位
- 轉到入口點
6.2 殼在免殺領域的作用
- 加殼免殺的原理
據我了解,目前防毒軟體會定義加殼的程式的病毒家族為.pack。檢測不出來也會提示使用者目前程式是加殼的風險程式
- FreeRes多重加殼
FreeRes軟體原作者的意圖是通過這款軟體将已壓縮加密的程式解壓并釋放,在此之前黑客們為了對抗防毒軟體的自動脫殼功能,發現了一些重複加殼的規律。使用某些殼與其他一些殼重複使用,也就是最原始的加多層殼的辦法。
6.3 殼的修改技巧
-
殼的初級修改
修改加殼檔案的特征與免殺特征碼一緻。
-
殼的深度修改
在靠近入口點的位置修改,修改殼的流程可以修改跳以及一些帶借進位的運算.
-
提取殼的特征資料
十六進制資料區:前4個位元組為操作指令,後面的8位(位元組)為操作數.