黑客逆向破解基礎-3:如何識別程序加的什麼殼

目前來說windows程序狀態大體可以分爲以下幾種類型:未加殼、壓縮殼、傳統加密殼、代碼虛擬化保護、.Net程序加密。

識別程序加的什麼殼目前常用的方法有以下兩個:

1.使用查殼工具:如PEiD、Exeinfo PE等查殼工具。

這些工具內置各種殼的十六進制特徵碼進行對比查殼。
下面說下這些工具各自的優缺點:
(1) PEiD、FFI、FastScanner、RDG Packer Detector這類程序都是通過目錄下的userdb.txt(查殼程序不同可能數據庫名有出入)數據庫進行加殼程序特徵對比的,由於userdb.txt文件都是好多年前的了,全球基本都在用fly在09年發佈的UpKPEiDSign,即使有新的也都基於他製作的版本之上進行更新的,而且更新都沒有太好效果,由於原理都是通過加殼程序的特徵進行對應,而這些加殼特徵都是個人總結而來,對加殼程序的模糊搜索對比造成可靠性不高,特別是對於VMProtect這類加密殼程序,經常被識別成一些算七八糟都沒見過的加殼內容,特別是顯示UPolyX,基本都是誤報,對新手的誤導很嚴重,但對於傳統的一些壓縮殼的識別效果還是很好的,當然了,有利有弊,正是由於它的開放性特徵庫,也方便給大家提供自己編寫特徵的方法,來識別一些新的殼,期待大家能做出自己的加殼特徵來。
在這裏插入圖片描述
(2) Exeinfo PE屬於新一代查殼工具,作者目前還在更新,它和PEiD的區別可能就在於它的特徵庫是作者自己維護,不支持外部修改,新版好像也開始支持外部特徵庫了,這款查殼工具的加殼特徵庫比較準確而且範圍很廣,如ThemIDA、WinLicense、VMProtect、ZProtect、Shielden都可以輕鬆識別出來,但對於具體加殼程序的版本都是模糊的,其實個人認爲加殼版本真的不重要,這個後面再具體說道,Exeinfo PE可以說是目前可以說最好的查殼工具了,推薦大家使用。
在這裏插入圖片描述
2、通過入口特徵和區段特徵來識別

想要知道一個程序加的是什麼殼,那麼一定要找到和殼的特徵息息相關的信息。一般來說,主要是程序的區段信息程序的入口特徵信息

區段信息可以通過PEiD的EP處點擊獲取到,比如下圖的區段信息中可以輕鬆看出,這是一款Themida或者WinLicense的加殼程序。
在這裏插入圖片描述

入口特徵可以通過OllyDBG載入獲得,載入後可以按一下“Ctrl+A”,讓OD分析一下代碼,就可以把入口點一些特徵字符串分析出來,從下圖的入口信息可以輕鬆看出,這是一款Safengine加殼的程序,對於Shielden、Safengine、VProtect這類加殼程序都可以使用這種方法判斷出來。
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章