2007年10月28日
チートの技術手法
知っていましたか?チートとはこのような現象です。
この方法は、幾つかの手法が存在するが、主なものはマルチタスクOS等で、複数のプログラムを実行できる環境で行われる物が多いとされる。
コンピュータは常に、プログラム内で一定のメモリエリア(メモリ空間とも)を確保して、実行に絡んで計算した結果や入力された値を、これらメモリに格納する。イメージとしては、作業の進行に従って、幾つものメモを残している状態を想像してすると分かりやすい。
チート行為では、これら実行中のプログラムが確保中のメモリエリアに他のプログラムから干渉、その内容を書き換える事で実行される。先の比喩に則れば、作業中に作られたメモに他人が改竄を加える行為に当たる(これらの行為は、広義ではクラッキングとして扱われる事もある)。
このようして改竄されたメモリ内容を受け、プログラムが更に処理を続けた場合、プログラムの製作者が意図したのとは違う動作が行われる。更に先の比喩を続けるなら、メモに記載された商品発注の記載を書き換えられ、本来とは異なる商品を発注してしまったり、必要な量以上の商品を発注してしまったりという事態に繋がりかねない…という状態である。
このようにして、プログラムの動作を操ってしまうのが所謂チートである。
またプログラムによっては、実行結果をファイルの形でハードディスクやディスクドライブに記憶させる動作を行う物もあるが、このファイルを書き換えてしまう行為もチート行為に含まれる。通常、プログラムは様々な計算結果を、自身で利用しやすい形でファイルに出力するよう設計されているが、保存後のファイルをリバースエンジニアリング等の手法で解析、プログラムを誤動作させるべくファイルを改竄する行為も、このチート行為の範疇である。プログラム終了後の静的な状態にあるファイル(セーブデータ等)を改変する場合は、メモリのように動的に変化する物が対象では無いため、より簡単・確実に狙った動作を誘発させやすいと言える。
この他、プログラムの動作に強制的に介入して、設計された実行速度よりも速い速度で動作させるアクセラレーターや、一定の動作を自動的に繰り返させるマクロ(オフィススイート等に於けるVBAのようなマクロとは違い、ゲーム上の一定操作を自動的に繰り返させる独立したプログラム)も、単調な所定の動作を繰り返す事で経験値等が稼げるゲーム上ではチート行為の一種とされている。
引用『ウィキペディア(Wikipedia)』
- by
- at 22:27
comments