壓縮殼和
① 軟體的殼是什麼呀
在一些計算機軟體里有一段專門負責保護軟體不被非法修改或反編譯的程序。一般都是先於程序運行,拿到控制權,然後完成它們保護軟體的任務。由於這段程序和自然界的殼在功能上有很多相同的地方,基於命名的規則,把這樣的程序稱為「殼」。就像計算機病毒和自然界的病毒一樣,其實都是命名上的方法。
從功能上抽象,軟體的殼和自然界中的殼相差無幾。無非是保護、隱蔽殼內的東西。而從技術的角度出發,殼是一段執行於原始程序前的代碼。原始程序的代碼在加殼的過程中可能被壓縮、加密。當加殼後的文件執行時,殼,這段代碼先於原始程序運行,把壓縮、加密後的代碼還原成原始程序代碼,然後再把執行權交還給原始代碼。
軟體的殼分為加密殼、壓縮殼、偽裝殼、多層殼等類,目的都是為了隱藏程序真正的OEP(入口點,防止被破解)。
② 什麼是壓縮殼
這類殼主要目的是減小程序體積,如ASPacK、UPX和PECompact等
③ 加殼是什麼意思
加殼的全稱應該是可執行程序資源壓縮,是保護文件的常用手段。 加殼過的程序可以直接運行,但是不能查看源代碼.要經過脫殼才可以查看源代碼。
中文名:加殼
全稱:可執行程序資源壓縮
屬於:保護文件的常用手段
可以:直接運行
概述
加殼的另一種常用的方式是在二進制的程序中植入一段代碼,在運行的時候優先取得程序的控制權,做一些額外的工作。大多數病毒就是基於此原理。
加殼的程序經常想盡辦法阻止外部程序或軟體對加殼程序的反匯編分析或者動態分析,以達到它不可告人的目的。這種技術也常用來保護軟體版權,防止被軟體破解。
詳細信息
概念
加殼:其實是利用特殊的演算法,對EXE、DLL文件里的資源進行壓縮、加密。類似WINZIP 的效果,只不過這個壓縮之後的文件,可以獨立運行,解壓過程完全隱蔽,都在內存中完成。它們附加在原程序上通過Windows載入器載入內存後,先於原始程序執行,得到控制權,執行過程中對原始程序進行解密、還原,還原完成後再把控制權交還給原始程序,執行原來的代碼部分。加上外殼後,原始程序代碼在磁碟文件中一般是以加密後的形式存在的,只在執行時在內存中還原,這樣就可以比較有效地防止破解者對程序文件的非法修改,同時也可以防止程序被靜態反編譯。
解壓原理
加殼工具在文件頭里加了一段指令,告訴CPU,怎麼才能解壓自己。現在的CPU都很快,所以這個解壓過程你看不出什麼東西。軟體一下子就打開了,只有你機器配置非常差,才會感覺到不加殼和加殼後的軟體運行速度的差別。當你加殼時,其實就是給可執行的文件加上個外衣。用戶執行的只是這個外殼程序。當你執行這個程序的時候這個殼就會把原來的程序在內存中解開,解開後,以後的就交給真正的程序。所以,這些的工作只是在內存中運行的,是不可以了解具體是怎麼樣在內存中運行的。通常說的對外殼加密,都是指很多網上免費或者非免費的軟體,被一些專門的加殼程序加殼,基本上是對程序的壓縮或者不壓縮。因為有的時候程序會過大,需要壓縮。但是大部分的程序是因為防止反跟蹤,防止程序被人跟蹤調試,防止演算法程序不想被別人靜態分析。加密代碼和數據,保護你的程序數據的完整性。不被修改或者窺視你程序的內幕。
加「殼」雖然增加了CPU負擔,但是減少了硬碟讀寫時間,實際應用時加「殼」以後程序運行速度更快(當然有的加「殼」以後會變慢,那是選擇的加「殼」工具問題)。
一般軟體都加「殼」這樣不但可以保護自己的軟體不被破解、修改還可以增加運行時啟動速度。
加「殼」不等於木馬,我們平時的絕大多數軟體都加了自己的專用「殼」。
RAR和ZIP都是壓縮軟體,不是加「殼」工具,他們解壓時是需要進行磁碟讀寫,「殼」的解壓縮是直接在內存中進行的。用RAR或者ZIP壓縮一個病毒你試試,解壓縮時殺毒軟體肯定會發現。而用加「殼」手段封裝木馬,能發現的殺毒軟體就少得多。
木馬加殼的原理很簡單,在黑客營中提供的多數木馬中,很多都是經過處理的,而這些處理就是所謂的加殼。當一個EXE的程序生成好後,很輕松的就可以利用諸如資源工具和反匯編工具對它進行修改,但如果程序員給EXE程序加一個殼的話,那麼至少這個加了殼的EXE程序就不是那麼好修改了,如果想修改就必須先脫殼。
分類
加殼工具通常分為壓縮殼和加密殼兩類。
壓縮殼的特點是減小軟體體積大小,加密保護不是重點。
加密殼種類比較多,不同的殼側重點不同,一些殼單純保護程序,另一些殼提供額外的功能,如提供注冊機制、使用次數、時間限制等。