|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2004-08-02, 09:39 PM | #1 |
版區管理員
|
程式指令翻譯或修改例子
在這裡要談到的是沒有被壓縮、加殼的標準檔案資源在中文化時遇上的問題.
在進行軟體中文化的時候往往遇上了經人手小心翻譯後,在執行測試過程中完 成的檔案出現「程式弁遄v失效,「弁鄋篻龠窗v內容、選單字串、圖像出 現遺失無法顯示,通常這類情況就是在中文化過程中,誤將關連到執行程式 內的「指令」、「專用名稱」翻譯或修改變更,令程式執行時無法辨認或載 入「指令」進行順序執行或必要的工作. 上面情況簡單地說就是當我們在中文化時某一個「字詞」在翻譯後做成程式 執行固障,而這個固障 bug 就是牽涉到程式的執行「指令」,在遇到了這個 問題或檔案亦非特殊的格式的時候,我們仍然可以依實際情況去將程式加以 修改來解決問題,首先我們要確定在檔案中文化時出現不容修改的「字詞」 ,在確定後先筆錄記下目標「字詞」. 首先我們要下載一個《偏移量轉換器》: 《偏移量轉換器》0.94B 繁體版 《偏移量轉換器》 一個由 梁利鋒 先生開發的可進行 RVA 和 File Offset 之間轉換的工具,使用時 必須先安裝了 DirectX. ( A ) 修改是安裝程式 Wise Inatallation System/Wise32.exe 例子 : 1. Wise32.exe 內選單項目英文「 Name」因是在執行時使用到「指令」是不容修 改變更,首先使用 Hex workshop 十六進位編輯器載入原檔搜尋「Name」在編輯 器內位址所在結果是共有二處地方 : 213B40:Name DAB361:Event Name 2. 為了方便識認,分別先修改成 Nam1、Event Nam2 回存. 3. 執行「偏移量轉換器」讀入原檔 Wise32.exe . 4. 在實偏移欄位輸入第一個「 Name」位址數值 : 213B40 5. 可以見到轉換後的數值是 : 404B61 6. 返回 16 進位編輯器程式,選取使用 16-進位輸入從上「向下」搜尋 403B61 ,例子是 有幾處「指向」名稱 213B40 : Nam1. 6. 按先後修改「指向」後執行原檔 Wise32.exe 幾次確認,原來是 88AB3 指向第一個 213B40 的 Nam1,須然顯示出名稱「 Nam1」但程式就是出現「選單弁遄v遺失了 . 7. 因此在 88AB3 位置將 403B61 改成 DAB361 「指向」借用另一個非指令「名稱 」 Nam2 ,再執行程式「選單弁遄v已經正常了. 8. 到此就是將 403B61 改成 DAB361 就是完成了選單內指向的新位置名稱「 Nam2 」. 9. 最後在十六進位編輯器內將 Nam1 和 Event Nam2 的 Nam2 分別修改成中文「名稱」 回存,當然也可以將 Event Nam2 翻譯成「事件名稱」,只要將「指向」的偏移減少 二個位元組改為 D8B361 就可以. 其實亦可以將「名稱」放到程式其他方,只要偏移量準確的指向到目的「名稱」位置, 效果都是一樣,修改後 Wise32.exe 可以正常執行也可顯示中文「名稱」了! 作者:UCEC |
送花文章: 3146,
|