Make your own free website on Tripod.com

EXE、DLL文件的壓縮與解壓縮入門篇
(加殼與脫殼)


★★★ 歡迎自由轉載,但請註明作者及保持文章的完整性 ★★★
編寫日期: 1999.12.14
By 捷迅中文化天地(楊貫仲)

  不知道各位軟體中文化愛好者有沒有中文化過 Winamp、AcdSee 2.42(必須此版)、或者是使用過近段時間 張學思brucez 等中文化的軟體,這類軟體有一個共同的特點:
  1.軟體的體積較正常的原版軟體小了一倍不止,例如: 正常情況下著名的共享軟體 Winzip32 的主程式 Winzip32.exe 大小為 960KB,而經過處理後的大小為 393KB;正常情況下圖形處理程式 PhotoLine 6.03 的主程式 PhotoLine.exe 大小為 3049KB,而經過處理後的大小為 1209KB,只有原來大小的 39%,即使是 Winzip、WinRar 等專用壓縮程式都沒這麼厲害;
  2.雖然程式體積小了一半不止,但絲毫不影響它的執行,也就是說無需解壓就可以執行、而且執行速度有時還有顯著的提高;
  3.用專用中文化工具開啟該 EXE、OCX 或 DLL 文件,根本就找不到要處理的資源部分,或者是明明看到有選單、對話框、字符串、RCData、游標、圖示、點陣圖等資源存在,但是開啟看確是空的什麼都沒有。
  如果您在中文化軟體的時候遇到這種情況一般基本上可以判斷是該程式被壓縮處理或加密過 (VB編的系列程式除外,它有其獨特格式) ,當然壓縮也可以算加密處理的一種方法。因為可執行程式經過壓縮處理之後以上諸多優點,因此我想這應該是以後軟體發展的一個潮流,軟體中文化愛好者自然也需要掌握這種技能才能適應形勢的發展。
  因為軟體的加密與解密其實是一門比較深奧的學科,要成為一個高手必須懂編譯語系和軟體調試之類的知識,而本站的建站目的是使大多數人能夠掌握軟體的中文化方法與技巧,因此我在這裡只打算將和介紹一些通用的加密與解密 (這裡是指 EXE、OCX、DLL 文件的壓縮與解壓) 方法和工具,而無須去學什麼編譯語系和軟體調試之類的東西,您可千萬不要給我上面的這句話嚇住而不繼續看下去呵^_^,雖然說我介紹的是一些通用的方法和工具,但是其中還是有相當一些工具使用簡單但功能絕對強大。
  下面首先我介紹一些可執行程式的壓縮 (加殼、加密) 工具,其實這些工具本站在以前已經陸續的介紹過了並有下載:
  1.三個全球最出名的可執行程式壓縮工具: AspackPecompactUPX (還有一些其他非主流的壓縮工具,見相關文章介紹: WIN95 EXE壓縮軟體的較量最新 WIN95和 DOS EXE 壓縮軟體測試) ,這三個程式都能通過壓縮可執行程式的代碼、資料、相關資源使其能壓縮達到100%,由於在執行時不需要恢復磁碟上壓縮後的資料,所以與沒有壓縮的程式在執行時沒有明顯的速度差異,在某種程度上還有所改善。因為經它壓縮的可執行程式無須解壓就可直接執行,這樣一方面可以保護中文化作者的正當權益 (資源文件在正常情況下無法讀取出來) ,另外一方面也便於線上下載 (其壓速率比 Winzip 等專用工具還高許多,我想這應該是 張學思brucez 等人這樣做的原因您) 。應該說這三個程式各有千秋: Aspack 1.0804 (已自帶中文界面) 和Pecompact 0.99 執行在 Windows 下、是共享軟體,UPX 0.92 執行在 DOS 下、是自由軟體,自然使用上前兩者方便一點,但因為 UPX 0.92 性能不錯,因此我特意為它編了一個 Windows GUI 界面程式: UPX for Windows,有了這個 Windows GUI 界面之後,我個人認為 UPX 0.92 是一款綜合性能最好的可執行文件壓縮工具,它不但具有前兩者的優點,而且軟體本身體積最小(70KB)、壓縮速度更快、壓速率更高、壓縮後的程式執行安全穩定、特別是是它內置瞭解壓縮功能,而 Aspack 1.0804 和Pecompact 0.99 都只能壓縮不能解壓 (如果您中文化一個軟體將其壓縮後又想再修改,但不見了備份手邊又沒有解壓縮工具,那您的心血就...^o^ ^-^ ^o^) ,總之 UPX 0.92 優點多多,它的缺點主要是對長文件名支援不好,您真的碰到的時候用手工修改一下即可。以下是三個程式的主界面:

upx.GIF (8723 字節)

UPX for Windows 程式主界面

aspack.GIF (10447 字節)

Aspack 1.0804 程式主界面

Pecompact.GIF (9011 字節)

Pecompact 0.99 程式主界面

  以上三個可執行程式壓縮程式的使用方法大同小異,都是先找到要壓縮的程式,然後壓縮它就行了,軟體的配置也比較容易明白,如果實在不明白的讓它保持預設值就可以了,沒有什麼特別的技巧或特別難做的地方,我想各位使用起來應該沒什麼困難,因此我不想再詳細的介紹了,下面讓我們開始學習如何才能解開用這些軟體壓縮過的程式。

  對於我們這些軟體中文化愛好者來說,我想各位只想瞭解一些簡單但實用的解壓方法,我下面介紹的方法就是如此,它能夠輕鬆的幫您解決絕大多數軟體加密殼。首先,您要準備如下幾個工具,本站全部都有下載:
  1.PROCDUMP32 版本: V1.5,或中文化中文版PPROCDUMP32,這是一個最最強大的脫殼軟體,他可以解開絕大部分的加密外殼,還有腳本功能可以使用腳本輕鬆解開特定外殼的加密文件。
  2.GTW 2.51 一個很好很全面的文件格式觀察軟體 ! 下載其Windows GUI界面
  3.Filebase for eXecutable 2.10 是一個文件格式分析器,支援的 EXE 格式多而新 !
  下載這三個程式後,您就可以開始解壓了 (這三個軟體的版本越新越好) 。其中GTW 2.51Filebase for eXecutable 2.10是用於識別您要解壓縮的程式是用什麼加殼的,PROCDUMP32是用於將這個加壓殼解開的。當然,您也可以用其它軟體實現這些功能,但我根據我的使用經歷應該是這三個軟體效果較好,下面我以一個小巧的升級檔製作軟體TPM1.0為例說明我們如何才能解開它。
  1.在MS-DOS下開啟Filebase for eXecutable 2.10的主程式Fi.exe (我感覺這個軟體好過GTW 2.51) ,界面如下:

fileinf1.GIF (12253 字節)

  2.在命令行上輸入: fi.exe tpm.exe,出現如下界面:

fileinf2.GIF (19489 字節)

  3.由上圖中的綠色高亮純文字,我們可以知道它是用UPX V0.70加壓的,知道了它的加壓方式下面的過程就簡單了,但在進行下一步之前我建議您用GTW 2.51再確認一下,在MS-DOS下開啟GTW 2.51的主程式:

gtw1.GIF (12791 字節)

  在命令行上輸入: gtw tpm.exe,出現如下界面:

gtw2.GIF (13423 字節)

  4.由以上兩個可執行程式的加殼分析工具知道 TPM1.0 是被UPX 0.70加壓的,順便說一聲,前段時間出的 AcdSee32的2.42版 是用Aspack1.803加壓的,Mass Downloader V1.2.62 Beta 2 是用Aspack1.804d加壓的。下面我們開啟PROCDUMP32的主程式:

prodump1.GIF (14428 字節)

  5.單擊按鈕「解包」,彈出如下對話框:

prodump2.GIF (6141 字節)

  將選擇解包方式設為: UPX,然後單擊「確定」,選擇要解包的程式為: TPM.exe

prodump3.GIF (6739 字節)

  單擊按鈕「開啟」後將出現如下視窗:

prodump4.GIF (8107 字節)

  此時Procdump將自動開啟TPM並分析處理它的加密殼,注意此時一定要等TPM完全加載後才單擊按鈕「確定」,否則的話您又要重新來過了,單擊按鈕「確定」後將接著出現如下對話框,並且開啟的TPM將自動關閉:

prodump5.GIF (7183 字節)

  單擊按鈕「保存」,將它保存為newtpm.exe,newtpm.exe就是我們需要的文件了,現在您可以將它自由的中文化了,怎麼樣,簡單您。

暫告一段落

   其實您也可以利用Procdump內置的解包功能來直接解開TPM,而無須利用GTW 2.51Filebase for eXecutable 2.10來識別要處理的文件,不過這樣的成功率就要低很多了。方法是:
  1.在開啟Procdump之前先開啟TPM,然後再開啟Procdump,在Procdump的視窗中選中TPM的進程,如下圖示:

prodump6.GIF (15473 字節)

  單擊完全保存後就會彈出如下對框要您選擇要保存的文件名,任寫一個保存就可得到您所需要可以中文化的未加殼程式了。

prodump7.GIF (6959 字節)

  採用這種方法的成功率要低很多,我建議您用GTW 2.51Filebase for eXecutable 2.10先將要處理的程式識別出來是用什麼加殼的之後,才用Procdump選取相應的解包方式解開它。

  技巧: 有時在Procdump的任務視窗中採用以上方法解不開,您可以試著在Procdump的部件視窗中採用以上方法,說不定會有讓您以外的驚喜。

暫告一段落

  有時您用以上方法您會發現您無法將它解開或者是解開後卻還是找不到資源,這時我建議您先用GTW 2.51Filebase for eXecutable 2.10將它的加殼方式讀出來,然後到吳朝相阿倫等人的破解站點上去尋找相應的專門針對這一類壓縮殼的解殼工具而不是通用解殼工具Procdump來解開它。對於常規的加殼方式,我想GTW 2.51Filebase for eXecutable 2.10一定能夠的讀出來,並且您也能夠用以上介紹的方法或在吳朝相阿倫等人的首頁上找到相應的工具解開它。如果您採用以上介紹的方法還解不開它,您可以發Email (rapid@21cn.com) 或在我的留言板 (http://rapid.126.com) 上問我。當然,我也不保證能解開它,最好的方法您還是去問吳朝相阿倫等人您。

  以下是一些有關軟體解開加密殼的工具,因為使用效果自我感覺比不上或使用方便性上比不上以上介紹的三個工具而沒有介紹他們的用法:
    查殼工具: EXESCAN v3.21  PE-Sniffer v1.06
    解殼工具: EXE-Dumper V2.5  Memory Dumper V1.0  PEXTOR 2.0  GTR V1.0DF
         Unshell Windows版 TR0.75   衝擊波BTW 2.5  Soft-ICE
  更多的解殼工具請查看我首頁的中文化輔助工具欄或者是吳朝相阿倫等人的破解站點。

  查看相關文章:
1.WIN95 EXE壓縮軟體的較量
2.最新 WIN95和 DOS EXE 壓縮軟體測試
3.一切從「殼」開始
4.如何用Procdump1.50來進行手動脫殼1
5.如何用Procdump1.50來進行手動脫殼2
6.關於Windows 95下的可執行文件的加密研究 (我已將它打包,一篇畢業論文,洋洋 3 萬 5 千字詳細介紹了 Win 95下的可執行文件加密的各個方面的知識)

----- 完 ----



回教學