當前位置:編程學習大全網 - 源碼下載 - 脫殼和加殼

脫殼和加殼

脫殼 在壹些計算機軟件裏有壹段專門負責保護軟件不被非法修改或反編譯的程序。它們壹般都是先於程序運行,拿到控制權,然後完成它們保護軟件的任務。就像動植物的殼壹般都是在身體外面壹樣理所當然(但後來也出現了所謂的“殼中帶籽”的殼)。由於這段程序和自然界的殼在功能上有很多相同的地方,基於命名的規則,大家就把這樣的程序稱為“殼”了。就像計算機病毒和自然界的病毒壹樣,其實都是命名上的方法罷了。 從功能上抽象,軟件的殼和自然界中的殼相差無幾。無非是保護、隱蔽殼內的東西。而從技術的角度出發,殼是壹段執行於原始程序前的代碼。原始程序的代碼在加殼的過程中可能被壓縮、加密……。當加殼後的文件執行時,殼-這段代碼先於原始程序運行,他把壓縮、加密後的代碼還原成原始程序代碼,然後再把執行權交還給原始代碼。 軟件的殼分為加密殼、壓縮殼、偽裝殼、多層殼等類,目的都是為了隱藏程序真正的OEP(入口點,防止被破解)。關於“殼”以及相關軟件的發展歷史請參閱吳先生的《壹切從“殼”開始》。

加殼 加殼的全稱應該是可執行程序資源壓縮,是保護文件的常用手段.

加殼過的程序可以直接運行,但是不能查看源代碼.要經過脫殼才可以查看源代碼.

加殼:其實是利用特殊的算法,對EXE、DLL文件裏的資源進行壓縮、加密。類似WINZIP 的效果,只不過這個壓縮之後的文件,可以獨立運行,解壓過程完全隱蔽,都在內存中完成。它們附加在原程序上通過Windows加載器載入內存後,先於原始程序執行,得到控制權,執行過程中對原始程序進行解密、還原,還原完成後再把控制權交還給原始程序,執行原來的代碼部分。加上外殼後,原始程序代碼在磁盤文件中壹般是以加密後的形式存在的,只在執行時在內存中還原,這樣就可以比較有效地防止破解者對程序文件的非法修改,同時也可以防止程序被靜態反編譯。

解壓原理,是加殼工具在文件頭裏加了壹段指令,告訴CPU,怎麽才能解壓自己。現在的CPU都很快,所以這個解壓過程妳看不出什麽東西。軟件壹下子就打開了,只有妳機器配置非常差,才會感覺到不加殼和加殼後的軟件運行速度的差別。當妳加殼時,其實就是給可執行的文件加上個外衣。用戶執行的只是這個外殼程序。當妳執行這個程序的時候這個殼就會把原來的程序在內存中解開,解開後,以後的就交給真正的程序。所以,這些的工作只是在內存中運行的,是不可以了解具體是怎麽樣在內存中運行的。通常說的對外殼加密,都是指很多網上免費或者非免費的軟件,被壹些專門的加殼程序加殼,基本上是對程序的壓縮或者不壓縮。因為有的時候程序會過大,需要壓縮。但是大部分的程序是因為防止反跟蹤,防止程序被人跟蹤調試,防止算法程序不想被別人靜態分析。加密代碼和數據,保護妳的程序數據的完整性。不被修改或者窺視妳程序的內幕。

  • 上一篇:請高手幫忙編寫關於K—mediods算法的MATLAB程序用於處理Iris數據集的聚類處理,得到叠代次數圖形和準確率
  • 下一篇:矩形內整點直角三角形有多少個
  • copyright 2024編程學習大全網