殼,加殼,脫殼,介紹殼的一些基本常識
更新時間:2025-12-16 13:35:08 閱讀: 評論:0
關于諸葛亮的作文-大學生培訓
2023年11月18日發(作者:五必訪)殼,加殼,脫殼,介紹殼的一些基本常識
免殺入門 2009-08-06 16:58 閱讀7 評論0 字號: 大大 中中 小小 在一些計算機軟件里也有一段專門負責保護軟件不被非法修改或反編譯的程序。它們一般都是先于程序運行,拿到控制權,然后完成它們保護軟件的任務。就像動植物的殼一般都是在身體外面一樣理所當然(但后來也出現了所謂的“殼中帶籽”的殼)。由于這段程序和自然界的殼在功能上有很多相同的地方,基于命名的規則,大家就把這樣的程序稱為“殼”了。就像計算機病毒和自然界的病毒一樣,其實都是命名上的方法罷了。
從功能上抽象,軟件的殼和自然界中的殼相差無幾。無非是保護、隱蔽殼內的東西。而從技術的角度出發,殼是一段執行于原始程序前的代碼。原始程序的代碼在加殼的過程中可能被壓縮、加密……。當加殼后的文件執行時,殼-這段代碼先于原始程序運行,他把壓縮、加密后的代碼還原成原始程序代碼,然后再把執行權交還給原始代碼。 軟件的殼分為加密殼、壓縮殼、偽裝殼、多層殼等類,目的都是為了隱藏程序真正的OEP(入口點,防止被破解)。關于“殼”以及相關軟件的發展歷史請參閱吳先生的《一切從“殼”開始》。
(一)殼的概念
作者編好軟件后,編譯成exe可執行文件。
1.有一些版權信息需要保護起來,不想讓別人隨便改動,如作者的姓名,即為了保護軟件不被破解,通常都是采用加殼來進行保護。
2.需要把程序搞的小一點,從而方便使用。于是,需要用到一些軟件,它們能將exe可執行文件壓縮,
3.在黑客界給木馬等軟件加殼脫殼以躲避殺毒軟件。實現上述功能,這些軟件稱為加殼軟件。
(二)加殼軟件最常見的加殼軟件
ASPACK ,UPX,PEcompact 不常用的加殼軟件WWPACK32;PE-PACK ;PETITE NEOLITE
(三)偵測殼和軟件所用編寫語言的軟件
因為脫殼之前要查他的殼的類型。
1.偵測殼的軟件 簡稱(偵測殼的能力極強)。
2.偵測殼和軟件所用編寫語言的軟件(兩個功能合為一體,很棒),推薦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,
入口查找工具:SoftICE,TRW,ollydbg,loader,peid
工具:IceDump,TRW,PEditor,ProcDump32,LordPE
文件編輯工具PEditor,ProcDump32,LordPE
5.重建Import Table工具:ImportREC,ReVirgin
ect脫殼專用工具: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補。
常見的殼脫法:
殼脫殼可用unaspack或caspr ck ,使用方法類似lanuage,傻瓜式軟件,運行后選取待脫殼的軟件即可. 缺點:只能脫aspack早些時候版本的殼,不能脫高版本的殼
第一種:待脫殼的軟件(如)和位于同一目錄下,執行windows起始菜單的運行,鍵入 caspr 脫殼后的文件為_,刪掉原來的,將_改名為即可。使用方法類似fi 優點:可以脫aspack任何版本的殼,脫殼能力極強缺點:Dos界面。
第二種:將的圖標拖到的圖標上***若已偵測出是aspack殼,用unaspack脫殼出錯,說明是aspack高版本的殼,用caspr脫即可。
殼脫殼可用upx待脫殼的軟件(如)和位于同一目錄下,執行windows起始菜單的運行,鍵入upx -d 。
act殼 脫殼用unpecompact 使用方法類似lanuage傻瓜式軟件,運行后選取待脫殼的軟件即可。
mp 萬能脫殼但不精,一般不要用使用方法:運行后,先指定殼的名稱,再選定欲脫殼軟件,確定即可脫殼后的文件大于原文件由于脫殼軟件很成熟,手動脫殼一般用不到。
免殺過程中的總結
第一:我們學習免殺的方向:
如果象本人一樣,只是為了保護自己的黑軟的話!就不會學的那么累(沒必要去學匯編編程)有時候簡單加下殼或者脫下殼就OK!
如果是要挑戰世界的殺毒軟件的話,畢竟每個PC用戶安裝的殺軟都不一樣!想抓雞拿服務器的朋友就要進修脫殼破解,高級匯編的內容了,這將決定你免殺技術的高低!
第二:免殺的環境:做免殺,逃不了測試這個木馬是不是修改成功!所以為了保護自己的系統,我建議學免殺要先學會使用虛擬機,很多人會說,為什么不用影子?影子系統雖然也是可以保護的,暫用
資源又少,但是有些反彈型木馬,我們運行后如果失敗(即使成功)都需要重啟來完成完全清除的工作!做過QQ盜號木馬跟黑鷹遠控軟件免殺的朋友應該深有體會!
第三:殺軟的安裝設置:個人建議安裝卡巴,小紅傘,瑞星,金山!(當然配置好的電腦可以再加上江民,麥咖啡)這里我為什么不說安裝NOD32呢!本人以前裝卡巴,小紅傘,瑞星,金山的時候就為了裝個NOD32而導致不能上網(后來修復)又發現權限有問題(部分程序竟然沒權限運行......)只好在虛擬機里單獨安裝!所以也建議大家要裝NOD32的話,還是在虛擬機里單獨安裝吧!硬盤大的朋友建議全利用虛擬機安裝殺軟(方便以后重做系統,節省升級病毒庫的時間)殺軟的設置,可以說是很簡單的!每安裝完一個殺軟,我們都要先在殺軟設置里把監控跟自我保護的選項的鉤去掉!然后升級病毒庫!升級完后再關閉服務跟啟動項(利用360安全衛士)這樣安裝其他的殺軟就不會起沖突了!這里注意下!瑞星升級后會自己更改自己的服務為自動,所以瑞星建議最后裝,最后升級,再關閉它的服務!這里我想大家肯定是關心殺軟的序列號從哪來的吧!瑞星有體驗版,金山有37天試用版,NOD32利用PPLOVE網絡電視有180天試用!卡巴等洋貨在百度上搜索均有可用的序列號!這個就是考驗大家的細心了!呵呵!卡巴不建議裝6.0的,雖然我知道6.0的有的序列號可以用到3000年!但是查殺模式跟7.0大有不同!!大家還是裝7.0吧!(雖然卡巴的啟發比不上NOD32的,但是它的主動可是免殺愛好者的“粉絲”)
第四:殺軟的查殺特點:
卡巴:簡單來說是靠主動吃飯的!他的病毒庫雖然非常大!但是不知道為什么,簡單的花指令竟然能破解它......雖然現在升級加了啟發掃描~~但是我測試還是一個花就可以過!只要你的花有個性(別去網上找)加個殼改下殼頭也可以過!瑞星:國內木馬的超級對手可以這么說!對國內的木馬定位的特征是洋貨的N倍(鴿子見證)主要查殺技術是內存查殺技術,但是對一些生僻的木馬,內存病毒庫里竟然沒有,只要過了表面就可以過內存......主動主殺敏感字符串,本人測試鴿子的時候改了表面跟內存特征,竟然直接過主動......廣告賣的倒不錯,但是只是針對流行木馬!其他不常見木馬并沒有加大什么強度!
NOD32:啟發掃描的頭領!主殺輸入表函數,針對MYCCL定位器做過調整!定位建議用 multiCCL這個來定位!不過這個大塊頭對生僻殼的偵殼能力不強!加些生僻殼把一些函數保護起來可以讓它無用武之地!對外國木馬還行~國內好多木馬它都放行!!國內朋友不建
議裝這個殺軟(這類殼主要是加密型,不建議用壓縮型)金山:數據流查殺技術的代表!簡單來說跟瑞星內存查殺技術有點一樣!病毒庫升級,查殺病毒速度都是超級快!但是殺毒能力比較上面的幾款有點遜色!
360與金山清理專家:行為查殺的代表,金山清理專家比360查殺力度還大!但是監控能力......實在不想說!以上可以說是所有集合殺軟的特點:文件查殺,內存查殺,啟發查殺,數據流查殺!行為查殺!主動防御!每個殺軟都有自己的特點,一個人也不可能把全球殺軟都安裝起來研究,但是以上4個殺軟跟一個輔助可以說全包括了病毒查殺特點!也不能說哪個不好,哪個很好!有些木馬這個殺軟殺不出來~~那個就可以殺出來!所以對于現在網上有些朋友對個別殺毒軟件不重視,就會導致你所謂的“肉雞”插翅難飛!嘻嘻!
第五:免殺所用工具簡介(建議都去甲殼蟲下載)
免殺其實用不了很多工具!!但是我看一些朋友的免殺工具包真的好嚇人......
g: 32位的動態編譯器,脫殼跟修改特征碼必備工具!
2.C32Asm: 集反匯編,16進制,Hiew修改功能一體!但是真正用處只是修改驅動內核級木馬Pcshre才用!平時的修改技巧后面再講!
:16進制編輯工具!主要是內存編輯功能好用
:定位內存特征的小工具
:查殼工具
:PE編輯工具!脫殼,修改程序入口跟函數常用
r:修改程序入口跟效驗程序的
rator:程序資源修改器!做免殺需要修改資源的時候殺用的最多(如鴿子)!
pe:同上,有時候需要這個才可以導出,導入,修改資源!本人也不知道WHY?
s:針對資源的釋放程序,可重建可編輯資源而實現加多重殼的目的!
d:加區段的工具
REC:不常用!偶而用來修復輸入表!
:跟FreeRes差不多,配合使用效果很好!
:特征碼定位器(1.1版本可以用來當點唱機- -!)
CL:DOS界面的定位器,不怎么受歡迎!但是定位方法比MYCCL更好!更科學!
:偏移地址轉換器
32特征碼轉換器:不說也知道是干什么用吧- -!
cker:超級巡警自動脫殼機!有時候要脫殼就找它!
:超級巡警病毒分析工具!我一直當脫殼機用....
20.掘北壓縮0.28免殺版:對瑞星有很好的效果,改下頭對卡巴有療效
ect:卡巴金山的天敵!
22.免殺了一個月的花(公布出來就代表不免殺)
push 數字
push ebp
add esp,數字
add esp,-數字
pop e
bp
push -數字
mov EDI,EDI
mov EDI,EDI
nop
push ebp
mov ebp,esp ----跳回去入口點吧!
以上是本人免殺學習過程中常用的工具!當然還有一些殼我沒寫!大家都知道!殺軟查殺的力度!本人就不公布了!大家自己去找吧!生僻殼的效果絕對比改特征碼好!
第六點:木馬定位技巧!
網上很多這樣的教程!這里我就簡單說下!MYCCL那個帶后綴意思就是定位表面不需要打上,定位內存就要打上鉤!分塊個數的原則是,看木馬體積的大小!體積大的分塊小點,體積小的分塊大點!這樣重復的次數就很少!還要看自己機子的配置,最大不能超200!估計會出錯誤吧!一般本人是先10-20-50-100!NOD32一直都是10塊10塊定完!分塊長度就是字節數,一般都是精確到1!不過1--4之間都是可以的!填充,除了NOD32定位要改變成90外,其他的殺軟都是00填充!開始位置一般都是CODE段!如果是被殺的比較緊的木馬(如鴿子)就默認吧,全區段定位!呵呵!正向,這個是針對NOD32才改變!NOD32定位這里要改成反向!multiCCL定位器!本人很少用!只用來定位NOD32,所以本人不獻丑了!
第七:修改特征碼之OD應用學習
修改特征碼建議先去學下OD的使用方法跟一些簡單的匯編語句!8086手冊不錯!
修改一定要保持一個原則:堆棧平衡
1.順序調換法如果我們發現一處特征都是同一個語句,如:PUSH 1 PUSH 2 PUSH 3 PUSH 4 而特征碼是PUSH 2 我們可以嘗試把34跟12的位置調換,其他語句也一樣!一般都是MOV語句多!
移位法如果我們發現特征碼的上一句或者下一句有個0000或者NOP語句,我們可以把特征移動到0000或者NOP上面執行,而原位置直接NOP掉!這方法注意特征定在CALL上的!我們都要跟隨所調用的程序去看看!說不定特征所調用的子程序的上句/下句就有NOP指令!也可以這樣改,也有免殺效果!
3.通用跳轉法超級簡單好用的方法!加花的時候經常用!找出0000(PEID搜索O區域)把特征仍過去再跳回來原NOP掉的特征的下一句指令就可以達到效果......
4.等值替換法最難掌握的方法!需要一定的匯編知識!如;JE=JNZ ADD=AUB- 等等這里需要匯編指令速查手冊幫助!當然,你修改多了以后就不需要了!改多了就會熟悉了!呵呵 CALL有時候可以嘗試改成JMP!沒有實現的跳轉可以嘗試NOP!碰到CALL語句一定要記的跟過去看看!JMP也一樣!多看多練習,就會發現別人不知道的方法!第八:修改特征碼之C32Asm應用用這個修改特征碼,本人一直保持一個原則:非明文,都是亂碼,不嘗試修改! 1.大小寫替換法如果特征定位特征在SVCHOST 這樣很清楚的E文上,可以改大小寫
!如果跟過去是E文,跟旁邊的字符一起選擇一下就變亂碼就不要改了 2.字符加1減1法等效與OD里的等值替換法!建議在OD操作!這方法容易使程序丟失功能!知道就可!如:CALL--E8 JMP--E8 JNZ--75 JE--74 3.輸入表函數修改要在OD里找到此處特征的函數所對應的16進制數值位置,進行移位修改!或者直接利用LordPE找到對應的輸入表函數進行移位!(這個建議多看教程!不難) 4.00填充法不建議用這方法!!一個指令的存在肯定有它存在的意義!所以這方法少用為妙!小心丟失功能!雖然是很方便...... 頭修改方法只是對PE頭進行移位就能達到反調試免殺的目的!這個不知道怎么說!網上有詳細教程 C32Asm這個工具對修改驅動內核級木馬可是派上大用場!但是大家注意的是修改這類木馬一定要記的在虛擬機里進行`~這種高級手術容易讓電腦感冒(藍屏)!呵呵特征碼的修改不但累人,也要一定的匯編基礎!所以本人都是一般通過加花,改殼等方法來完成免殺操作的!以下是本人總結的一些修改技巧!花指令:絕對不能用網上的!一定要自己寫,寧愿花3小時寫1段花!也不要用網上已經公布的花,那樣跟沒用一樣!本人一般喜歡先幾個跳轉,再執行花再跳兩下有時候不但對卡巴,對金山也有效果...... 殼:掘北壓縮加上ASP加密雖然容易出錯,但是只要不出錯就可以達到免殺效果!很多人現在可能還在改UPX的殼!!這個殼我看改的也有點費力了吧!大家還是換點生僻的殼來修改吧!加殼后定位的特征碼可能不是殼的特征碼,而是殼跟程序變種后的特征!本人總結;免殺這門技術!如果你想深究,就去學匯編,學習下系統底層的知識!現在的木馬已經都向驅動級發展!不會點匯編能行么?能過主動防御么?如果只是認識一下,或者免殺下自己的黑軟!本人認為以上的知識點已經足夠下!人要多想象!不能老用人家的方法!多測試,多留心,你會發現殺軟的漏洞的!從而輕松躲過查殺!免殺的方法跟技巧還有很多!是需要大家自己去發覺的,現在教程雖然多!但是畢竟是人家總結出來的!老跟人家的思路走怎么會進步? x00
大學生學年自我鑒定-鳥取大學
本文word下載地址:殼,加殼,脫殼,介紹殼的一些基本常識.doc
本文 PDF 下載地址:殼,加殼,脫殼,介紹殼的一些基本常識.pdf