而從技術的角度出發,殼是一段執行于原始程序前的代碼。原始程序的代碼在加殼的過程中可能被壓縮、加密……。當加殼后的文件執行時,殼-這段代碼先于原始程序運行,他把壓縮、加密后的代碼還原成原始程序代碼,然后再把執行權交還給原始代碼。 軟件的殼分為加密殼、壓縮殼、偽裝殼、多層殼等類,目的都是為了隱藏程序真正的OEP(入口點,防止被破解)。
加殼”指的是對編譯好的EXE、DLL等文件采用加殼來進行保護;“脫殼”指的就是將文件外邊的殼去除,恢復文件沒有加殼前的狀態。 殼出于程序作者想對程序資源壓縮、注冊保護的目的,把殼分為壓縮殼、密碼殼、加密殼三種。顧名思義,壓縮殼只是為了減小程序體積對資源進行壓縮,常見的壓縮殼包括FSG、ASPack、UPX、北斗等;加密殼也就是常說的保護殼、猛殼,它對程序輸入表等內容進行加密保護,具有良好的保護效果,常見的加密殼包括ASPROTECT、ACPROTECT、PELock、幻影等;密碼殼平時使用得不多,加密殼的程序只有在正確輸入密碼后才能運行