網頁

2023年1月26日 星期四

[SFC][HACK]gokujou parodius 極上瘋狂大射擊-無敵

 

這是一款沙羅曼蛇類的遊戲,也有兵蜂角色,總之,就是把K社的一堆代表都集合在一起成為一個射擊遊戲。

這個遊戲改的很險,也就是心理沒有底,不過有改出來,也算有趣,寫成這一篇。

為什麼說心裡沒有底,就是沒有破口,有時候沒有破口,要找破口很難,也是嘗試看看。

首先,先查一下這個遊戲的金手指,在網路上搜尋金手指代碼,有一個代碼,我看了馬上就有興趣:

cheat8_desc = "Invincible"

cheat8_code = "7E1E120A"

cheat8_enable = false 

意思是7E1E12這個位址改成0A,這樣就無敵,竟然有這種代碼,真是見鬼了,所以馬上手動放下去,果然真的無敵了。

接下來難就難在,怎麼在7E1E12這個位址放入0A,有程式支援金手指當然OK,但是HACK ROM,我直接要讓他開始就破掉。

找不到破口,於是就想動生命值:


在80bf32這個位址,原本的代碼是,將生命值讀出到緩衝區,緩衝區減1,然後再推回去,這邊一口氣用EA註記掉,可以得到7個空位址。

然後依序放入:

A9 0A 00 ,STA指令,把 000A推到緩衝區A

8D 12 1E,LDA指令,把緩衝區A的值,也就是000A放入1E12,注意這邊的1E12就是上面的7E1E12這個位址。

整段意思就是:當我死掉時,原本生命會減少1,我改代碼之後,當我第一次死掉時,生命值不會減少,然後取而代之會把7E1E12這個位址寫入000A,讓接下來變成無敵狀態。

但是,這樣改還不夠。

每次死掉,遊戲會清空現在所有的寶物、能量。

當然也清掉7E1E12這個位址的000A的值。

這個邏輯有幾種思考地方,一種當然是找更後面的破口植入代碼,意思就是,死掉之後,新的生命,遊戲都載入完之後再改代碼。

但是顯然不適合現在的狀況,現在的狀況就是,我改完代碼之後,遊戲重置,把原本7E1E12這個位址寫入的000A都清掉了。

所以邏輯思考,轉換成,能不能不讓遊戲去清7E1E12這個位址的值。

所以必須要在7E1E12這個位址,設斷點,看看是哪一段程式去動他。


這個地方使用我看不懂的代碼,MVN,然後他的ABX緩衝區都是資料,簡單說這段代碼,會清空一堆資料,讓遊戲RESET,所以改這段代碼有風險,可能改了,遊戲就掛了,這也就是我前面一開始說改有風險的地方。

嘗試註記掉。


註記完,基本上遊戲就破到這邊,因為改無敵之後,寶物都沒差,可以順順一直刷下去,打到最後一關的王。


沒有留言:

張貼留言