天天看點

土星遊戲精靈王2遊戲反向工程日志(1)

使用GHIDRA,反編譯精靈王2 ISO,得到代碼,由于世嘉土星的程式入口位址是06004000,(參考世嘉SGL文檔),搜尋字元串,及分析函數流程可知該遊戲調用SGL的API加載TH2.LOW,流程是06080bcc=>TH2.LOW=>002e20f8 ,002e20f8 為SEGA SATURN LOW WORK RAM,

至此恍然大悟,原來.LOW不是擴充名檔案類型,而是當時寫這個的程式員怕記錯加載位址,提示自己這段代碼是要加載到LWRAM中,那麼HWRAM600000與LWRAM 2000000(002e20f8 為HT2.LOW的入口位址 )差別是什麼?通過閱讀世嘉SGL文檔知道,土星bios入口位址為0x06000000,而BIOS加載相當于IPL,加載後會有BSS,TEXT,DATA,RODATA段,及堆棧分布,然後加載SGL後會将入口位址土星遊戲主程式 saturn_main() 定在06004000,這個過程由IDE及工具鍊指定,普通程式員無需關心,下一篇介紹TH2.LOW中代碼分析,也就是漢化人員對該檔案的分析,這個檔案是本遊戲核心

土星遊戲精靈王2遊戲反向工程日志(1)
土星遊戲精靈王2遊戲反向工程日志(1)
土星遊戲精靈王2遊戲反向工程日志(1)

()

土星遊戲精靈王2遊戲反向工程日志(1)

(利用ghidra中的show reference to 找到該函數調用)

繼續閱讀