史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   軟體中文化討論區 (http://forum.slime.com.tw/f52.html)
-   -   好用的脫殼檔案資源修正工具-FixRes. (http://forum.slime.com.tw/thread144857.html)

peaceworld 2005-03-17 09:07 AM

好用的脫殼檔案資源修正工具-FixRes.
 
程式作者: dREAMtHEATER 先生/小姐,以下是他/她在"看雪學院"發表的完整說明文章.在此表示感謝之意.
=====================================================
重要提示:本作品完全由本人獨立創作,未參考任何第三方源碼。
我增加了幾個接口函數,使用之前請認真閱讀我的說明,防止誤操作!

請下載

版本更新說明:
我重寫了大部分代碼,並進行了大量測試,被測試的加殼程序:UPX v0.72, v1.25, FSG v2.0,
Aspack v2.12,其中UPX 0.72 對資源的處理比較變態,不過引擎針對此情況做了正確的分析,
目前完全可以正確地修復、重建 PE 資源,修復後 PE 文件資源可以被eXeScope、ResHacker、
PE Explorer 查看、編輯,非常好用了。

為了證明我的程序我更具有優越性,我測試了幾個 fly 給我的俄國老寫的類似程序,包括
pResFix v.0.2 by hapatsa,
ResFixer v 1.0 beta 1 by seeQ,
Resource Rebuilder v1.0 by Dr.Golova
他們只是簡單地將重建後的 resource section 保存成數據文件,如果你想生成真正能運行的
修復資源後的PE文件可能你自己還要做很多輔助工作,對PE格式、資源結構不熟悉的朋友我估
計很困難恢復到可用狀態,而我的程序把所有這一切均簡單化、自動化,生成真正的資源修復
後的可執行PE文件。

簡介:
很多被加殼的 PE 文件在脫殼以後,往往該 PE 文件的資源部分無法用某些資源查看器進行
查看、修改。這其中的主要原因是由於很多加殼程序將部分資源(如 Icon、Version
Information) 從資源節 (resource section) 移到了殼增加的節裡,這導致很多資源查看器不能
正確識別分佈在兩個節裡的資源(順便說一下,PE Explorer 基本能識別大部分這種情況的資
源),DT_FixRes 是一個 PE 文件資源修復、重建引擎,它可以將分佈在多個節裡的資源重新移
到一個資源節裡,保證大部分資源查看器能夠對脫殼後的 PE 文件資源進行查看、修改。使用者
可以通過編程方式在自己的程序中使用該引擎。該引擎特別適合進行軟件漢化工作的朋友。

聲明:
1.您可以免費使用該引擎,如果您發佈了使用該引擎的程序,請在相關說明中註明該引擎的版
權信息,以表示支持作者的辛勤勞動;
2.該引擎不能保證所有的 PE 文件經過修復能正常運行以及資源能夠被查看、編輯,作者不承
擔任何相關責任。

使用說明:
本引擎以動態鏈接庫(dll)形式實現,該 dll 輸出三個函數,其中輸出函數
FixResFromFile 你可以用任何適用 Win32 平台的編程語言去調用,下面僅給出 C/Delphi 語言
的函數原型:

C 形式函數原型:
BOOL __stdcall FixResFromFile(const char* AFileName, char* ErrBuff);

參數說明:
AFileName --- 指向你需要進行資源修正的 PE 文件路徑指針;
ErrBuff --- 指向一塊至少具有 80 個字節空間的 Buffer 指針,在執行該函數返回錯誤時,接
收錯誤消息。

特別提示:該函數適用任何 Win32 平台的編程語言去調用。


Delphi 形式函數原型(共三個函數):
<1> function FixResFromFile(const AFileName: PChar; ErrMsg: PChar): Boolean; stdcall;

參數說明:
同 C 形式函數原型參數說明。

<2> function FixResFromFileEx(const AFileName: string; var ErrMsg: string): Boolean;

參數說明:
其中 AFileName, ErrMsg 為 string 類型,使用之前無需再分配80 個字節空間的 Buffer,操作
更方便。其他說明同 <1> 。

<3> function FixResFromStream(var AStream: TMemoryStream; var ErrMsg: string): Boolean;

參數說明:
AStream 為 PE 映像的內存流,其他說明同 <1> 。

特別提示:引擎只在正確 PE 格式的基礎上修復、重建 PE 資源,因此應用以上函數之前請保證被
操作文件或者內存流均具有正確的 PE 格式,否則可能造成不可預期的錯誤。

調用範例(Delphi 語言):
procedure FixResDemo;
type
TFixPERes = function(const AFileName: PChar; ErrBuff: PChar): Boolean; stdcall;
var
ErrBuff: array[1..80] of Char;
Handle: THandle;
FixPERes: TFixPERes;
begin
Handle := LoadLibrary('DT_FixRes.dll');
if Handle <> 0 then
begin
@FixPERes := GetProcAddress(Handle, 'FixResFromFile');
if @FixPERes <> nil then
if not FixPERes(PChar('ur PE file'), @ErrBuff) then
ShowMessage(ErrBuff);
FreeLibrary(Handle);
end;
end;


其他:
我寫了一個測試該引擎的 Demo,請與該引擎 dll 放在同一文件目錄下測試,發現 bug 請發信通
知我。

dREAMtHEATER
2005-03-16

E-mail:NoteXPad@163.com
http://dREAMtHEATER.yeah.net
====================================================

程式圖片:

http://tinypic.com/28sebk

需要的朋友請按我下載

:) :) :)

Eric Chen 2005-03-17 05:11 PM

謝謝分享~
做中文化的朋友又多了一個有用的工具來使用囉.

:ddrf567h::ddrf567h:

psys 2005-03-17 11:50 PM

謝謝 中文化 的先輩^^

Heaven 2005-03-18 01:30 AM

謝謝大大的中文化.

Dreamcast 2005-03-18 05:00 PM

感謝前輩分享!!

peaceworld 2005-03-20 08:41 PM

更新版本,請頂樓下載,使用簡單弟就不中文化了.

更新時間:3月20日 重新了三遍源碼,這個版本還原的資源非常完美,正如說
明中寫的:對資源進行了完全優化,修復後的資源不含有任何垃圾數據,如同資源編譯器的
編譯效果,可以媲美未加殼前的原始資源。另外增加了重要接口,功能更強大,使用前一
定看說明.

程式圖片:

http://tinypic.com/2a44z8

mach12 2005-03-22 10:46 AM

thanks for sharing

peaceworld 2005-04-27 07:46 PM

最終正式版請餘作者首頁下載.

請按我前往

:)

達人奇兵 2007-11-10 10:45 AM

謝謝樓主發佈這麼好用的中文化工具

希望我的中文化技術能更上一層樓:on_79:

偶是初學中文化的菜鳥:on_44:

日後還望請各位前輩不吝指導:on_55:

munich 2008-08-30 10:49 AM

剛剛開始學習軟體中文化;趕緊加緊學習!

coolk0415 2011-05-30 12:38 AM

非常感謝偉大的您,我以解決問題了


所有時間均為台北時間。現在的時間是 08:29 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1