はじめに 本記事は、先日実現された「ゼルダの伝説時のオカリナ」における任意コード実行(Arbitrary Code Execution, 通称ACE)についての解説記事です。 本記事の内容はFig氏による解説動画をもとにしています。元動画と異なる点についてはご指摘いただけると幸いです。 youtu.be 任意コード実行という性質上ゲーム内部のシステムに関わる内容が含まれ、専門的な知識が必要となる場面もありますが、できるだけわかりやすく解説できればと思います。 「メモリ」と「アドレス」について 前提知識として、任意コード実行において頻出となる単語「メモリ」と「アドレス」について説明します。 メモリ 広義にはコンピュータにおいてデータを格納するためのものですが、ここではニンテンドー64内の、ゲームデータを格納する入れ物を指します。 ゲームが動作するには、ゲームソフト(ROM)の中のデータを読み