◆めっつぉ:スクエニ&ガジェットニュース

「ファイナルファンタジー6」に任意のコードを実行できる脆弱性が発見される

FF6パッケージ
1994年に発売されたスーパーファミコン用ソフト「ファイナルファンタジー6」に任意のプログラムコードを実行できる脆弱性が発見されました!わりと有名なバグ技の「アイテム装備」を応用したもので、なんと、キャラクター名入力欄に入力したプログラムが実行できてしまうのです!キャラクター名は最大6文字なのでプログラムといっても6文字だけなのですが、複数キャラの入力欄へジャンプさせてそこそこ長いコードを書けたりもするそうです。(スラッジドットジャパン)

FF6には、本来キャラクターが装備できないアイテムを武器として装備できてしまうバグがあるのだが、この際に特定のアイテムを装備させて戦闘中に攻撃すると、メモリ内の$000Fおよび$0010部分に格納されているデータをアドレスとして参照し、対応するデータをコードとして実行してしまうという。$000Fは「戦闘開始からの経過時間をカウントするカウンターの2バイト目」で、$0010は戦闘中いくつかに変化する値が格納されているとのことだが、これだけでは任意のコードを実行できない。しかし、$000Fが0xC7、$0010が0xCEという値になっていた場合、「シャドウ」というキャラクターの名前データが格納されているメモリ領域のコードが実行されてしまうという。シャドウの名前はプレイヤーが自由に設定できるため、ここに実行したいコードを用意することで任意のコードを実行できる仕組みだ。

モバイルバージョンを終了