殼的概念
從技術的角度出發,殼是一段執行於原始程式前的代碼。原始程式的代碼在
加殼的過程中可能被壓縮、加密……當加殼後的檔案執行時,殼-這段代碼先於原始程式運行,他把壓縮、加密後的代碼還原成原始程式代碼,然後再把執行權交還給原始代碼。軟體的殼分為加密殼、壓縮殼、偽裝殼、多層殼等類,目的都是為了隱藏程式真正的OEP(
入口點,防止被破解)。
作者編好軟體後,編譯成exe
執行檔。1.有一些版權資訊需要保護起來,不想讓別人隨便改動,如作者的姓名,即為了保護軟體不被破解,通常都是採用加殼來進行保護。2.需要把程式搞的小一點,從而方便使用。於是,需要用到一些軟體,它們能將exe執行檔壓縮。3.在黑客界給木馬等軟體
加殼脫殼以躲避防毒軟體。實現上述功能,這些軟體稱為加殼軟體。
脫殼軟體
加殼一般屬於軟體加密,越來越多的軟體經過壓縮處理,給漢化帶來許多不便,
軟體漢化愛好者也不得不學習掌握這種技能。脫殼一般分手動和自動兩種,手動就是用
TRW2000、TR、SOFTICE等調試工具對付,對脫殼者有一定水平要求,涉及到很多彙編語言和
軟體調試方面的知識。而自動就是用專門的脫殼工具來脫,最常用某種
壓縮軟體都有他人寫的反壓縮工具對應,有些壓縮工具自身能解壓,如UPX;有些不提供這功能,如:ASPACK,就需要UNASPACK對付,好處是簡單,缺點是版本更新了就沒用了。另外脫殼就是用專門的脫殼工具來對付,最流行的是PROCDUMP v1.62 ,可對付各種壓縮軟體的壓縮檔。在這裡介紹的是一些通用的方法和工具,希望對大家有幫助。我們知道檔案的加密方式,就可以使用不同的工具、不同的方法進行脫殼。下面是我們常常會碰到的
加殼方式及簡單的脫殼措施,供大家參考:脫殼的基本原則就是單步跟蹤,只能往前,不能往後。脫殼的一般流程是:查殼->尋找OEP->Dump->修復。找OEP的一般思路如下: 先看殼是加密殼還是壓縮殼,壓縮殼相對來說容易些,一般是沒有異常,找到對應的popad後就能到入口,跳到入口的方式一般為:jmp OEP、push OEP ret、call OEP,當然也有其它的,如je OEP等等,一般都是段之間的大跳轉,OD的
反彙編視窗里都是同一個段的內容,所以更好區別是否是段間跳轉。我們知道檔案被一些壓縮
加殼軟體加密,下一步我們就要分析
加密軟體的名稱、版本。因為不同軟體甚至不同版本加的殼,脫殼處理的方法都不相同。
脫殼工具
1、檔案分析工具(偵測殼的類型):Fi,GetTyp,peid,pe-scan,
2、OEP入口查找工具:SoftICE,TRW,ollydbg,loader,peid
3、dump工具:IceDump,TRW,PEditor,ProcDump32,
LordPE4、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補。
殼脫法
1、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脫即可。
2、upx殼:脫殼可用upx待脫殼的軟體(如aa.exe)和upx.exe位於同一目錄下,執行windows起始選單的運行,鍵入upx -d aa.exe。
3、PEcompact殼:脫殼用unpecompact 使用方法類似lanuage傻瓜式軟體,運行後選取待脫殼的軟體即可。
4、procdump:萬能脫殼但不精,一般不要用,使用方法:運行後,先指定殼的名稱,再選定欲脫殼軟體,確定即可,脫殼後的檔案大於原檔案,由於脫殼軟體很成熟,手動脫殼一般用不到。
相關信息
加殼軟體最常見的加殼軟體ASPACK ,UPX,PEcompact,不常用的加殼軟體WWPACK32,PE-PACK,PETITE NEOLITE。
偵測殼和軟體所用編寫語言的軟體,因為脫殼之前要查他的殼的類型。
1.偵測殼的軟體fileinfo.exe,簡稱fi.exe(偵測殼的能力極強);2.偵測殼和軟體所用編寫語言的軟體language.exe(兩個功能合為一體,很棒),推薦language2000中文版(專門檢測加殼類型);3.軟體常用編寫語言Delphi,VisualBasic(VB)---最難破,VisualC(VC)。