ゲーム世界は、見た目のポリゴンやテクスチャの集合ではなく、メモリ上に構築された論理構造によって支えられている。しかしその“記憶領域”がわずかに乱れた瞬間、秩序は崩れ、キャラクターは消え、地形は溶け、セーブデータは意味を失う。
本稿では、「メモリ破損(Memory Corruption)」を単なるプログラムエラーではなく、「世界の崩壊」という存在論的事件として読み解く。スタックやヒープの破壊、構造体の自己矛盾、NaN座標、そしてセーブデータの死――これらの現象を通じて、デジタル世界が成立する条件とその脆さを探る。

第1章 メモリ破損とは何か ―― 破壊の技術的定義

1-1 メモリの役割と脆弱性

 ゲームは、画面に映る風景やキャラクターの動作だけで成立しているわけではない。その背後では、膨大なデータ構造がメモリ上で一時的に保持され、位置座標、状態、モデル情報、当たり判定、さらには物理演算の中間値まで、あらゆる変数がRAM内を流動している。

 メモリには大きく分けて「スタック領域」と「ヒープ領域」がある。前者は関数の一時変数などを格納する自動領域であり、後者はゲームオブジェクトや配列といった動的に生成・破棄されるデータが置かれる場所だ。

▷ スタックとヒープの比較表(一般論/C/C++/C#想定)

項目スタック領域(Stack)ヒープ領域(Heap)
管理方式自動(関数呼び出し時に確保・戻りで解放)手動または自動(malloc/free、new/deleteなど/C#はGC)
用途ローカル変数・関数の一時データ動的に生成する大規模データ(配列・構造体など)
管理主体コンパイラ/ABIとCPUのスタックポインタ(自動)プログラマまたはGC(C#など)
メリット高速で管理容易、局所性が高い大容量データを柔軟に扱える
デメリット容量制限、スコープ外では失効メモリリーク・破損リスクが高い
典型的エラースタックオーバーフローダングリングポインタ、バッファオーバーフロー

 多くのゲームエンジンはC++をベースとしており、ヒープ領域の管理はしばしば手動で行われる。そのため、ポインタ参照の誤用が起こると、プログラムが誤ったメモリアドレスを読み書きしてしまい、他のデータ領域を上書きすることになる。

 このようにして発生するのが**メモリ破損(Memory Corruption)**である【2】。特定のアドレスに本来想定されていない値が書き込まれ、

  • キャラクターの位置情報が無効値(NaNや∞)になる
  • モデルデータのポインタが別オブジェクトを参照してしまう
  • テクスチャデータが意図しない領域を読み出す

といった“世界の破壊”が生じる。

 現代的な言語でも安全機構は異なる。C#はガーベジコレクション(GC)により解放忘れを防ぎ、Rustは所有権と借用のルールによってコンパイル時に多くのメモリ安全性を保証し得る(GCは使用しない)【1】。ただし、C#でも到達可能な参照が残れば解放されず、アンマネージ資源ではリーク相当が起こり得る。

 リアルタイム処理や低レベル最適化を重視するゲーム開発では依然として脆弱性が潜む。特に古いタイトルではヒープ領域を明示的に確保・解放する設計が一般的であり、バッファオーバーフローや**解放済みメモリ参照(Use-after-free)**といった問題が発生しやすかった。

 このため、開発者は動的メモリ検査ツールを活用する。代表的な**AddressSanitizer(ASan)**は、ヒープ/スタック/グローバル領域の境界外アクセスやUse-after-free、二重解放などを検出できる。

 **Use-after-return(関数復帰後のスタック再利用)**の検出は以下のように制御できる:

  • Clang/LLVMでは -fsanitize-address-use-after-return=<mode> を指定(runtime 時は ASAN_OPTIONS=detect_stack_use_after_return=1
  • MSVCでは /fsanitize=address に加えて /fsanitize-address-use-after-return を付与し、同様に実行時に ASAN_OPTIONS=detect_stack_use_after_return=1 を設定する【3】

▷ 破損タイプ別 早見表

現象/症状典型原因再現性主な検出手段暫定回避恒久対策
NaN座標・∞値未初期化・除算誤りASan+ログ/HDRP “Stop NaNs”NaN伝播抑止計算前の入力検証
テクスチャ化けVRAM・CPUメモリ誤参照中〜高ASan/レンダーデバッガ一時キャッシュ削除バッファ境界/フォーマット整合
Use-after-free二重解放/寿命設計ミスASan(UAR有効)/Valgrind該当領域ゼロクリアスマートポインタ設計
バッファオーバーフロー境界外書き込みASan/UBSanテストデータ縮小境界検証・配列長安全
スタックオーバーフロー再帰過多例外・シグナル捕捉再帰抑制ループ変換/再設計

1-2 破損が起こる条件と再現可能性

 メモリ破損は、再現できるバグと偶発的にしか起こらないバグに大別される。

 再現可能な破損とは、プログラムロジック上の特定の操作手順を踏むことで必ず発生するタイプだ。たとえば、ゲーム内でオブジェクトを複数回削除し、同じインデックスを再利用することで参照不整合が起こるケースがある。このようなバグは、Speedrunコミュニティで解析対象となることも多い。

 代表的なのが『ゼルダの伝説 時のオカリナ』におけるアイテムメニュー書き換えバグであり、メモリアドレスの一部をプレイヤーが操作可能なUI経由で上書きすることで、ゲーム内部の論理構造を改変できることが確認されている【5】。

 一方、偶発的な破損は再現性が極めて低い。演算中に未初期化の値が介入したり、マルチスレッド環境での競合やハードウェア固有のタイミングずれが起因する場合があり、プレイヤーから見れば「突然世界が壊れた」ように見える。この種のバグは**非決定的現象(nondeterministic behavior)**であり、デバッグツール上でも原因追跡が困難である。

▷ 再現性マトリクス

原因カテゴリ決定論的準決定論的非決定論的備考
ロジックミス特定手順で常に再現
未初期化値実行順序に依存
スレッド競合タイミングずれ
アドレス依存(ASLR)検証時はASLR一時無効可【4】

 また、ゲームエンジンごとに破損の挙動は異なる。Unityのようなマネージド環境では、C#コード自体は安全でも、ネイティブプラグインやシェーダーコードが不正メモリアクセスを起こす可能性がある。逆にC++ベースのUnreal Engineや自作エンジンでは、ポインタ操作の自由度が高いぶん、メモリ破損は「不可避なリスク」として設計段階から意識される。

 したがって、開発者はメモリ保護機構(AddressSanitizerやValgrind)を併用しながら、“破壊されても安全に落ちる”仕組みを組み込むことが重要となる【3】。

 一方で**ASLR(Address Space Layout Randomization)**は本来は攻撃緩和を目的とするが、アドレス依存型の不具合では挙動が不安定になり再現性が下がることがある【4】。再現実験ではASLRを一時的に無効化してアドレスを固定する(Linuxでは setarch -R/proc/sys/kernel/randomize_va_space=0 設定を使用)手法も一般的である。※検証目的の限定的利用に留めることが推奨される。

▷ 言語・エンジン別 主なリスクと対策表

環境典型的リスク主な検出手段対策/備考
C++(自作/UE)ポインタ誤参照・解放忘れASan/ValgrindRAII・スマートポインタ徹底
C#(Unity)ネイティブプラグイン/シェーダ境界で破損Unity Memory Profiler/ASan(ネイティブ部)GC外領域の寿命管理
Rustunsafeブロック・FFI境界Clippy/Miri所有権とライフタイム管理
Lua等スクリプトC層アドレス越境デバッガ/境界チェックネイティブ呼び出し制限

▷ AddressSanitizer チートシート

コンパイラビルド時設定実行時設定備考
Clang/GCC-fsanitize=address
(必要に応じて -fsanitize-address-use-after-return=runtime
ASAN_OPTIONS=detect_stack_use_after_return=1高速・低オーバーヘッド
MSVC/fsanitize=address
/fsanitize-address-use-after-return
set ASAN_OPTIONS=detect_stack_use_after_return=1実験的実装・最新MSVCで対応
注意UAR検出はオーバーヘッド増大未初期化値はMSan対象

第2章 データ構造の崩壊としての“世界の終焉”

2-1 構造体の破壊がもたらす論理的カタストロフ

 ゲーム世界は、見た目のグラフィックではなく、データ構造の論理的整合性によって成立している。地形、キャラクター、カメラ、音声トリガー、当たり判定――これらはすべて構造体(struct)やクラスとしてメモリ上に存在し、互いに参照関係を持つ。この参照関係が破壊されると、世界は自己矛盾を起こす。

 たとえば、座標情報がNaN(Not a Number)化すると、オブジェクトは「どこにも存在しない」状態となる。多くのレンダリングエンジンではNaNや∞を含む座標は未定義動作を引き起こし、Unity HDRPでは “Stop NaNs” を有効にすると NaN/Infによるアーティファクトの伝播を抑制できる場合がある(ただし根本原因の修正が推奨される)【6】。プレイヤー視点ではキャラクターが突然消えるように見える。

 別のケースでは、ポインタが循環参照を起こし、ある地形ブロックが自分自身を“隣の空間”として参照する。その結果、プレイヤーが同じエリアを無限に歩き続ける“ループ世界”が生成される。これらは偶然ではなく、論理構造の矛盾が空間的な異常として可視化される例である。

 論理的破損の厄介な点は、クラッシュせず「動き続けてしまう」ことだ。プログラムが強制終了すれば明確なエラーとして扱えるが、内部整合性を失ったまま描画と入力処理が継続する場合、ゲームは**“壊れたまま動作する世界”**になる。プレイヤーがその異常空間を探索できてしまうことこそ、メモリ破損の“芸術的恐怖”を生み出す原因でもある。

▷ 論理破損の典型症例表

症例技術的原因画面上の症状再現性検出・回避手段
NaN座標計算途中で除算0/未初期化変数モデルが消える/位置(∞)化Stop NaNs、入力検証
自己参照ポインタ構造体内アドレスの循環参照無限ループ空間/歩行停止参照カウント検証/デバッグ可視化
Null参照破損破棄後アクセスモデル一部欠落/未描画スマートポインタ/参照数管理
論理リンク断絶隣接配列・辞書の破損オブジェクト不連続/衝突不能低〜中検証スクリプト・範囲整合

2-2 テクスチャの異常と「視覚的崩壊」

 メモリ破損は見た目の崩壊としても現れる。特にVRAMとメインメモリのデータ整合性が失われると、テクスチャやポリゴンが異常な色や形に変形する。これを俗に「血の海バグ」や「溶ける地形」などと呼ぶ。

 この現象は、描画用バッファが意図しないアドレスを参照することにより、本来別用途のデータ(たとえばキャラクターの行動テーブルや文字列バッファ)を“テクスチャ情報”として誤読することで発生する。つまり画面に映るノイズは、プログラムの内部構造そのものが可視化された姿ともいえる。ポインタ誤参照やバッファ越境で“別用途データをテクスチャとして読む”症例は、開発現場でも定番の診断所見として報告されている【2】。

 開発者にとっては深刻なエラーだが、観察者から見れば“崩壊した現実”のような印象を与える。人間の視覚は、秩序だったパターンに対して安心感を持ち、逆に秩序の崩れたパターンに対して不安や恐怖を感じるように進化している。そのため、歪んだテクスチャや点滅するポリゴンは、単なる画面異常ではなく「存在の崩壊」として知覚される。メモリ破損がホラー的魅力を持つのは、まさにこの認知的不協和が視覚的体験と結びつくためである【7】。

▷ 視覚破損タイプ別整理

異常種別原因視覚的結果再現性心理的効果
VRAMアドレス誤参照ポインタ/バッファ越境模様が崩壊、血の海状ノイズ不安・恐怖感喚起
カラーチャンネル混在ピクセルフォーマット誤解釈赤緑反転・人物歪曲異界的・幻覚的印象
頂点配列破損モデルデータ越境ポリゴンが伸びる・空間歪曲非現実性の増幅
シェーダー定数破損計算途中値の誤代入発光・ちらつき不気味の谷効果
フレームバッファ衝突同時アクセス・レース点滅/断続的崩壊低〜中崩壊のリズム的知覚

2-3 セーブデータ破損:永続性の喪失

 ゲームにおける「世界」はプレイごとに再生成されるが、その継続性を保証するのがセーブデータ(永続データ)である。セーブデータが破損するということは、プレイヤーの経験の記録――すなわち“時間の履歴”――が失われることを意味する。

 技術的には、セーブデータはバイナリシリアライズされた構造体としてディスクやメモリに書き出される。もし書き込み途中に電源が落ちたり、バッファ境界を越えてデータが壊れたりすると、次回ロード時に逆シリアライズが失敗し、「ファイルが破損しています」という警告が表示される。しかし中には、破損していても一部が読み込まれるケースがあり、キャラクター名やマップ情報だけが混在する“異形の世界”が生成されることがある。

 プレイヤーはそれを「怖い」「世界が歪んだ」と表現するが、実際には情報の参照構造が断裂した結果にすぎない。とはいえ、永続性の崩壊はプレイヤー体験として極めて象徴的であり、メモリ破損の中でも最も“死”に近い現象といえる。

▷ 永続データ破損パターン表

パターン主原因結果検出難易度備考
書き込み途中の停止電源断/I/O中断ファイル読込失敗物理要因・セーブタイミング設計重要
境界越え書き込みバッファ誤処理ヘッダ破損・異形データ混入構造体アラインメント確認必須
部分読み込み成功CRC未検証/部分一致世界構造崩壊・“幽霊セーブ”検証・リカバリルーチン必要
冗長データ残存不完全上書き複数状態混在ファイルクリーン書き込み対策

第3章 バグが映す「世界の論理」 ―― ゲーム設計の境界線

3-1 “世界”の存在条件

 あらゆるゲーム世界は、**ルール(論理)とデータ(物質)**の二層構造によって支えられている。たとえばRPGであれば、「敵のHPが0になると倒れる」というルールが論理層であり、そのルールを運用するための数値や位置情報がデータ層である。両者が正しく対応している限り、ゲーム世界は“存在”し続ける。

 しかし、メモリ破損はこの対応関係を崩壊させる。たとえば、論理層が「HPを減らす」と指示しても、データ層がそのHP変数を保持していない場合、ゲームは存在を参照できない存在を操作することになる。これは哲学的な意味での「存在の欠落」――つまり、“世界が指し示すものがなくなる”状態だ。

 このとき、ゲームエンジンは往々にして例外を出さず、単に不定値を演算に利用して処理を続行してしまう。プレイヤーの視点では、**“論理が動き続けるのに世界が追随しない”**という奇妙な乖離が生じる。この不整合こそが、メモリ破損が引き起こす「世界崩壊」の本質である。

▷ 世界成立の二層構造(概念図)

内容主な機能崩壊時の症状
論理層(Logic Layer)ゲームルール・因果律条件分岐、勝敗判定、イベント進行動作はするが意味がない(ルールが空回り)
データ層(Data Layer)座標・HP・状態などの実体情報可視化、位置、数値保持変数が破損し、存在が消滅する
表層(Presentation Layer)画面描画・サウンド視覚・聴覚表現表示が崩壊し、論理との整合が失われる

3-2 バグを用いた創作・解析事例

 メモリ破損は、しばしば創造的な手段として再解釈されてきた。有名な例として、『ゼルダの伝説 時のオカリナ』や『ポケットモンスター 赤・緑』などの古典作品では、プレイヤーが意図的にメモリアドレスを干渉し、通常では到達できない挙動を引き出す“任意コード実行(ACE: Arbitrary Code Execution)”が発見された【5】。

 たとえば、『ゼルダの伝説 時のオカリナ』のACEでは、インベントリ画面の入力順序を操作してRAM上の特定バイト列を書き換えることで、ゲームコードの一部を置き換え、新しい挙動を挿入することが可能になる。この過程で、ゲーム世界は本来のルールを超えて再構成され、プレイヤーはまるで“神の視点”から世界を編集しているかのような体験を得る。

 このような技法はSpeedrunコミュニティにおいて「Any% ACE」などのカテゴリとして研究され、破損の条件・影響・再現手順が細かく文書化されている。SRM/GIMやACEに関する手順はZeldaSpeedRunsやTASVideosに詳細な一次資料が整理されている【5】。バグは単なる事故ではなく、世界の構造を露わにする研究対象へと変化しているのだ。

 さらに一部のインディーゲームでは、あえてバグのような演出を導入し、現実と虚構の境界を曖昧にする試みも見られる。たとえば画面ノイズやデータ破損風の演出を“物語的手法”として利用し、プレイヤーに「世界が壊れていく感覚」を体験させる作品群が登場している。これらは実際のメモリ破損を伴わず、心理的な再現としての崩壊を演出している点が興味深い。

▷ バグ創作・解析の主な領域

分野内容代表例目的・成果
Speedrun解析メモリ操作による最速攻略『ゼルダの伝説 時のオカリナ』『ポケットモンスター 赤・緑』ACE再現・構造解析
学術的研究プログラム構造と現象論的崩壊の関係ゲーム学・情報哲学領域バグを“世界構築論”として分析
インディー表現意図的な崩壊演出“バグ風演出”作品群メタ構造・現実との境界演出
デジタルアートグリッチアート・データモッシュRosa Menkman『The Glitch Moment(um)』破損を美的現象として再利用

3-3 プレイヤーが体験する“終焉の物語”

 プレイヤーがバグに遭遇するとき、それは単なる異常事態ではなく、“観測者としての自己”が揺らぐ瞬間でもある。突然キャラクターが消失し、音楽が止まり、地形が歪む。画面の中の世界が壊れるとき、人は自分の存在を保証していた規則が崩れるのを感じ取る。

 心理学的には、この現象は「認知的不協和(Cognitive Dissonance)」の一種である【8】。人は一貫性のある世界を前提に行動するため、法則が崩れた瞬間に強い違和感と恐怖を覚える。したがって、バグによる崩壊は単なる視覚的異常ではなく、プレイヤーの世界観そのものを揺さぶる体験として作用する。

 メモリ破損の映像がSNSやYouTube上で人気を博すのは、その“論理の崩壊を覗き見る快感”に由来する。プレイヤーは、自らが信じていたゲーム世界の秩序が溶けていく様を、観測者として安全な距離から体験することで、現実の不安を投影し、ある種の美学を見出しているのである。これは**グリッチ美学(Glitch Aesthetics)**と呼ばれ、デジタルアートや映像文化の分野でも研究されている【9】。

▷ プレイヤー体験の心理的構造

局面認知状態体験の特徴対応する心理理論
崩壊の瞬間驚愕・不安世界の整合性喪失認知的不協和(Festinger, 1957)
探索の段階好奇心・観察“壊れた世界”を調べたくなる認知的不一致と再統合欲求
安全距離の確立メタ的理解“現実ではない”という自覚知覚的防衛・距離化
美学化興奮・快感崩壊のパターンを“美”として再解釈グリッチ美学(Menkman, 2011)

第4章 技術と感情の接点 ―― “崩壊”を理解するための視座

4-1 開発者視点:デバッグと防御策

 メモリ破損は、ゲーム開発者にとって最も検出が難しいバグの一つである。なぜなら、破損が発生した時点と、挙動が異常化する時点が一致しないからだ。破損はしばしば数フレーム前、あるいは別スレッドで発生しており、その痕跡は実行時にはすでに失われている。

 このため、開発環境では動的メモリ検査ツールが活用される。代表的なものとして、Valgrindや**AddressSanitizer(ASan)**はメモリアクセスの境界を監視し、不正読み書きが行われた瞬間を特定できる【3】。また、ASLR(Address Space Layout Randomization)は本来、攻撃緩和を目的とするが、メモリ破損が特定アドレスに依存する場合、再現性を下げる副次効果を持つ【4】。再現実験ではASLRを一時的に無効化して検証することも多い(例:Linuxでは setarch -R/proc/sys/kernel/randomize_va_space=0 設定)。※ただし本番環境での無効化は推奨されない。

 一方で、破損が「再現できない」場合、開発者は安全な検証環境を構築してシミュレーションを行う。仮想メモリ上で意図的にオーバーフローを起こし、どのような条件で構造が崩れるかを再現的に観察する。このような検証的知見の蓄積は、E-E-A-T的観点でいえば「Empirical Observation(経験的観察)」にあたる要素であり、単なる理論ではなく、再現可能な崩壊として理解される。

▷ メモリ破損検出・防御策の比較表

手法主な特徴長所短所適用場面
AddressSanitizer (ASan)高速・コンパイル時挿入型実行オーバーヘッドが低い/検出精度高一部未初期化アクセスは対象外実行速度を重視する大規模タイトル
MemorySanitizer (MSan)未初期化メモリアクセス検出ASan非対応領域の補完オーバーヘッド大/実機検証難解析向け・限定的検証環境
Valgrind Memcheckバイナリ監視型/汎用設定不要・詳細レポート実行速度が大幅低下開発初期・限定再現検証
Application VerifierWindows向けPageHeap監視GUI簡便・低侵入カバレッジ限定C++アプリ初期テスト
Static Analyzerソース解析・静的検証実行不要/安全指針可視化実行時エラーは捕捉不可コードレビュー・教育用

4-2 文化的側面:崩壊への魅惑

 技術的に見れば、メモリ破損は“排除すべきエラー”である。しかし文化的には、そこに独特の美学が存在する。

 SNSや映像投稿サイトでは、「壊れた世界」や「グリッチアート」と呼ばれる映像が多数共有されている。これらは、意図せず破損したゲーム映像や、あえてメモリ破損風のフィルタを適用したデジタルアート作品である。視覚的ノイズ、反転する地形、途切れる音声――それらは不完全であるがゆえに、完全な世界よりも真実味を帯びる。

 この現象は、心理的には「不気味の谷(Uncanny Valley)」や「認知的不協和」の延長にある。人間は完全に整った世界よりも、わずかな歪みや乱れを“現実的”と感じる傾向がある。ゆえに、メモリ破損による異常は、現実の“綻び”を想起させ、人工世界が持つ限界を意識させる芸術的契機となる【9】。

 ゲームバグは、技術と感情、論理と混沌の交点にある。破損は世界を壊すが、その崩壊の中にこそ、デジタル世界の「生」を感じる瞬間があるのだ。

▷ 技術的エラーと文化的再解釈の対比表

視点技術的定義意味づけ目的感情的効果
開発者データ不整合・未定義動作修正すべき欠陥安定動作・品質保証不安/緊張
プレイヤー世界の異常・論理の崩壊現象としての驚異探索・恐怖体験異常への魅惑
研究者構造的破壊のメタファ世界構築の臨界研究存在論的分析異化・思索
アーティスト意図的な破損演出美的素材・表現手段グリッチアート・批評美学的快楽

4-3 「崩壊」を設計するという思想

 現代の一部のゲームデザインは、もはや“完全性”を理想としない。開発者が意図的に不整合を残し、バグ的瞬間を「演出」として織り込むケースが増えている。たとえば、あえて破損風のエフェクトを表示するホラーゲームや、セーブデータを“壊れたかのように見せる”メタ演出は、プレイヤーの心理的介入を強める手法として機能している。

 このアプローチは、「崩壊を設計する」という逆説的思想に基づく。バグを完全排除することよりも、「壊れ方を制御する」ことを目指す。実際、AIアートや生成的アルゴリズムにおいても、“ノイズ”や“異常値”は創造の源泉として利用されている。

 メモリ破損を恐怖の象徴ではなく、創造の契機として読み替えるとき、デジタル世界は単なるプログラム空間を超え、人間の想像力と倫理を試す実験場へと変化するのである。

▷ 崩壊の制御デザイン:3つの方針

方針技術的実装哲学的意義代表的応用例
① 許容される異常セーフクラッシュ/自己修復「不完全な秩序」サンドボックス/デバッグ可視化
② 意図的な崩壊演出ノイズ・歪曲フィルタ/フェイク破損「死の演出」「虚構の破れ」ホラー・メタ叙事
③ 崩壊の再利用バグ・ノイズを創作素材に転用「混沌の創造性」グリッチアート・生成系AI

結論 ―― 世界が壊れるということ

 メモリ破損は単なるプログラムエラーではなく、データ世界の存在条件を照らし出す現象である。データ構造の破壊は、秩序の消滅、論理の不在、そして記憶の断裂として現れる。それは、プレイヤーが無意識に信じていた“世界の法則”が壊れていく過程の可視化でもある。

 この崩壊を通して私たちは理解する――デジタル世界の存在とは、常にメモリ上の仮初の秩序にすぎない。その秩序が一瞬でも乱れれば、世界は即座に“無”へと帰す。

 したがって、バグを排除することだけが目的ではなく、崩壊の仕組みを観察し、再現し、理解することが、より堅牢で創造的な世界設計への第一歩となる。


参考文献

【1】 The Rust Programming Language, “Understanding Ownership (Ch.4)”, Mozilla Foundation/Microsoft Docs “Automatic Memory Management in .NET”.
【2】 Microsoft Docs: Application Verifier/Wikipedia: “Memory Corruption.”
【3】 LLVM Project, “AddressSanitizer (ASan)”/Valgrind Memcheck Documentation(Clangでは -fsanitize-address-use-after-return/MSVCでは ASAN_OPTIONS=detect_stack_use_after_return=1 で有効化)。
【4】 Wikipedia: “Address Space Layout Randomization.”/Linux kernel docs: randomize_va_space/setarch -R 解説.
【5】 ZeldaSpeedRuns: “SRM Overview”/“Get Item Manipulation”/TASVideos: “ゼルダの伝説 時のオカリナ 任意コード実行(ACE)”.
【6】 Unity Technologies: HDRP Documentation “Stop NaNs”/“Propagating NaNs and Infs.”(NaN/Infによるアーティファクト伝播を抑制できる場合がある)。
【7】 Rosa Menkman, The Glitch Moment(um), Institute of Network Cultures, 2011.
【8】 Festinger, L. A Theory of Cognitive Dissonance. Stanford University Press, 1957.
【9】 Menkman, R. Glitch Studies Manifesto (2010)/同上 (2011).

免責事項

本記事は一般的な情報提供を目的としたものであり、記載された数値・事例・効果等は一部想定例を含みます。内容の正確性・完全性を保証するものではありません。詳細は利用規約をご確認ください。