在一些計算機軟件里有一段專門負責保護軟件不被非法修改或反編譯的程序。它們一般都是先于程序運行,拿到控制權,然后完成它們保護軟件的任務。就像動植物的殼一般都是在身體外面一樣理所當然(但后來也出現了所謂的“殼中帶籽”的殼)。由于這段程序和自然界的殼在功能上有很多相同的地方,基于命名的規則,大家就把這樣的程序稱為“殼”了。就像計算機病毒和自然界的病毒一樣,其實都是命名上的方法罷了。 從功能上抽象,軟件的殼和自然界中的殼相差無幾。無非是保護、隱蔽殼內的東西。而從技術的角度出發,殼是一段執行于原始程序前的代碼。原始程序的代碼在加殼的過程中可能被壓縮、加密……。當加殼后的文件執行時,殼-這段代碼先于原始程序運行,他把壓縮、加密后的代碼還原成原始程序代碼,然后再把執行權交還給原始代碼。 軟件的殼分為加密殼、壓縮殼、偽裝殼、多層殼等類,目的都是為了隱藏程序真正的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 萬能脫殼但不精,一般不要用 使用方法:運行后,先指定殼的名稱,再選定欲脫殼軟件,確定即可脫殼后的文件大于原文件由于脫殼軟件很成熟,手動脫殼一般用不到。
壓縮與脫殼
現在脫殼一般分手動和自動兩種,手動就是用TRW2000、TR、SOFTICE等調試工具對付,對脫殼者有一定水平要求。而自動就稍好些,用專門的脫殼工具來脫,最常用某種壓縮軟件都有他人寫的反壓縮工具對應,有些壓縮工具自身能解壓,如UPX;有些不提供這功能,如:ASPACK,就需要UNASPACK對付。很多文件使用了一些壓縮加殼軟件加密過,這就需要對文件進行解壓脫殼處理后,才能漢化。這種壓縮與我們平時接觸的壓縮工具如winzip,winrar等壓縮不同,winzip和winrar等壓縮后的文件不能直接執行,而這種 EXE 壓縮軟件,EXE文件壓縮后,仍可以運行。這種壓縮工具把文件壓縮后,會在文件開頭一部分,加了一段解壓代碼。執行時該文件時,該代碼先執行解壓還原文件,不過這些都是在內存中完成的,由于微機速度快,我們基本感覺不出有什么不同。這樣的程序很多,如 The bat,Acdsee,Winxfile等等。
要脫殼就應先了解常用壓縮工具有哪些,這樣知己知彼,如今越來越多的軟件商喜歡用壓縮方式發行自己的產品,如The bat!用UPX壓縮,ACDSEE3.0用ASPACK壓縮等。它有以下因素:一是:微機性能越來越好,執行過程中解壓使人感覺不出來,用戶能接受(給軟件加殼,類似WINZIP 的效果,只不過這個加殼壓縮之后的文件,可以獨立運行,解壓過程完全隱蔽,都在內存中完成。解壓原理,是加殼工具在文件頭里加了一段指令,告訴CPU,怎么才能解壓自己。現在的CPU都很快,所以這個解壓過程你看不出什么異常。因為軟件一下子就打開了,只有你機器配置非常差,才會感覺到不加殼和加殼后的軟件運行速度的差別。)。 二是:壓縮后軟件體積縮小,便于網絡傳輸。三是:增加破解的難度。首先,加殼軟件不同于一般的winzip,winrar等壓縮軟件.它是壓縮exe可執行文件的,壓縮后的文件可以直接運行.而winzip,winrar等壓縮軟件可壓縮任何文件,但壓縮后不能直接運行。很多站點不允許上傳可執行文件,而只能上傳壓縮的文件,一方面處于速度考慮,也是為了安全性考慮。用加殼軟件壓縮的文件就是體積縮小,別的性質沒改變。還是EXE文件,仍可執行,只是運行過程和以前不一樣了。壓縮工具把文件壓縮后,在文件開頭一部分,加了一段解壓代碼。執行時該文件時,該代碼先執行解壓還原文件,不過這些都是在內存中完成的,由于微機速度快,基本感覺不出有什么不同。
(一)殼的概念
作者編好軟件后,編譯成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 萬能脫殼但不精,一般不要用 使用方法:運行后,先指定殼的名稱,再選定欲脫殼軟件,確定即可脫殼后的文件大于原文件由于脫殼軟件很成熟,手動脫殼一般用不到。
壓縮與脫殼
現在脫殼一般分手動和自動兩種,手動就是用TRW2000、TR、SOFTICE等調試工具對付,對脫殼者有一定水平要求。而自動就稍好些,用專門的脫殼工具來脫,最常用某種壓縮軟件都有他人寫的反壓縮工具對應,有些壓縮工具自身能解壓,如UPX;有些不提供這功能,如:ASPACK,就需要UNASPACK對付。很多文件使用了一些壓縮加殼軟件加密過,這就需要對文件進行解壓脫殼處理后,才能漢化。這種壓縮與我們平時接觸的壓縮工具如winzip,winrar等壓縮不同,winzip和winrar等壓縮后的文件不能直接執行,而這種 EXE 壓縮軟件,EXE文件壓縮后,仍可以運行。這種壓縮工具把文件壓縮后,會在文件開頭一部分,加了一段解壓代碼。執行時該文件時,該代碼先執行解壓還原文件,不過這些都是在內存中完成的,由于微機速度快,我們基本感覺不出有什么不同。這樣的程序很多,如 The bat,Acdsee,Winxfile等等。
要脫殼就應先了解常用壓縮工具有哪些,這樣知己知彼,如今越來越多的軟件商喜歡用壓縮方式發行自己的產品,如The bat!用UPX壓縮,ACDSEE3.0用ASPACK壓縮等。它有以下因素:一是:微機性能越來越好,執行過程中解壓使人感覺不出來,用戶能接受(給軟件加殼,類似WINZIP 的效果,只不過這個加殼壓縮之后的文件,可以獨立運行,解壓過程完全隱蔽,都在內存中完成。解壓原理,是加殼工具在文件頭里加了一段指令,告訴CPU,怎么才能解壓自己。現在的CPU都很快,所以這個解壓過程你看不出什么異常。因為軟件一下子就打開了,只有你機器配置非常差,才會感覺到不加殼和加殼后的軟件運行速度的差別。)。 二是:壓縮后軟件體積縮小,便于網絡傳輸。三是:增加破解的難度。首先,加殼軟件不同于一般的winzip,winrar等壓縮軟件.它是壓縮exe可執行文件的,壓縮后的文件可以直接運行.而winzip,winrar等壓縮軟件可壓縮任何文件,但壓縮后不能直接運行。很多站點不允許上傳可執行文件,而只能上傳壓縮的文件,一方面處于速度考慮,也是為了安全性考慮。用加殼軟件壓縮的文件就是體積縮小,別的性質沒改變。還是EXE文件,仍可執行,只是運行過程和以前不一樣了。壓縮工具把文件壓縮后,在文件開頭一部分,加了一段解壓代碼。執行時該文件時,該代碼先執行解壓還原文件,不過這些都是在內存中完成的,由于微機速度快,基本感覺不出有什么不同。