查看單個文章
舊 2004-08-02, 09:44 PM   #1
丹楓
版區管理員
 
丹楓 的頭像
榮譽勳章
UID - 20879
在線等級: 級別:48 | 在線時長:2591小時 | 升級還需:6小時級別:48 | 在線時長:2591小時 | 升級還需:6小時級別:48 | 在線時長:2591小時 | 升級還需:6小時
註冊日期: 2003-01-02
住址: 史萊姆團隊
文章: 6187
現金: 46082 金幣
資產: 50962 金幣
預設 修改 ASCII 字串例子

首先我們要下載一個《偏移量轉換器》:《偏移量轉換器》0.94B 繁體版

《偏移量轉換器》 一個由 梁利鋒 先生開發的可進行 RVA 和 File Offset 之間轉換的
工具,但是使用時必須先安裝了 DirectX.

先假設可以容陪蚹麊?ASCII 字串來說,使用編輯器尋找「詳細的」,找到了可以看見
它是在程式的 3FDF4h (下圖上方) 位址 :

http://www.slime2.com.tw/gif/ffftp.gif

1. 將原來「詳細的」,改成「詳細資料」,保持分隔「0000」,「清單」後移二個位元組.
2. 啟動偏移量轉換器輸入「清單」實偏移 3FDFC 轉換是 FCFD43 ,如下圖 :

http://www.slime2.com.tw/gif/offset.gif

3. 因為修改了「清單」後移二個位元組,所以使用編輯器向上搜尋全部 FCFD43 改成 FEFD43
( 本例子共有多處 ) 全部修改後如上圖下方顯示.

記著是程式執行正常程況是由上向下跑,找 ASCII 的偏移(指標)時候,你必須在 ASCII 字
串位扯向上搜尋.

*h=16 進位

ru5j123 補充一點東西:

當遇到有很多位置調用這個詞時,還是需要做測試的,有其它地方調用時可能需要使用原
英文字串,若是完全修改了可能會導致程式的錯誤,所以比較保險的做法,還是要一個個
測試,找到確切的位置後,用EC 的偏移量進階做法,把位置改到指向其它空白的地方,
然後在這空白的地方輸入翻譯後的中文.
當然若你在未做偏移量修改之前已經先用翻譯後的中文測試過沒問題的話,倒是可以把後
面的調用處一起修改,總之要謹慎一點.

ru5j123 是說得對~

我上面的方式完全是僅對屬於 ASCII「資源字串」而作修改實例,修改後仍然需要去對程式
執行測試,尤其是注意 ASCII 字串是 Open、 Close、List 等可以是「指令」的便需要留
意.上面的例子在0019AA0h :FCFD43 這個位址是可以僅修改此處,再依照 ru5j123 上面
所說的方式另外在其他空白的地方輸入中文「清單」,但要留意空白的地方沒有被程式執行
時所利用,然後把 0019AA0h :FCFD43 改成中文清單( List) 的位址就完成了修改,而尋找
到其餘多處的 FCFD43 (調用) 讀取英文 「List」的,就必須因後移了兩個字元全部修改.
總之中文化修改的玩意就是多做、多修改才能取得經驗,修改後也不妨多做幾次測試...

管理員 ru5j123,Eric Chen


作者:Eric Chen
丹楓 目前離線  
送花文章: 3146, 收花文章: 4654 篇, 收花: 23984 次
回覆時引用此帖