挖礦軟體脫殼
㈠ 軟體破解脫殼法
什麼是脫殼技術?
在一些電腦軟體里有一段專門負責保護軟體不被非法修改或反編譯的程序。它們一般都是先於程序運行拿到控制權,然後完成它們保護軟體的任務。就像動植物的殼一般都是在身體外面一樣理所當然(但後來也出現了所謂的「殼中帶籽」的殼)。由於這段程序和自然界的殼在功能上有很多相同的地方,基於命名的規則,大家就把這樣的程序稱為「殼」了。就像電腦病毒和自然界的病毒一樣,其實都是命名上的方法罷了。從功能上抽象,軟體的殼和自然界中的殼相差無幾。無非是保護、隱蔽殼內的東西。而從技術的角度出發,殼是一段執行於原始程序前的代碼。原始程序的代碼在加殼的過程中可能被壓縮、加密……。當加殼後的文件執行時,殼這段代碼先於原始程序運行,他把壓縮、加密後的代碼還原成原始程序代碼,然後再把執行權交還給原始代碼。 軟體的殼分為加密殼、壓縮殼、偽裝殼、多層殼等類,目的都是為了隱藏程序真正的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的一般思路如下:[color=blue]先看殼是加密殼還是壓縮殼,壓縮殼相對來說容易些一般是沒有異常,找到對應的popad後就能到入口。跳到入口的方式一般為:我們知道文件被一些壓縮加殼軟體加密,下一步我們就要分析加密軟體的名稱、版本。因為不同軟體甚至不同版本加的殼,脫殼處理的方法都不相同。我很少寫破文,最近看到一些新手常問查殼工具查不出是什麼殼?不知殼如何脫?我這裏就簡單的用一個范常式式談談脫殼方法,算是給新手打打氣。一般這種沒有公開的殼不會太猛(除了hying,vcasm, jingulong等這些圈內人的殼哈)大多是自己土製的殼,有的還偽裝一下致使查殼工具查不出或查出什麼Aspack,UPX的殼。碰到這種殼不用太怕認真跟蹤分析一下、一般都沒多大問題。一般加殼後的程式運行時大多是用各種方法AntiDebugger,其中夾雜很多花指令和垃圾指令、然後解碼又是一堆AntiDebugger,可能又解碼恢復IAT又是一堆AntiDebugger.....最後再跳到程式真正的OEP處。對付這種殼一般的方法是先找到OEP,再修復IAT。在殼跳到OEP的時候一般是個跨段跳轉,跳轉方法有很多例如:JMP XXXXXXXX, JMP [XXXXXXXX], JE [XXXXXXXX],PUSH XXXXXXXX RET, CALL XXXXXXXXX, CALL [XXXXXXXX], CALL EAX.....還有的是在SEH中直接指定EIP等等。找到這個跳轉位址,然後在相應位址上設上中斷點,F9運行就到達OEP處了。此時就是最好的Dump時機,修復IAT一般用ImportREC,填寫好OEP的RVA先點IATAutoSearch--->再點GetImport,如果找到的API全部有效就可點Fix Dump了,如果有無效的就需要修復,先點Show Invalid,再對這些無效的API點右鍵,共有3個修復級別:分別是Disasm,HOOK,Trap Flag。可以一個一個試,全部API有效或只有一兩個API無效時就可以點Fix Dump了,如果修復不了就只有用手工修復了。手工修復IAT的方法是:一般殼在運行的時候會恢復IAT或破壞IAT,你可以在恢復IAT後或破壞IAT之前DUMP出完好的IAT,再用16進位編輯器把完整的IAT復制到Dump出來的檔中。多做做練習就不難了還是看看目的程式"輕輕鬆鬆學開車6.6",用PEiD查一下,ASPack 2.12--->Alexey Solodovnikov用OD載入,提示入口點在代碼外部(以後別再問如何判斷程序是否加殼了,用OD載入如果有這個提示就表示程式是加了殼的)點確定、問是否分析?點否。
=======================================================================
</b>
㈡ 軟體如何脫殼
步驟1 檢測殼
殼的概念:
所謂「殼」就是專門壓縮的工具。
這里的壓縮並不是我們平時使用的RAR、ZIP這些工具的壓縮,殼的壓縮指的是針對exe、com、和dll等程序文件進行壓縮,在程序中加入一段如同保護層的代碼,使原程序文件代碼失去本來面目,從而保護程序不被非法修改和反編譯,這段如同保護層的代碼,與自然界動植物的殼在功能上有很多相似的地方,所以我們就形象地稱之為程序的殼。
殼的作用:
1.保護程序不被非法修改和反編譯。
2.對程序專門進行壓縮,以減小文件大小,方便傳播和儲存。
殼和壓縮軟體的壓縮的區別是
壓縮軟體只能夠壓縮程序
而經過殼壓縮後的exe、com和dll等程序文件可以跟正常的程序一樣運行
下面來介紹一個檢測殼的軟體
PEID v0.92
這個軟體可以檢測出 450種殼
新版中增加病毒掃描功能,是目前各類查殼工具中,性能最強的。
另外還可識別出EXE文件是用什麼語言編寫的VC++、Delphi、VB或Delphi等。
支持文件夾批量掃描
我們用PEID對easymail.exe進行掃描
找到殼的類型了
UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
說明是UPX的殼
下面進行
步驟2 脫殼
對一個加了殼的程序,去除其中無關的干擾信息和保護限制,把他的殼脫去,解除偽裝,還原軟體本來的面目。這個過程就叫做脫殼。
脫殼成功的標志
脫殼後的文件正常運行,功能沒有損耗。
還有一般脫殼後的文件長度都會大於原文件的長度。
即使同一個文件,採用不同的脫殼軟體進行脫殼,由於脫殼軟體的機理不通,脫出來的文件大小也不盡相同。
關於脫殼有手動脫殼和自動脫殼
自動脫殼就是用專門的脫殼機脫 很簡單 按幾下就 OK了
手動脫殼相對自動脫殼 需要的技術含量微高 這里不多說了
UPX是一種很老而且強大的殼 不過它的脫殼機隨處就能找到
UPX本身程序就可以通過
UPX 文件名 -d
來解壓縮 不過這些需要的 命令符中輸入
優點方便快捷 缺點DOS界面
為了讓大家省去麻煩的操作 就產生了一種叫 UPX SHELL的外殼軟體
UPX SHELL v3.09
UPX 外殼程序!
目的讓UPX的脫殼加殼傻瓜化
註:如果程序沒有加殼 那麼我們就可以省去第二步的脫殼了,直接對軟體進行分析了。
脫完後 我們進行
步驟3
運行程序
嘗試注冊
獲取注冊相關信息
通過嘗試注冊 我們發現一個關鍵的字元串
「序列號輸入錯誤」
步驟4
反匯編
反匯編一般用到的軟體 都是 W32Dasm
W32dasm對於新手 易於上手 操作簡單
W32Dasm有很多版本 這里我推薦使用 W32Dasm 無極版
我們現在反匯編WebEasyMail的程序文件easymail.exe
然後看看能不能找到剛才的字元串
步驟5
通過eXeScope這個軟體來查看未能在w32dasm中正確顯示的字元串信息
eXeScope v6.50
更改字體,更改菜單,更改對話框的排列,重寫可執行文件的資源,包括(EXE,DLL,OCX)等。是方便強大的漢化工具,可以直接修改用 VC++ 及 DELPHI 編制的程序的資源,包括菜單、對話框、字元串表等
新版可以直接查看 加殼文件的資源
我們打開eXeScope
找到如下字串符
122,"序列號輸入錯誤 "
123,"恭喜您成為W ebEasyMail正式用戶中的一員! "
124,注冊成功
125,失敗
重點是122
步驟6
再次返回 w32dasm
* Possible Reference to String Resource ID=00122: "?鰺e?"
但是雙擊後
提示說找不到這個字串符
不是沒有 是因為 "?鰺e?"是亂碼 w32dasm對於中文顯示不是太好
畢竟不是國產軟體
先把今天會用到的匯編基本指令跟大家解釋一下
mov a,b ;把b的值賦給a,使a=b
call :調用子程序 ,子程序以ret結為
ret :返回主程序
je或jz :若相等則跳轉
jne或jnz :若不相等則跳轉
push xx:xx 壓棧
pop xx:xx 出棧
棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的存儲區。裡面的變數通常是局部變數、函數參數等。
我們搜索
Possible Reference to String Resource ID=00122
因為對E文支持很好
我們來到了
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00406F17(C) //跳轉來自 406F17
|
* Possible Reference to String Resource ID=00125: "1%"
|
:004070DD 6A7D push 0000007D
:004070DF 8D4C2410 lea ecx, dword ptr [esp+10]
:004070E3 E8F75A1200 call 0052CBDF
* Possible Reference to String Resource ID=00122: "?鰺e?"
|
:004070E8 6A7A push 0000007A
:004070EA 8D4C2408 lea ecx, dword ptr [esp+08]
:004070EE E8EC5A1200 call 0052CBDF
我們來到
:00406F01 8B876C080000 mov eax, dword ptr [edi+0000086C]這里是對
:00406F07 8B4C2408 mov ecx, dword ptr [esp+08]
:00406F0B 50 push eax//這兩個eax和ecx入棧就比較讓我們懷疑了
:00406F0C 51 push ecx//產生注冊碼
:00406F0D E8AE381100 call 0051A7C0//這CALL里對注冊位應該會有設置
:00406F12 83C40C add esp, 0000000C
:00406F15 85C0 test eax, eax// 檢測注冊位
:00406F17 0F85C0010000 jne 004070DD //不存在注冊位 就會跳到4070DD就會出現那個錯誤的字串符了
我們記住406F01這個地址
接著進行下一步
步驟7
這一步我們進行的是調試
用到的軟體是ollydbg
好了我們找到了 注冊碼0012AF04 00FD4A10 ASCII ""
但是這個並不是我們的主要目的
我們還要做出屬於自己的注冊機
相信這個是很多人夢寐以求的事情
步驟8
製作注冊機
注冊機我們需要的是一個KEYMAKE的軟體
因為2.0是演示版而且停止更新了
所以我們用1.73版
做一個內存注冊機 需要下面幾個資料
中斷地址:406F0C
中斷次數:1
第一位元組:51
指令長度:1
好了 一個完美的注冊機 就產生了
還不趕快發給你的朋友 炫耀一下
保證讓他迷糊死 佩服得你要死
其實最後還有幾個步驟
就是撰寫破文
不過大家都是新手 這個步驟 就去了吧
不知不覺說了這么多廢話 希望能對大家有些作用
㈢ 脫殼可以破解軟體成為正式版么一般破解軟體要什麼工具
不一定,部分殼帶注冊功能,如果不帶,那麼脫了殼也不一定能變正式版.
工具可以到www.PEDIY.com查看.
㈣ 給軟體脫殼是什麼意思怎麼給軟體脫殼如題 謝謝了
對軟體加殼的逆操作,把軟體上存在的殼去掉。在一些計算機軟體里也有一段專門負責保護軟體不被非法修改或反編譯的程序。它們一般都是先於程序運行,拿到控制權,然後完成它們保護軟體的任務。由於這段程序和自然界的殼在功能上有很多相同的地方,基於命名的規則,大家就把這樣的程序稱為「殼」了。就像計算機病毒和自然界的病毒一樣,其實都是命名上的方法罷了。
要給軟體脫殼可以選萬能脫殼機,萬能脫殼機採用的是ap0x編寫的脫殼引擎,目前支持ASPack2.12,FsG2.x,UPX1.x-2.x的殼你可以到霏凡網站上搜一下還有很多看你需要哪一種了
㈤ 軟體怎麼脫殼
加殼的全稱應該是可執行程序資源壓縮,是保護文件的常用手段。加殼過的程序可以直接運行,但是不能查看源代碼。要經過脫殼才可以查看源代碼。
加殼是利用特殊的演算法,對EXE、DLL文件里的資源進行壓縮、加密。類似WINZIP 的效果,只不過這個壓縮之後的文件,可以獨立運行,解壓過程完全隱蔽,都在內存中完成。它們附加在原程序上通過Windows載入器載入內存後,先於原始程序執行,得到控制權,執行過程中對原始程序進行解密、還原,還原完成後再把控制權交還給原始程序,執行原來的代碼部分。加上外殼後,原始程序代碼在磁碟文件中一般是以加密後的形式存在的,只在執行時在內存中還原,這樣就可以比較有效地防止破解者對程序文件的非法修改,同時也可以防止程序被靜態反編譯。
殼的類型通常分為壓縮殼和加密殼兩類。壓縮殼的特點是減小軟體體積大小,加密保護不是重點。加密殼種類比較多,不同的殼側重點不同,一些殼單純保護程序,另一些殼提供額外的功能,如提供注冊機制、使用次數、時間限制等。
㈥ 求一個無殼軟體破解的方法:軟體脫殼以後如何破解
先去學學反匯編和匯編吧,你沒有基本,干什麼都不行。有空去www.pediy.com看看吧,那裡有講加密與解密。軟體破解的知識
㈦ 軟體「脫殼」是什麼意思
軟體脫殼,顧名思義,就是對軟體加殼的逆操作,把軟體上存在的殼去掉。在一些計算機軟體里也有一段專門負責保護軟體不被非法修改或反編譯的程序。它們一般都是先於程序運行,拿到控制權,然後完成它們保護軟體的任務。由於這段程序和自然界的殼在功能上有很多相同的地方,基於命名的規則,大家就把這樣的程序稱為"殼"了。就像計算機病毒和自然界的病毒一樣,其實都是命名上的方法罷了。
在一些計算機軟體里有一段專門負責保護軟體不被非法修改或反編譯的程序。它們一般都是先於程序運行,拿到控制權,然後完成它們保護軟體的任務。就像動植物的殼一般都是在身體外面一樣理所當然(但後來也出現了所謂的"殼中帶籽"的殼)。由於這段程序和自然界的殼在功能上有很多相同的地方,基於命名的規則,大家就把這樣的程序稱為"殼"。軟體加殼是作者寫完軟體後,為了保護自己的代碼或維護軟體產權等利益所常用到的手段。目前有很多加殼工具,既然有盾,自然就有矛,脫殼即去掉軟體所加的殼,軟體脫殼 有手動脫和自動脫殼之分。
㈧ 網上說軟體脫殼是什麼意思啊
首先我想大家應該先明白「殼」的概念。在自然界中,我想大家對殼這東西應該都不會陌生了,植物用它來保護種子,動物用它來保護身體等等。同樣,在一些計算機軟體里也有一段專門負責保護軟體不被非法修改或反編譯的程序。它們一般都是先於程序運行,拿到控制權,然後完成它們保護軟體的任務。就像動植物的殼一般都是在身體外面一樣理所當然(但後來也出現了所謂的「殼中帶籽」的殼)。由於這段程序和自然界的殼在功能上有很多相同的地方,基於命名的規則,大家就把這樣的程序稱為「殼」了。就像計算機病毒和自然界的病毒一樣,其實都是命名上的方法罷了。 最早提出「殼」這個概念的,據我所知,應該是當年推出脫殼軟體 RCOPY 3 的作者熊焰先生。在幾年前的 DOS 時代,「殼」一般都是指磁碟加密軟體的段加密程序,可能是那時侯的加密軟體還剛起步不久吧,所以大多數的加密軟體(加殼軟體)所生成的「成品」在「殼」和需要加密的程序之間總有一條比較明顯的「分界線」。有經驗的人可以在跟蹤軟體的運行以後找出這條分界線來,至於這樣有什麼用這個問題,就不用我多說了。但畢竟在當時,甚至現在這樣的人也不是很多,所以當 RCOPY3 這個可以很容易就找出「分界線」,並可以方便的去掉「殼」的軟體推出以後,立即就受到了很多人的注意。老實說,這個我當年在《電腦》雜志看到廣告,在廣州電腦城看到標著999元的軟體,在當時來說,的確是有很多全新的構思,單內存生成 EXE 可執行文件這項,就應該是世界首創了。但它的思路在程序的表現上我認為還有很多可以改進的地方(雖然後來出現了可以加強其功力的 RO97),這個想法也在後來和作者的面談中得到了證實。在這以後,同類型的軟體想雨後春筍一般冒出來,記得住名字的就有: UNKEY、MSCOPY、UNALL .... 等等,但很多的軟體都把磁碟解密當成了主攻方向,忽略了其它方面,當然這也為以後的「密界剋星」「解密機器」等軟體打下了基礎,這另外的分支就不多祥談了,相信機齡大一點的朋友都應該看過當時的廣告了。 解密(脫殼)技術的進步促進、推動了當時的加密(加殼)技術的發展。LOCK95和 BITLOK 等所謂的「殼中帶籽」加密程序紛紛出籠,真是各出奇謀,把小小的軟盤也折騰的夠辛苦的了。正在國內的加殼軟體和脫殼軟體較量得正火紅的時候,國外的「殼」類軟體早已經發展到像 LZEXE 之類的壓縮殼了。這類軟體說穿了其實就是一個標準的加殼軟體,它把 EXE 文件壓縮了以後,再在文件上加上一層在軟體被執行的時候自動把文件解壓縮的「殼」來達到壓縮 EXE 文件的目的。接著,這類軟體也越來越多, PKEXE、AINEXE、UCEXE 和後來被很多人認識的 WWPACK 都屬於這類軟體,但奇怪的是,當時我看不到一個國產的同類軟體。 過了一段時間,可能是國外淘汰了磁碟加密轉向使用軟體序列號的加密方法吧,保護 EXE 文件不被動態跟蹤和靜態反編譯就顯得非常重要了。所以專門實現這樣功能的加殼程序便誕生了。 MESS 、CRACKSTOP、HACKSTOP、TRAP、UPS 等等都是比較有名氣的本類軟體代表,當然,還有到現在還是數一數二的,由台灣同胞所寫的 FSE 。其實以我的觀點來看,這樣的軟體才能算是正宗的加殼軟體。 在以上這些加殼軟體的不斷升級較勁中,很多軟體都把比較「極端」技術用了上去,因為在這個時候 DOS 已經可以說是給眾高手們玩弄在股掌之間了,什麼保護模式、反 SICE 、逆指令等等。相對來說,在那段時間里發表的很多國外脫殼程序,根本就不能對付這么多的加殼大軍,什麼 UPC、TEU 等等都紛紛成為必防的對象,成績比較理想的就只有 CUP386 了,反觀國內,這段時間里也沒了這方面的「矛盾斗爭」。加殼軟體門揮軍直搗各處要崗重地,直到在我國遇到了 TR 這個銅牆鐵壁以後,才紛紛敗下陣來各謀對策,但這已經是一年多以後的事情了。我常想,如果 TR 能早兩年「出生」的話,成就肯定比現在大得多,甚至蓋過 SICE 也有可能。TR 發表的時候 WIN95 的流行已經成為事實,DOS 還有多少的空間,大家心裡都清楚。但話又說回來, TR 的確是個好軟體,比起當年的 RCOPY3 有過之而無不及,同時也證明了我們中國的 CRACK 實力(雖然有點過時)。這個時候,前面提到過的 FSE 憑著強勁的實力也漸漸的浮出了水面,獨領風騷。其時已經是 1997 年年底了,我也走完了學生「旅程」。工作後在CFIDO 的 CRACK 區認識了 Ding-Boy ,不久 CRACK 區關了,我從此迷上了 INTERNET,並於98年6月建起了一個專門介紹「殼」的站台: http://topage.126.com ;,放上了我所收集的所有「殼」類軟體。在這段時間里,各種「殼」類軟體也在不段的升級換代,但都沒什麼太大的進展,差不多就是 TR 和眾加殼軟體的版本數字之爭而已。 1998年8月,一個名為 UNSEC (揭秘)的脫殼軟體發表了,它號稱可以脫掉98年8月以前發表的所有殼。我測試之後,覺得並沒傳聞中的那麼厲害,特別是兼容性更是令我不想再碰它。 Ding-Boy 給這個軟體的作者提了很多建議,但寄去的 EMIAL 有如泥牛入海,可能是一怒之下吧,不久 Ding-Boy 的 BW (沖擊波)就誕生了。這個使用內存一次定位生成 EXE 文件(後來放棄了)的脫殼軟體,在我的站台公開後,得到了很多朋友們的肯定。要知道,從RCOPY 3 開始,絕大部分的脫殼軟體都是要兩次運行目標程序來確定 EXE 的重定位數據的。BW 的這一特點雖然有兼容性的問題,但也樹立了自己的風格、特色。經過幾個月的改善, BW 升級到了 2.0 版本,這個版本的推出可以說是 BW 的轉折點,因為它已經是一個成熟、穩定脫殼軟體了,它可以對付當時(現在)大多數的殼,包括當時最新的 FSE 0.6 等。更重要的是這個版本把選擇殼的和軟體「分界線」這個最令新手頭疼的步驟簡化到不能再簡化的地步,使更多的朋友接受了它。另外,能加強 BW 功力的 CI 模式也是其它脫殼軟體沒有的東西。最近,BW 發表了最新的 2.5 BETA2 版本,增強了一些方面的功能,因它竟然可以脫掉號稱最厲害的磁碟加密工具 LOCKKING 2.0 的加密殼,因而進一步奠定了它在「脫殼界」的地位。說到最新,就不能不提 GTR、LTR、EDUMP、ADUMP、UPS、UPX、APACK 這幾個國外的好軟體了,它們每個都有自己的特色,可以說都是當今各類「殼」中的最新代表了。(這些軟體和詳細介紹請到我的主頁查閱) 由於 WINDOWS 3.1 只是基於 DOS 下的一個圖形外殼,所以在這個平台下的「殼」類軟體很少,見過的就只有像 PACKWIN 等幾個有限的壓縮工具,終難成氣候。 可能是 MICROSOFT 保留了 WIN95 的很多技術上的秘密吧,所以即便是 WIN95 已經推出了 3 年多的時間,也沒見過在其上面運行的「殼」類軟體。直到 98 年的中期,這樣的軟體才遲遲的出現,而這個時候 WIN98 也發表了有一段日子了。應該是有 DOS 下的經驗吧,這類的軟體不發表由自可,一發表就一大批地的沖了出來。先是加殼類的軟體如: BJFNT、PELOCKNT 等,它們的出現,使暴露了 3 年多的 WIN95 下的 PE 格式 EXE 文件得到了很好的保護。大家都應該知道現在很多 WIN95 下的軟體都是用注冊碼的方法來區分、確定合法與非法用戶的吧,有了這類加殼軟體,這種注冊方法的安全性提高了不少,如果大家也有自己編的 WIN95 程序,就一定要多留意一下本類軟體了。接著出現的就是壓縮軟體了,因為 WIN95 下運行的 EXE 文件「體積」一般都比較大,所以它的實用價值比起 DOS 下的壓縮軟體要大很多,這類的軟體也很多,早些時候的 VBOX、PEPACK、PETITE 和最近才發表的 ASPACK、UPX 都是其中的佼佼者。在 DOS 下很流行的壓縮軟體 WWPACK 的作者也推出了對應 WIN95 版本的 WWPACK32,由於性能並不是十分的突出,所以用的人也不太多。由於壓縮軟體其實也是間接給軟體加了殼,所以用它們來處理 EXE 也是很多軟體作者喜歡做的事情,最近新發表的很多軟體里都可以看到這些加殼、加壓縮軟體的名字了。有加殼就一定會有脫殼的,在 WIN95 下當然也不例外,但由於編這類軟體比編加殼軟體要難得多,所以到目前為止,我認為就只有 PROCDUMP 這個軟體能稱為通用脫殼軟體了,它可以對付現在大多數的加殼、壓縮軟體所加的殼,的確是一個難得的精品。其它的脫殼軟體多是專門針對某某加殼軟體而編,雖然針對性強、效果好,但收集麻煩,而且這樣的脫殼軟體也不多。前些時候 TR 作者也順應潮流發表了 TR 的 WIN95 版本: TRW ,由現在的版本來看可以對付的殼還不多,有待改進。 BW 的作者 Ding-Boy 最新發表了一個 WIN95 的 EXE 加殼軟體 DBPE 。雖然它還不太成熟,但它可以為軟體加上使用日期限制這個功能是其它加殼軟體所沒有的,或者以後的加殼軟體真的會是像他說的那樣可以:加殼和壓縮並重、並施;隨意加使用日期;加上注冊碼;加軟體狗(磁碟)保護;加硬體序列號判別;加... 。
㈨ 如何對軟體脫殼
脫殼主要有兩種方法:硬脫殼和動態脫殼。
第一種,是硬脫殼,這是指找出加殼軟體的加殼演算法,寫出逆向演算法,就像壓縮和解壓縮一樣。由於現在的殼有加密、變形、虛擬環境等等特點,每次加殼生成的代碼都不一樣。硬脫殼對此無能為力,
第二種,是動態脫殼。加殼的程序運行時必須還原成原始形態,就是加殼程序運行後必須進行解壓到程序的文件頭。所以我們可以用OD跟蹤到OEP的原因。這個時候我們就可以抓取(Dump)內存中的鏡像,再重構成標準的執行文件。這樣我們就脫殼了。
(PS:現在的加密殼更復雜一
所謂加殼,是一種通過一系列數學運算,將可執行程序文件或動態鏈接庫文件的編碼進行改變(目前還有一些加殼軟體可以壓縮、加密驅動程序),以達到縮小文件體積或加密程序編碼的目的。
當被加殼的程序運行時,外殼程序先被執行,然後由這個外殼程序負責將用戶原有的程序在內存中解壓縮,並把控制權交還給脫殼後的真正程序,這就是我們找OEP的原因了。一切操作自動完成,用戶不知道也無需知道殼程序是如何運行的。一般情況下,加殼程序和未加殼程序的運行結果是一樣的。由於這段程序和自然界的殼在功能上有很多相同的地方,基於命名的規則,就把這樣的程序稱為「殼」了。