資訊安全領域的研究、心得分享

2016年2月10日 星期三

加殼以及脫殼(一)

2016/2/11 撰寫於深夜

前提:
          由於最近在編寫出自己的殼,故先寫出了這篇文章。
          第一篇是科普掃盲文章,請知道基本原理並想繼續深入的人跳至第二章。


什麼是加殼?

在生活中,植物用殼保護它的種子,某些動物也同樣用殼保護自己脆弱的身體,而在計算機領域中,同樣有殼來保護軟體本身。


加密殼

如果你曾使用過破解版軟體或所謂的綠色版軟體,那些補丁就是由所謂的破解者(Cracker)、或逆向工程研究者如我(Cracker)所寫出來的。

而軟體廠商為了防止我們這些破壞他們商業利益的人成功地做出破解補丁,他們通常
會在他們所發佈的軟體上做一些手腳,增加破解者們破解的困難度,拖延他們寫出補丁時間,直到讓他們花費在破解上的精力遠遠大過於從口袋中掏出鈔票買正版軟體的花費為止。

除了商業軟體會用到所謂的加殼保護技術,不少惡意軟體的作者也會幫自己成品加殼,除了讓特徵碼掃描型防毒軟體難以辨識之外,還增加了反病毒工程師解密及理解病毒執行過程的時間。


壓縮殼?

有些人也加殼技術利用於壓縮軟體上,因為壓縮的過程本身就可以視為另外一種加密,如果將原加密的演算法改變為壓縮的演算法,就是所謂的壓縮殼,例如著名的開源UPX殼,甚至可以將加殼後的軟體壓縮至原本大小的三分之一。


虛擬機保護殼

雖然虛擬機保護殼基本屬於加密殼的一種,但由於它加密的方式與傳統的加密殼有著相當不同的差別,故而特別拿出來講一講。

虛擬機保護殼不僅僅只是對於代碼段進行了加密,還對於加密段使用了虛擬機技術,將原本的機械碼轉換成了只有虛擬機才懂得虛擬機械碼,當執行該加密段的時後才會由虛擬機進行轉譯。

是前公認最難被破解的殼,至今沒有人宣布完全破解使用這種技術保護的軟體,但由於使用虛擬機執行,執行的效率會慢上許多。

沒有留言:

張貼留言