任意コード実行単語

ニンイコードジッコウ
1.3千文字の記事
  • 13
  • 0pt
掲示板へ

任意コード実行とは、以下のものをす。

  1. セキュリティ上の欠陥(脆弱性)を利用して任意のコード(プログラム)を実行すること。
  2. 1より転じて、TAS(Tool-Assisted Speedrun, Superplay)において任意のコードを実行すること。TASVideos内ではACE(Arbitrary Code Execution)と呼ばれている。

本稿では2について記述する。

概要

ゲーム中のバグプログラムミスを利用し任意のコードを実行させることで、エンディングを呼び出したりゲームを作ったりexit_nicovideoできる。

事前メモリ内容を調整することでエンディングを呼び出すためのコードを準備し、バグによってコードを発動。めでたくエンディングを迎えるというのがエンディング呼び出しTASの基本的な流れである。
エンディング呼び出しコードを「ボタンを元にメモリに書き込み、それを実行する」という内容のコードに変えれば、メモリ全体を一杯使うことでまったく別のゲームを構築してしまうことも可となる。
人間によるプレイだったり、事前メモリ調整が足りなかったりするとクラッシュ(フリーズ)するだけで終わってしまう。ただのフリーズバグのように見えたfastest crash実は任意コード実行への入り口だった、という例も少なくない。マリオ3におけるkentora12氏の功績は大きい。

任意コード実行のトリガー

任意コード実行のトリガーとなるバグの例をいくつか挙げる。

人力での任意コード実行が可バグとしては、ポケモン赤緑バグアイテム「5かい」を使った通称「5かいバグ」がごく一部で有名である。

任意コード実行ではない

任意コード実行のように見えるがそうではない例をいくつか挙げる。

任意コード実行とそうでないものを見分けるのは難しく、TAS製作者による解説がないと不明なことが多い。
エンディングに直行しているから任意コード実行だ」などと決めつけてはいけない。

関連動画

最速でエンディングを呼び出すTAS

元のゲーム全に乗っ取るTAS

RTAで任意コード実行

関連商品

関連コミュニティ

関連項目

【スポンサーリンク】

  • 13
  • 0pt
記事編集 編集履歴を閲覧

この記事の掲示板に最近描かれたお絵カキコ

お絵カキコがありません

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

任意コード実行

117 ななしのよっしん
2020/10/10(土) 13:08:13 ID: QJyQI7mDNk
Wiiトワイライトハックとか3DS時オカハック的なものかな
👍
高評価
0
👎
低評価
0
118 ななしのよっしん
2020/12/11(金) 23:32:29 ID: Y/hBbulsF+
極めるとデータスイカ割りする変態になるという。
>>sm37925954exit_nicovideo
👍
高評価
0
👎
低評価
0
119 ななしのよっしん
2021/06/09(水) 18:37:23 ID: +EHilHLujB
DQ4』で8回逃げると必ず“会心の一撃”になる理由が明らかに。当時のプログラマーYoutubeで明かす 
https://www.famitsu.com/news/202105/18220895.htmlexit
👍
高評価
0
👎
低評価
0
120 ななしのよっしん
2022/03/15(火) 16:47:52 ID: p3gQ8C5L+z
任意コード実行】 ポケモン赤緑バイナリディタを起動させてみた
>>sm40171004exit_nicovideo
👍
高評価
0
👎
低評価
0
121 ななしのよっしん
2023/01/13(金) 12:45:50 ID: 5AM8uBC8zw
DSポケモンDPを使った簡易RAMエディター構築手法が確立されてて

SwitchってCFW入れるのにACE使ってたっけな
👍
高評価
0
👎
低評価
0
122 ななしのよっしん
2023/02/11(土) 18:21:35 ID: K6wxNdi1At
ハッカーが作成したコードを実行させる
ノイマンコンピュータの弱点。
プロセッサはレジスタが保持する実行位置をもってRAM上の命読み込んで実行するので、ハッカーコードのある位置にこれを変更する必要がある
元々コードのある領域を竄して本来のコード中のジャンプアドレスでそこまで飛ばすか、任意の位置にハッカーコードを配置してなんとかしてその位置にジャンプさせる必要がある
前者はCPURAMを直接読んでるようなハードウェアだと難しい
後者RAMに展開できるので較的簡単で、リターンアドレススタックコールバック関数アドレスがある領域を弄る。
プログラム言語ポケモン赤」はこっち

・本来のコードの任意の場所を実行させる(広義の任意コード実行
ハーバードアーキテクチャでも起きる。
実行位置を任意の値にできるならこれも起こせるが、その場合はハッカーコードも呼び出せるので狭義の方と言った方がいい。
大抵は敵やらアイテムやらのIDに関連付けられた処理を呼び出すような仕組みのゲー
(省略しています。全て読むにはこのリンクをクリック!)
👍
高評価
3
👎
低評価
0
123 ななしのよっしん
2023/02/14(火) 19:11:46 ID: K3tMkzODw0
要するにチートだろ
👍
高評価
1
👎
低評価
10
124 ななしのよっしん
2023/02/14(火) 19:16:10 ID: p3h88rxhW+
何一つ要せていない…
👍
高評価
12
👎
低評価
0
125 ななしのよっしん
2023/02/14(火) 19:17:16 ID: cPgPgQc0kW
外部機器を使ってプログラム改造するチートは違法、プログラム自体には手を加えない任意コード実行は合法
というイメージだけど合ってる?
👍
高評価
2
👎
低評価
1
126 ななしのよっしん
2024/02/29(木) 22:17:00 ID: K6wxNdi1At
ゲームをぶっ壊す上ではどこまでが「正当」な操作なのかは曖昧ではある
例えばリアルセキュリティを考える上では「サーバーに刺さっているメモリ特定データを書き込んだものに差し替える」のも「LANケーブルを途中で切って間に通信を読み取るデバイスをつなぐ」のも可であれば脆弱性をついたクラキングとして適切

ただ、ホットプレートRTAが何故わざわざ「なんでもあり」と注釈を入れているのか考えてみてほしいところだ
👍
高評価
0
👎
低評価
0