數據壓縮
無損壓縮
無損壓縮:經過壓縮的文件能100%恢復
有損壓縮
有損壓縮:經過壓縮的文件不能恢復原狀,壓縮多媒體文件時大部分使用有損壓縮
運行時壓縮器
運行時壓縮器:針對可執行文件而言,可執行文件內部含有解壓縮代碼,文件在運行瞬間於內存中解壓縮後執行
壓縮器
- 使用目的:縮減PE文件的大小、隱藏PE文件內部代碼與資源
- 種類
- 目的純粹的壓縮器:UPX、ASPack等
- 目的不純的壓縮器:UPack、PESpin、NSAnti等
保護器
- 使用目的:防止破解、保護代碼與資源
- 種類
- 商用:ASProtect、Themida、SVKP等
- 公用:UltraProtect、Morphine等
運行時壓縮測試
以notepad.exe和UPX爲例,對比如下:
- PE頭大小不變
- 節區名稱改變(".text"–>".UPX0",".data"–>".UPX1")
- 第一個節區的RawDataSize=0,即第一節區在磁盤文件中是不存在的
- EP位於第二節區(原來位於第一節區)
- 資源節區基本沒變化
調試
notepad.exe的EP代碼
notepad_upx.exe的EP代碼
參考文獻
《逆向工會核心原理》