メインコンテンツへスキップ

マリオカートやスマブラXなどのwiiのゲームをGhidraで静的解析するための環境構築メモ

··1203 文字·3 分·
Ghidra wii
著者
Admin
目次

動機
#

色々あって必要だったので。

利用するもの
#

情報
#

時間をかけられないので校正せずに環境構築情報をdumpしておく。
日本版のマリオカートのディスクで試した。

🔗https://wiibrew.org/wiki/Using_Ghidra_with_the_Wii に書いてあるとおり、Ghidraのローダーがないとwiiのバイナリを読み込めないのでGhidra-GameCube-Loaderをビルドして導入。
ビルド&インストール方法はGhidra-GameCube-Loaderのreadmeに書いてある。

上のwiibrew.orgの記事内に記述されているwiiのpowerpc32アセンブリ拡張をGhidraに認識させるghidra-gekko-broadway-langはGhidra-GameCube-Loaderに統合されている(情報ソース ghidra-gekko-broadway-langのreadme)ので別にインストールする必要なし。

ゲームの実行ファイル、staticライブラリの場所は以下を参考にした。 🔗https://mariokartwii.com/showthread.php?tid=1193

マリオカードなどはシンボルもそれなりに割れているようだ。
流石にデバッグシンボルはshipされていないだろうから解析者が自力でつけたのと一部バイナリに残っているゴミをデマングルしたものがほとんどだと思う。
シーンを知らないのでなんとも言えないが。 🔗https://mariokartwii.com/showthread.php?tid=922

海外版と日本語版では別々にコンパイルされていると思うので、その場合関数のアドレスなどは、ずれることになるので注意が必要。

一応書いておくがGhidraを利用するにはJDKが必要なので注意。
Windowsなら 🔗https://learn.microsoft.com/en-us/java/openjdk/download🔗https://adoptium.net/ あたりが使えるかもしれない。
自分は別環境なので確かめたわけではないので注意。

まあググって自分で調べることをおすすめする。

マリカwiiではゲームのロジック関連のコードの大部分はStaticR.rel内にあるらしい。
🔗https://wiki.tockdom.com/wiki/Main.dol

.relは使われ方的にいわゆるshared libraryなのだが、StaticRとは。

main.dolはWiiScrubberで抜き出した。(dolphinのプロパティからは不可視)
いくつか同名のファイルがディスク内にあるので注意。(親切)

Related

抽象ベクトル空間の間の線形写像とその表現行列
··3039 文字·7 分
数学 線形代数 ベクトル空間 線形写像 表現行列
一般のベクトル空間の間の線形写像もスカラーから成る行列で表現することができる。
すげえよ。
同値関係、同値類、商集合、商ベクトル空間(商線形空間)とは?
··12236 文字·25 分
数学 線形代数 同値類 同値関係 商集合 ベクトル空間 商ベクトル空間 自然な射影 universal property
試練の商ベクトル空間 🕳️
同値類の演算に関して、well-defined, ill-definedとは?
··1708 文字·4 分
数学 同値類 well-defined ill-defined 二項演算 代表元
同値類の世界は誰もが代表元になれる競争のない優しい世界だ。