天天看點

什麼是加殼和脫殼技術?加殼和脫殼技術是什麼意思?

什麼是加殼和脫殼技術?加殼和脫殼技術是什麼意思?

加殼,是一種通過一系列數學運算,将可執行程式檔案或動态連結庫檔案的編碼進行改變(目前還有一些加殼軟體可以壓縮、加密驅動程式),以達到縮小檔案體積或加密程式編碼的目的。加殼一般是指保護程式資源的方法。

脫殼一般是指除掉程式的保護,用來修改程式資源。馬甲”能穿也能脫。相應的,有加殼也一定會有解殼(也叫脫殼)。脫殼主要有兩種方法:硬脫殼和動态脫殼。

第一種,是硬脫殼,這是指找出加殼軟體的加殼算法,寫出逆向算法,就像壓縮和解壓縮一樣。由于,目前很多“殼”均帶有加密、變形的特點,每次加殼生成的代碼都不一樣。硬脫殼對此無能為力,但由于其技術門檻較低,仍然被一些防毒軟體所使用。

第二種,是動态脫殼。由于加殼的程式運作時必須還原成原始形态,即加殼程式會在運作時自行脫掉“馬甲”。目前,有一種脫殼方式是抓取(Dump)記憶體中的鏡像,再重構成标準的執行檔案。相比硬脫殼方法,這種脫殼方法對自行加密、變形的殼處理效果更好。

殼的概念

在一些計算機軟體裡有一段專門負責保護軟體不被非法修改或反編譯的程式。它們一般都是先于程式運作,拿到控制權,然後完成它們保護軟體的任務。就像動植物的殼一般都是在身體外面一樣理所當然(但後來也出現了所謂的“殼中帶籽”的殼)。由于這段程式和自然界的殼在功能上有很多相同的地方,基于命名的規則,大家就把這樣的程式稱為“殼”了。就像計算機病毒和自然界的病毒一樣,其實都是命名上的方法罷了。 從功能上抽象,軟體的殼和自然界中的殼相差無幾。無非是保護、隐蔽殼内的東西。而從技術的角度出發,殼是一段執行于原始程式前的代碼。原始程式的代碼在加殼的過程中可能被壓縮、加密……。當加殼後的檔案執行時,殼-這段代碼先于原始程式運作,他把壓縮、加密後的代碼還原成原始程式代碼,然後再把執行權交還給原始代碼。 軟體的殼分為加密殼、壓縮殼、僞裝殼、多層殼等類,目的都是為了隐藏程式真正的OEP(入口點,防止被破解)。關于“殼”以及相關軟體的發展曆史請參閱吳先生的《一切從“殼”開始》。

作者編好軟體後,編譯成exe可執行檔案。 1.有一些版權資訊需要保護起來,不想讓别人随便改動,如作者的姓名,即為了保護軟體不被破解,通常都是采用加殼來進行保護。 2.需要把程式搞的小一點,進而友善使用。于是,需要用到一些軟體,它們能将exe可執行檔案壓縮, 3.在黑客界給木馬等軟體加殼脫殼以躲避防毒軟體。實作上述功能,這些軟體稱為加殼軟體。

(二)加殼軟體最常見的加殼軟體ASPACK ,UPX,PEcompact 不常用的加殼軟體WWPACK32;PE-PACK ;PETITE NEOLITE

(三)偵測殼和軟體所用編寫語言的軟體,因為脫殼之前要查他的殼的類型。 1.偵測殼的軟體fileinfo.exe 簡稱fi.exe(偵測殼的能力極強) 2.偵測殼和軟體所用編寫語言的軟體language.exe(兩個功能合為一體,很棒) 推薦language2000中文版(專門檢測加殼類型) 3.軟體常用編寫語言Delphi,VisualBasic(VB)---最難破,VisualC(VC)

(四)脫殼軟體。 軟體加殼是作者寫完軟體後,為了保護自己的代碼或維護軟體産權等利益所常用到的手段。目前有很多加殼工具,當然有盾,自然就有矛,隻要我們收集全常用脫殼工具,那就不怕他加殼了。軟體脫殼有手動脫和自動脫殼之分,下面我們先介紹自動脫殼,因為手動脫殼需要運用彙編語言,要跟蹤斷點等,不适合初學者,但我們在後邊将稍作介紹。

加殼一般屬于軟體加密,現在越來越多的軟體經過壓縮處理,給漢化帶來許多不便,軟體漢化愛好者也不得不學習掌握這種技能。現在脫殼一般分手動和自動兩種,手動就是用TRW2000、TR、SOFTICE等調試工具對付,對脫殼者有一定水準要求,涉及到很多彙編語言和軟體調試方面的知識。而自動就是用專門的脫殼工具來脫,最常用某種壓縮軟體都有他人寫的反壓縮工具對應,有些壓縮工具自身能解壓,如UPX;有些不提供這功能,如:ASPACK,就需要UNASPACK對付,好處是簡單,缺點是版本更新了就沒用了。另外脫殼就是用專門的脫殼工具來對付,最流行的是PROCDUMP v1.62 ,可對付目前各種壓縮軟體的壓縮檔。在這裡介紹的是一些通用的方法和工具,希望對大家有幫助。我們知道檔案的加密方式,就可以使用不同的工具、不同的方法進行脫殼。下面是我們常常會碰到的加殼方式及簡單的脫殼措施,供大家參考: 脫殼的基本原則就是單步跟蹤,隻能往前,不能往後。脫殼的一般流程是:查殼->尋找OEP->Dump->修複 找OEP的一般思路如下: 先看殼是加密殼還是壓縮殼,壓縮殼相對來說容易些,一般是沒有異常,找到對應的popad後就能到入口,跳到入口的方式一般為。 我們知道檔案被一些壓縮加殼軟體加密,下一步我們就要分析加密軟體的名稱、版本。因為不同軟體甚至不同版本加的殼,脫殼處理的方法都不相同。

常用脫殼工具:

1、檔案分析工具(偵測殼的類型):Fi,GetTyp,peid,pe-scan,

2、OEP入口查找工具:SoftICE,TRW,ollydbg,loader,peid

3、dump工具:IceDump,TRW,PEditor,ProcDump32,LordPE

4、PE檔案編輯工具PEditor,ProcDump32,LordPE

5、重建Import Table工具:ImportREC,ReVirgin

6、ASProtect脫殼專用工具:Caspr(ASPr V1.1-V1.2有效),Rad(隻對ASPr V1.1有效),loader,peid

(1)Aspack: 用的最多,但隻要用UNASPACK或PEDUMP32脫殼就行了

(2)ASProtect+aspack:次之,國外的軟體多用它加殼,脫殼時需要用到SOFTICE+ICEDUMP,需要一定的專業知識,但最新版現在暫時沒有辦法。

(3)Upx: 可以用UPX本身來脫殼,但要注意版本是否一緻,用-D 參數

(4)Armadill: 可以用SOFTICE+ICEDUMP脫殼,比較煩

(5)Dbpe: 國内比較好的加密軟體,新版本暫時不能脫,但可以破解

(6)NeoLite: 可以用自己來脫殼

(7)Pcguard: 可以用SOFTICE+ICEDUMP+FROGICE來脫殼

(8)Pecompat: 用SOFTICE配合PEDUMP32來脫殼,但不要專業知識

(9)Petite: 有一部分的老版本可以用PEDUMP32直接脫殼,新版本脫殼時需要用到SOFTICE+ICEDUMP,需要一定的專業知識

(10)WWpack32: 和PECOMPACT一樣其實有一部分的老版本可以用PEDUMP32直接脫殼,不過有時候資源無法修改,也就無法漢化,是以最好還是用SOFTICE配合 PEDUMP32脫殼

我們通常都會使用Procdump32這個通用脫殼軟體,它是一個強大的脫殼軟體,他可以解開絕大部分的加密外殼,還有腳本功能可以使用腳本輕松解開特定外殼的加密檔案。另外很多時候我們要用到exe可執行檔案編輯軟體ultraedit。我們可以下載下傳它的漢化注冊版本,它的注冊機可從網上搜到。ultraedit打開一個中文軟體,若加殼,許多漢字不能被認出 ultraedit打開一個中文軟體,若未加殼或已經脫殼,許多漢字能被認出 ultraedit可用來檢驗殼是否脫掉,以後它的用處還很多,請熟練掌握例如,可用它的替換功能替換作者的姓名為你的姓名注意位元組必須相等,兩個漢字替兩個,三個替三個,不足處在ultraedit編輯器左邊用00補。

常見的殼脫法:

(一)aspack殼 脫殼可用unaspack或caspr 1.unaspack ,使用方法類似lanuage,傻瓜式軟體,運作後選取待脫殼的軟體即可. 缺點:隻能脫aspack早些時候版本的殼,不能脫高版本的殼 2.caspr第一種:待脫殼的軟體(如aa.exe)和caspr.exe位于同一目錄下,執行windows起始菜單的運作,鍵入 caspr aa.exe脫殼後的檔案為aa.ex_,删掉原來的aa.exe,将aa.ex_改名為aa.exe即可。使用方法類似fi 優點:可以脫aspack任何版本的殼,脫殼能力極強缺點:Dos界面。第二種:将aa.exe的圖示拖到caspr.exe的圖示上***若已偵測出是aspack殼,用unaspack脫殼出錯,說明是aspack高版本的殼,用caspr脫即可。

(二)upx殼 脫殼可用upx待脫殼的軟體(如aa.exe)和upx.exe位于同一目錄下,執行windows起始菜單的運作,鍵入upx -d aa.exe。

(三)PEcompact殼 脫殼用unpecompact 使用方法類似lanuage傻瓜式軟體,運作後選取待脫殼的軟體即可。

(四)procdump 萬能脫殼但不精,一般不要用 使用方法:運作後,先指定殼的名稱,再標明欲脫殼軟體,确定即可脫殼後的檔案大于原檔案由于脫殼軟體很成熟,手動脫殼一般用不到。

虛拟機脫殼引擎(VUE)技術

對于病毒,如果讓其運作,則使用者計算機就會被病毒感染。是以,一種新的思路被提出,即給病毒構造一個仿真的環境,誘騙病毒自己脫掉“馬甲”。并且“虛拟環境”和使用者的計算機隔離,病毒在虛拟機的操作不會對使用者計算機有任何的影響。

“虛拟機脫殼”技術已經成為近年來全球安全業界公認的、解決這一問題的最有效利器。但由于編寫虛拟機系統需要解決虛拟CPU、虛拟周邊硬體裝置、虛拟驅動程式等多個方面的困難。

脫殼能力不強的防毒軟體,對付“加殼”後病毒就需要添加兩條不同的特征記錄。如果黑客換一種加殼工具加殼,則對于這些防毒軟體來說又是一種新的病毒,必須添加新的特征記錄才能夠清除。如果防毒軟體的脫殼能力較強,則可以先将病毒檔案脫殼,再進行清除,這樣隻需要一條記錄就可以對這些病毒通殺,不僅減小防毒軟體對系統資源的占用,同時大大提升了其清除病毒的能力。