一、金蟬脫殼的故事
我先想講個(gè)故事吧。那就是金蟬脫殼。金蟬脫殼屬于三十六計(jì)中的混戰(zhàn)計(jì)。金蟬脫殼的本意是:寒蟬在蛻變時(shí),本體脫離皮殼而走,只留下蟬蛻還掛在枝頭。此計(jì)用于軍事,是指通過偽裝擺脫敵人,撤退或轉(zhuǎn)移,以實(shí)現(xiàn)我方的戰(zhàn)略目標(biāo)的謀略。穩(wěn)住對(duì)方,撤退或轉(zhuǎn)移,決不是驚慌失措,消極逃跑,而是保留形式,抽走內(nèi)容,穩(wěn)住對(duì)方,使自己脫離險(xiǎn)境達(dá)到己方戰(zhàn)略目標(biāo),己方常常可用巧妙分兵轉(zhuǎn)移的機(jī)會(huì)出擊另一部分?jǐn)橙恕H龂鴷r(shí)期,諸葛亮六出祁山,北伐中原,但一直未能成功,終于在第六次北伐時(shí),積勞成疾,在五丈原病死于軍中。 維遵照諸葛亮的吩咐,在諸葛亮死后,秘不發(fā)喪,對(duì)外嚴(yán)密封鎖消息。他帶著靈柩,秘密率部撤退。司馬懿派部隊(duì)跟蹤追擊蜀軍。姜維命工匠仿諸葛亮摸樣,雕了一個(gè)木人,羽扇綸巾,穩(wěn)坐車中。并派楊儀率領(lǐng)部分人馬大張旗鼓,向魏軍發(fā)動(dòng)進(jìn)攻。魏軍遠(yuǎn)望蜀軍,軍容整齊,旗鼓大張,又見諸葛亮穩(wěn)坐車中,指揮若定,不知蜀軍又耍什么花招,不敢輕舉妄動(dòng)。司馬懿一向知道諸葛亮“詭計(jì)多端”,又懷疑此次退兵乃是誘敵之計(jì),于是命令部隊(duì)后撤,觀察蜀軍動(dòng)向。姜維趁司馬懿退兵的大好時(shí)機(jī),馬上指揮主力部隊(duì),迅速安全轉(zhuǎn)移,撤回漢中。等司馬懿得知諸葛亮已死,再進(jìn)兵追擊,為時(shí)已晚。相信這個(gè)故事,大家在大型連續(xù)劇《三國演義》里已經(jīng)看過了。呵呵,只是沒有理解得這么深入罷了!而在黑客入侵技術(shù)中,金蟬脫殼則是指:刪除系統(tǒng)運(yùn)行日志 攻擊者攻破系統(tǒng)后,常刪除系統(tǒng)運(yùn)行日志,隱藏自己的痕跡...呵呵
二、殼,脫殼,加殼
在自然界中,我想大家對(duì)殼這東西應(yīng)該都不會(huì)陌生了,由上述故事,我們也可見一斑。自然界中植物用它來保護(hù)種子,動(dòng)物用它來保護(hù)身體等等。同樣,在一些計(jì)算機(jī)軟件里也有一段專門負(fù)責(zé)保護(hù)軟件不被非法修改或反編譯的程序。它們一般都是先于程序運(yùn)行,拿到控制權(quán),然后完成它們保護(hù)軟件的任務(wù)。就像動(dòng)植物的殼一般都是在身體外面一樣理所當(dāng)然(但后來也出現(xiàn)了所謂的“殼中帶籽”的殼)。由于這段程序和自然界的殼在功能上有很多相同的地方,基于命名的規(guī)則,大家就把這樣的程序稱為“殼”了。就像計(jì)算機(jī)病毒和自然界的病毒一樣,其實(shí)都是命名上的方法罷了。 從功能上抽象,軟件的殼和自然界中的殼相差無幾。無非是保護(hù)、隱蔽殼內(nèi)的東西。而從技術(shù)的角度出發(fā),殼是一段執(zhí)行于原始程序前的代碼。原始程序的代碼在加殼的過程中可能被壓縮、加密……。當(dāng)加殼后的文件執(zhí)行時(shí),殼-這段代碼先于原始程序運(yùn)行,他把壓縮、加密后的代碼還原成原始程序代碼,然后再把執(zhí)行權(quán)交還給原始代碼。 軟件的殼分為加密殼、壓縮殼、偽裝殼、多層殼等類,目的都是為了隱藏程序真正的OEP(入口點(diǎn),防止被破解)。關(guān)于“殼”以及相關(guān)軟件的發(fā)展歷史請(qǐng)參閱吳先生的《一切從“殼”開始》。
(一)殼的概念
作者編好軟件后,編譯成exe可執(zhí)行文件。 1.有一些版權(quán)信息需要保護(hù)起來,不想讓別人隨便改動(dòng),如作者的姓名,即為了保護(hù)軟件不被破解,通常都是采用加殼來進(jìn)行保護(hù)。 2.需要把程序搞的小一點(diǎn),從而方便使用。于是,需要用到一些軟件,它們能將exe可執(zhí)行文件壓縮, 3.在黑客界給木馬等軟件加殼脫殼以躲避殺毒軟件。實(shí)現(xiàn)上述功能,這些軟件稱為加殼軟件。
(二)加殼軟件最常見的加殼軟件
ASPACK ,UPX,PEcompact 不常用的加殼軟件WWPACK32;PE-PACK ;PETITE NEOLITE
(三)偵測(cè)殼和軟件所用編寫語言的軟件
因?yàn)槊摎ぶ耙樗臍さ念愋汀?
1.偵測(cè)殼的軟件fileinfo.exe 簡(jiǎn)稱fi.exe(偵測(cè)殼的能力極強(qiáng))。
2.偵測(cè)殼和軟件所用編寫語言的軟件language.exe(兩個(gè)功能合為一體,很棒),推薦language2000中文版(專門檢測(cè)加殼類型)。
3.軟件常用編寫語言Delphi,VisualBasic(VB)---最難破,VisualC(VC)。
(四)脫殼軟件
軟件加殼是作者寫完軟件后,為了保護(hù)自己的代碼或維護(hù)軟件產(chǎn)權(quán)等利益所常用到的手段。目前有很多加殼工具,當(dāng)然有盾,自然就有矛,只要我們收集全常用脫殼工具,那就不怕他加殼了。軟件脫殼有手動(dòng)脫和自動(dòng)脫殼之分,下面我們先介紹自動(dòng)脫殼,因?yàn)槭謩?dòng)脫殼需要運(yùn)用匯編語言,要跟蹤斷點(diǎn)等,不適合初學(xué)者,但我們?cè)诤筮厡⑸宰鹘榻B。
加殼一般屬于軟件加密,現(xiàn)在越來越多的軟件經(jīng)過壓縮處理,給漢化帶來許多不便,軟件漢化愛好者也不得不學(xué)習(xí)掌握這種技能。現(xiàn)在脫殼一般分手動(dòng)和自動(dòng)兩種,手動(dòng)就是用TRW2000、TR、SOFTICE等調(diào)試工具對(duì)付,對(duì)脫殼者有一定水平要求,涉及到很多匯編語言和軟件調(diào)試方面的知識(shí)。而自動(dòng)就是用專門的脫殼工具來脫,最常用某種壓縮軟件都有他人寫的反壓縮工具對(duì)應(yīng),有些壓縮工具自身能解壓,如UPX;有些不提供這功能,如:ASPACK,就需要UNASPACK對(duì)付,好處是簡(jiǎn)單,缺點(diǎn)是版本更新了就沒用了。另外脫殼就是用專門的脫殼工具來對(duì)付,最流行的是PROCDUMP v1.62 ,可對(duì)付目前各種壓縮軟件的壓縮檔。在這里介紹的是一些通用的方法和工具,希望對(duì)大家有幫助。我們知道文件的加密方式,就可以使用不同的工具、不同的方法進(jìn)行脫殼。下面是我們常常會(huì)碰到的加殼方式及簡(jiǎn)單的脫殼措施,供大家參考: 脫殼的基本原則就是單步跟蹤,只能往前,不能往后。脫殼的一般流程是:查殼->尋找OEP->Dump->修復(fù) 找OEP的一般思路如下: 先看殼是加密殼還是壓縮殼,壓縮殼相對(duì)來說容易些,一般是沒有異常,找到對(duì)應(yīng)的popad后就能到入口,跳到入口的方式一般為。 我們知道文件被一些壓縮加殼軟件加密,下一步我們就要分析加密軟件的名稱、版本。因?yàn)椴煌浖踔敛煌姹炯拥臍ぃ摎ぬ幚淼姆椒ǘ疾幌嗤?
常用脫殼工具:
1、文件分析工具(偵測(cè)殼的類型):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(只對(duì)ASPr V1.1有效),loader,peid
(1)Aspack: 用的最多,但只要用UNASPACK或PEDUMP32脫殼就行了
(2)ASProtect+aspack:次之,國外的軟件多用它加殼,脫殼時(shí)需要用到SOFTICE+ICEDUMP,需要一定的專業(yè)知識(shí),但最新版現(xiàn)在暫時(shí)沒有辦法。
(3)Upx: 可以用UPX本身來脫殼,但要注意版本是否一致,用-D 參數(shù)
(4)Armadill: 可以用SOFTICE+ICEDUMP脫殼,比較煩
(5)Dbpe: 國內(nèi)比較好的加密軟件,新版本暫時(shí)不能脫,但可以破解
(6)NeoLite: 可以用自己來脫殼
(7)Pcguard: 可以用SOFTICE+ICEDUMP+FROGICE來脫殼
(8)Pecompat: 用SOFTICE配合PEDUMP32來脫殼,但不要專業(yè)知識(shí)
(9)Petite: 有一部分的老版本可以用PEDUMP32直接脫殼,新版本脫殼時(shí)需要用到SOFTICE+ICEDUMP,需要一定的專業(yè)知識(shí)
(10)WWpack32: 和PECOMPACT一樣其實(shí)有一部分的老版本可以用PEDUMP32直接脫殼,不過有時(shí)候資源無法修改,也就無法漢化,所以最好還是用SOFTICE配合 PEDUMP32脫殼
我們通常都會(huì)使用Procdump32這個(gè)通用脫殼軟件,它是一個(gè)強(qiáng)大的脫殼軟件,他可以解開絕大部分的加密外殼,還有腳本功能可以使用腳本輕松解開特定外殼的加密文件。另外很多時(shí)候我們要用到exe可執(zhí)行文件編輯軟件ultraedit。我們可以下載它的漢化注冊(cè)版本,它的注冊(cè)機(jī)可從網(wǎng)上搜到。ultraedit打開一個(gè)中文軟件,若加殼,許多漢字不能被認(rèn)出 ultraedit打開一個(gè)中文軟件,若未加殼或已經(jīng)脫殼,許多漢字能被認(rèn)出 ultraedit可用來檢驗(yàn)殼是否脫掉,以后它的用處還很多,請(qǐng)熟練掌握例如,可用它的替換功能替換作者的姓名為你的姓名注意字節(jié)必須相等,兩個(gè)漢字替兩個(gè),三個(gè)替三個(gè),不足處在ultraedit編輯器左邊用00補(bǔ)。
常見的殼脫法:
(一)aspack殼 脫殼可用unaspack或caspr 1.unaspack ,使用方法類似lanuage,傻瓜式軟件,運(yùn)行后選取待脫殼的軟件即可. 缺點(diǎn):只能脫aspack早些時(shí)候版本的殼,不能脫高版本的殼 2.caspr第一種:待脫殼的軟件(如aa.exe)和caspr.exe位于同一目錄下,執(zhí)行windows起始菜單的運(yùn)行,鍵入 caspr aa.exe脫殼后的文件為aa.ex_,刪掉原來的aa.exe,將aa.ex_改名為aa.exe即可。使用方法類似fi 優(yōu)點(diǎn):可以脫aspack任何版本的殼,脫殼能力極強(qiáng)缺點(diǎn):Dos界面。第二種:將aa.exe的圖標(biāo)拖到caspr.exe的圖標(biāo)上***若已偵測(cè)出是aspack殼,用unaspack脫殼出錯(cuò),說明是aspack高版本的殼,用caspr脫即可。
(二)upx殼 脫殼可用upx待脫殼的軟件(如aa.exe)和upx.exe位于同一目錄下,執(zhí)行windows起始菜單的運(yùn)行,鍵入upx -d aa.exe。
(三)PEcompact殼 脫殼用unpecompact 使用方法類似lanuage傻瓜式軟件,運(yùn)行后選取待脫殼的軟件即可。
(四)procdump 萬能脫殼但不精,一般不要用 使用方法:運(yùn)行后,先指定殼的名稱,再選定欲脫殼軟件,確定即可脫殼后的文件大于原文件由于脫殼軟件很成熟,手動(dòng)脫殼一般用不到。
| 共2頁: 1 [2] 下一頁 | ||
|


