廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 3800 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
upside 手機 葫蘆墩家族
個人頭像
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎 社區建設獎 優秀管理員勳章
頭銜:反病毒 反詐騙 反虐犬   反病毒 反詐騙 反虐犬  
版主
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[資訊教學] 安全基礎病毒加殼技術與脫殼殺毒方法
安全基礎病毒加殼技術與脫殼殺毒方法

殼是什麼?脫殼又是什麼?這是很多經常感到迷惑和經常提出的問題,其實這個問題一點也不幼稚。當你想聽說脫殼這個名詞並試著去了解的時候,說明你已經在各個安全站點很有了一段日子了。下面,我們進入“殼”的世界吧。

一、金蟬脫殼的故事

我先想講個故事吧。那就是金蟬脫殼。金蟬脫殼屬於三十六計中的混戰計。金蟬脫殼的本 意是︰寒蟬在蛻變時,本體脫離皮殼而走,只留下蟬蛻還掛在枝頭。此計用於軍事,是指透過偽裝擺脫敵人,撤退或轉移,以實現我方的戰略目標的謀略。穩住對 方,撤退或轉移,決不是驚慌失措,消極逃跑,而是保留形式,抽走內容,穩住對方,使自己脫離險境達到己方戰略目標,己方常常可用巧妙分兵轉移的機會出擊另 一部分敵人。三國時期,諸葛亮六出祁山,北伐中原,但一直未能成功,終於在第六次北伐時,積勞成疾,在五丈原病死於軍中。 維遵照諸葛亮的吩咐,在諸葛亮死後,秘不發喪,對外嚴密封鎖消息。他帶著靈柩,祕密率部撤退。司馬懿派部隊跟蹤追擊蜀軍。姜維命工匠仿諸葛亮摸樣,雕了一 個木人,羽扇綸巾,穩坐車中。並派楊儀率領部分人馬大張旗鼓,向魏軍發動進攻。魏軍遠望蜀軍,軍容整齊,旗鼓大張,又見諸葛亮穩坐車中,指揮若定,不知蜀 軍又耍什麼花招,不敢輕舉妄動。司馬懿一向知道諸葛亮“詭計多端”,又懷疑此次退兵乃是誘敵之計,於是命令部隊後撤,觀察蜀軍動向。姜維趁司馬懿退兵的大 好時機,馬上指揮主力部隊,迅速安全轉移,撤回漢中。等司馬懿得知諸葛亮已死,再進兵追擊,為時已晚。相信這個故事,大家在大型連續劇《三國演義》裡已經 看過了。呵呵,只是沒有理解得這麽深入罷了﹗而在黑客入侵技術中,金蟬脫殼則是指︰刪除係統營運日誌 攻擊者攻破係統後,常刪除係統營運日誌,隱藏自己的痕跡...呵呵

二、殼,脫殼,加殼

在自然界中,我想大家對殼這東西應該都不會陌生了,由上述故事,我們也可見一斑。自 然界中植物用它來保護種子,動物用它來保護身體等等。同樣,在一些計算機軟體裡也有一段專門負責保護軟體不被非法修改或反編譯的程式。它們一般都是先於程 序營運,拿到控制權,然後完成它們保護軟體的任務。就像動植物的殼一般都是在身體外面一樣理所當然(但後來也出現了所謂的“殼中帶籽”的殼)。由於這段程 序和自然界的殼在功能上有很多相同的地方,基於命名的規則,大家就把這樣的程式稱為“殼”了。就像計算機病毒和自然界的病毒一樣,其實都是命名上的方法罷 了。 從功能上抽象,軟體的殼和自然界中的殼相差無幾。無非是保護、隱蔽殼內的東西。而從技術的角度出發,殼是一段執行於原始程式前的代碼。原始程式的代碼在加 殼的過程中可能被壓縮、加密……。當加殼後的文件執行時,殼-這段代碼先於原始程式營運,他把壓縮、加密後的代碼還原成原始程式代碼,然後再把執行權交還 給原始代碼。 軟體的殼分為加密殼、壓縮殼、偽裝殼、多層殼等類,目的都是為了隱藏程式真正的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 文件,仍可執行,只是營運過程和以前不一樣了。壓縮工具把文件壓縮後,在文件開頭一部分,加了一段解壓代碼。執行時該文件時,該代碼先執行解壓還原文件, 不過這些都是在內存中完成的,由於微機速度快,我們基本感覺不出有什麼不同。

四、加殼與木馬

木馬危害無窮,但是隨著人們對各種木馬知識的了解,殺毒和專殺工具的特殊照顧,使得 很多木馬無藏身之地,但很多高手到處賣馬,號稱不會被查殺。它們究竟是如何躲在我們的係統中的呢? 其實無非對木馬進行“加/脫殼”。對於黑客來說,加/脫殼技術被淋漓盡致地應用到了偽裝木馬客戶端上,目的是為了防止被殺毒軟體反跟蹤查殺和被跟蹤調試, 同時也防止算法程式被別人靜態分析。最基本的隱藏︰不可見窗體+隱藏文件。木馬程式
採用“進程隱藏”技術︰ 第一代進程隱藏技術︰Windows 98的後門 。第二代進程隱藏技術︰進程插入,以及 其後的Hook技術之外就是跟殺毒軟體對著幹︰反殺毒軟體外殼技術了。木馬再狡猾,可是一旦被殺毒軟體定義了特徵碼,在營運前就被攔截了。要躲過殺毒軟體 的追殺,很多木馬就被加了殼,相當於給木馬穿了件衣服,這樣殺毒軟體就認不出來了,但有部分殺毒軟體會嘗試對常用殼進行脫殼,然後再查殺(小樣,別以為穿 上件馬夾我就不認識你了)。除了被動的隱藏外,最近還發現了能夠主動和殺毒軟體對著幹的殼,木馬在加了這種殼之後,一旦營運,則外殼先得到程式控制權,由 其透過各種手段對係統中安裝的殺毒軟體進行破壞,最後在確認安全(殺毒軟體的保護已被瓦解)後由殼釋放包裹在自己“體內”的木馬體並執行之。對付這種木馬 的方法是使用具有脫殼能力的殺毒軟體對係統進行保護。殼能夠將文件(比如EXE)包住,然後在文件被營運時,首先由殼獲得控制權,然後釋放並營運包裹著的 文件體。很多殼能對自己包住的文件體進行加密,這樣就可以防止殺毒軟體的查殺。比如原先殺毒軟體定義的該木馬的特徵是“12345”,如果發現某文件中含 有這個特徵,就認為該文件是木馬,而帶有加密功能的殼則會對文件體進行加密(如︰原先的特徵是“12345”,加密後變成了“54321”,這樣殺毒軟體 當然不能靠文件特徵進行檢查了)。脫殼指的就是將文件外邊的殼去除,恢復文件沒有加殼前的狀態。

雖然很多殺毒軟體的文件監控都會使程式首次營運時速度很慢。這是因為︰殺毒軟體對 壓縮加殼的exe文件監控掃描時,都要先“脫殼”。一般壓縮加殼程式,可加密壓縮可執行文件的代碼、數據、輸入表、重定位表、資源段。通常壓縮後的文件大 小只有原來的50%-70%,但不影響程式的正常使用和所有功能,目的是保護文件不被跟蹤分析,反彙編,脫殼等。所以有時候使用某軟體給木馬脫殼會失敗, 但可換個軟體試下。脫殼後重新加殼或者使用不同加殼的軟體給木馬加多層殼,均有可能欺騙殺毒軟體,但在經過複雜的多重加殼後,檢測出的結果就不一定準確 了,此時就需要“adv.scan”高級掃描, pe-scan會分析出被各種加殼工具加殼的可能性。

五、加殼與病毒

病毒要想生存,除了增加自身的變形能力以外,還可與程式加殼壓縮聯繫起來。我們先來 看看病毒變形的目的,因為現下的反病毒軟體,基於特徵碼檢測,增加變形能力,使得特徵碼檢測方法更加困難。那麽,如果再和程式加殼技術結合起來,那麽將使 的單單透過添加特徵碼方法解毒徹底失效,解毒時,必須同時更新掃描引擎,而現下並沒有通用的解殼方法。因此加殼壓縮和變形結合起來,將使得反病毒廠商手忙 腳亂,也使得反病毒軟體用戶痛苦不堪,頻繁的更新,除了特徵碼,還有掃描引擎。給平常的病毒加個殼,比如用upx,現下通常反病毒軟體,對於常用的加密加 殼壓縮程式,都有相應的解殼程式。效果並不好,所以如果病毒本是既是一好的變形加密加殼壓縮程式,那麽,目的是強迫更新掃描引擎,當然也是可以被動態解壓 檢測出來的,只是增加了解毒的很多工作量。實際上加殼技術不僅僅用於軟體保護,也可用於好的病毒。好的病毒不一定要非常快的傳播速度,難於檢測,難於查殺 更重要一些,就像現下殺毒界的虛擬機技術,也不過是個雛形,有很多的功能並不能完全虛擬化,同時若加殼代碼本身可變形,同時有多種加殼算法可供隨機選擇, 那麽就很難找出其中的規律以及關係。總之,好的殺毒軟體至少應該具有的技術功能之一就是要具備壓縮還原技術︰對Pklite、Diet、Exepack、 Com2exe、Lzexe、Cpav等幾百種壓縮加殼軟體自動還原,徹底解除隱藏較深的病毒,避免病毒死灰複燃。



爸爸 你一路好走
獻花 x0 回到頂端 [樓 主] From:臺灣和信超媒體寬帶網 | Posted:2006-12-21 19:35 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.020310 second(s),query:15 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言