逆向實戰 | galgame的漢化研究(新坑)


開新坑了屬於是

主要是在看雪上面看到了這樣一個文章:https://bbs.pediy.com/thread-259962.htm
看的時候覺得很簡單,親手操作的時候人都麻了,每個游戲都不太一樣,我直接用的我手頭的資源去嘗試的。

我選擇的是Clannad,程序本身加了殼,我沒仔細研究這個的脫殼,就想着看一下能不能直接漢化。
主要的游戲目錄是這樣的:(因為我是用的別人漢化過的版本卸載漢化進行嘗試的,所以其實可能跟原版有區別)
image

主程序就是RealLive.exe,沒有別的dll,直接莽。
先把游戲跑起來,然后上CE(CEyyds):
image
一不小心按到快進了,不過沒關系,咱直接搜這個字符串就行。
這里有個大坑,CE默認不搜代碼段,但是由於存在加殼,所以管他是啥全都搜一遍,記得勾選codepage:
然后依舊搜不到,沒有關系,因為是按gbk搜的,應該要按sjis才行,所以我直接用編輯器新建了個txt然后保存編碼為sjis然后搜這個字符串的hex就可以了。
image

非綠色基址的部分就是我們要找的字符串資源文件的位置了!

驗證的方式也很簡單,就是Browse the Memory region,然后找一點別的字符串拿出來驗證一下:
比如說我們把這一整串拿出來讀一下:

image

88 EA 96 CA 81 41 94 92 82 A2 90 A2 8A 45 81 63
用hex形式寫進去然后用sjis讀取:

image

非常nice:

image

可以再找點擴展ascii的片段試一試:

image

基本上可以說我們找到了目標在內存中的位置,然后下硬件斷點進行調試就好了。

這里還是繼續用CE,找下面的句子然后查看內存訪問:

image

我猜測的關鍵點是這一句,不是也沒關系,先看一看:

image

對這個部分下斷點,然后點擊游戲窗口,捕獲斷點,直接在ecx的位置找到下一句話的地址(如上圖紅色部分)

之后就可以換其他調試器順藤摸瓜去找解密函數的部分了。

這里引用devseed師傅的一句話:“其實漢化游戲我們甚至可以不管它用了什么加密,直接hook這里然后替換為其他緩沖區。
但是這樣就沒有分析的意義了,為了練習和游戲封包兼容性,我們最好還是要去分析算法。”

所以還是要認真點去分析一下比較好。

(今天就寫這么多,有空繼續23333)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM