EXE、DLL文件的脫殼


偉乾 (漢化新世紀) 整理

  我們在軟體中文化時,經常會發現這種情況。用eXeScope 開啟 EXE、OCX 或 DLL 文件,開啟文件正常,可以看到具體的資源項和資源幾項,明明看到有選單、對話框、字串、RCData、游標、圖示、點陣圖等資源存在。但單擊資源幾項,想查看幾項的內容時,出現這樣的訊息視窗 (如圖1) ,無法查看資源幾項內容。

這是因為文件使用了一些壓縮加殼軟體加密過,這就需要對文件進行解壓脫殼處理後,才能中文化。這種壓縮與我們平時接觸的壓縮工具如winzip,winrar等壓縮不同,winzip壓縮後的文件不能直接執行,而這種 EXE 壓縮軟體,EXE文件壓縮後,仍可以執行。這種壓縮工具把文件壓縮後,會在文件開頭一部分,加了一段解壓代碼。執行時該文件時,該代碼先執行解壓還原文件,不過這些都是在記憶體中完成的,由於微處理器速度快,我們基本感覺不出有什麼不同。這樣的程式很多,如 The bat,Acdsee,Winxfile等等。

  這種壓縮加殼屬於軟體加密,現在越來越多的軟體經過壓縮處理,給我們中文化帶來許多不便,軟體中文化愛好者也不得不學習掌握這種技能。現在脫殼一般分手動和自動兩種,手動就是用TRW2000、TR、SOFTICE等調試工具對付,對脫殼者有一定水平要求,涉及到很多編譯語系和軟體調試方面的知識。而自動就是用專門的脫殼工具來脫,最常用某種壓縮軟體都有他人寫的反壓縮工具對應,有些壓縮工具自身能解壓,如UPX;有些不提供這功能,如: ASPACK ? v1.62 ,可對付目前各種壓縮軟體的壓縮檔。在這裡介紹的是一些通用的方法和工具,希望對大家有幫助。

偵測殼的類型:

  我們知道文件被一些壓縮加殼軟體加密,下一步我們就要分析加密軟體的名稱、版本。因為不同軟體甚至不同版本加的殼,脫殼處理的方法都不相同。這類查殼的工具很多,我這裡介紹大家使用 Filebase for eXecutable
(簡稱 Fi),它是一個文件格式分析器,除了用來查殼,還有很多功能,我們在以後中文化教學還會接觸它。由於 Fi 是使用dos命令格式,因此您必須在“我的電腦”的地址欄中操作 (如果您還沒有升級到IE4.0以上,您可能要在“開始” ? ?“執行”中進行操作) ,操作如下:
  首先我們把要分析的文件複製到 Fi的目錄,確定是在 Fi的目錄下,然後在“我的電腦”地址欄中輸入以下的命令: fi 文件名.副檔名 (例: fi acdsee.exe )

出現如下界面 (見圖 ) : 哦,原來是用Aspack1.804加密的: -)

  

  我們知道文件的加密方式,就可以使用不同的工具、不同的方法進行脫殼。下面是我們軟體中文化時常常會碰到的加殼方式及簡單的脫殼措施,供大家參考: -)

(1)Aspack: 用的最多,但只要用UNASPACK或PEDUMP32脫殼就行了
(2)ASProtect+aspack: 次之,國外的軟體多用它加殼,脫殼時需要用到SOFTICE+ICEDUMP,需要一定的專業知識,但最新版現在暫時沒有辦法。
(3)Upx: 可以用UPX本身來脫殼,但要注意版本是否一致,用-D 參數
(4)Armadill: 可以用SOFTICE+ICEDUMP脫殼,比較煩
(5)Dbpe: 國內比較好的加密軟體,新版本暫時不能脫,但可以破解
(6)NeoLite: 可以用自己來脫殼
(7)Pcguard: 可以用SOFTICE+ICEDUMP+FROGICE來脫殼
(8)Pecompat: 用SOFTICE配合PEDUMP32來脫殼,但不要專業知識
(9)Petite: 有一部分的老版本可以用PEDUMP32直接脫殼,新版本脫殼時需要用到SOFTICE+ICEDUMP,需要一定的專業知識
(10)WWpack32: 和PECOMPACT一樣其實有一部分的老版本可以用PEDUMP32直接脫殼,不過有時候資源無法修改,也就無法中文化,所以最好還是用SOFTICE配合 PEDUMP32脫殼

   

  



回教學