Cheat Engine

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Cheat Engine
作者 エリック・"ダークバイト"・ハイネン
開発元 オープンソース
最新版
7.5
リポジトリ https://github.com/cheat-engine/cheat-engine
プログラミング
言語
Lazarus, C(カーネルモジュール)
対応OS Windows, macOS
対応言語 英語
種別 リバースエンジニアリングデバッギング
ライセンス Adaptive Public License
公式サイト Official Website
テンプレートを表示

Cheat Engine(略称:CE)とはエリック・ハイネン(ダークバイト)が開発したWindowsに対応したオープンソースメモリスキャナ/バイナリエディタ/デバッガである[1]。主にコンピュータゲームのチートに使用されるが、コンピュータウイルスの解析など、リバースエンジニアリング用途でも活用されている。L・スパイロの"Memory Hacking Software"、TSearch、ArtMoneyと類似している。ユーザーはコンピュータのメモリを通して検索やソートすることができる幅広い種類のオプションを使ってユーザーが入力した値を検索する。またCheat Engineの独立した動作を可能にするスタンドアロンのトレーナー英語版を作成することもできる。

機能[編集]

Cheat Engineはプロセスの逆アセンブルされたメモリを表示したり、限りない正常性、時間もしくは手段といったユーザーのアドバンテージを与えるために改変を加えることができ、またいくつかのDirect3Dマニピュレーションツールを備えることでウォールを通した参照、ズームイン・アウト、マウスを動かすことで画面の真ん中において特定のテクスチャを得るためのいくつかの特別な環境設定が可能となっている。エイムボット英語版の作成に使用されることが多い。

他のプロセスにコードを挿入することができるが、アンチウイルスソフトウェアがウイルスと誤認してしまうことがあるため、多くの機能(コードインジェクションに依存する機能)を使って認証を偽ることで回避することのできるバージョンも有る。その偽の認証を最も一般的な方便はCheat Engineがシステムの一部にアクセスできるようにするためのトロジャン・ルートキットで使用されるいくつかの手法を使うことで生成するが、実行可能ないくつかのファイルが非常に小さいため(16KB以下)、疑わしいフラグを取得することになる。Cheat Engineのもっと新しいバージョンではアンチウイルスソフトウェアのブロックを受ける可能性が低くなっているため、コードインジェクション英語版も問題なく使用出来る。

バージョン6.1以降ではテーブルからゲームトレーナーを生成することができる。Cheat Engineによって生成されたトレーナーは大きく肥大化していて遅いため主にテスト目的に使用される。しかし、有名なトレーナーグループが自身のを公開するために使用されている[2]

コーディング[編集]

Cheat Engineには2種類あり、Cheat Engine DelphiとCheat Engine Lazarusがある。Cheat Engine Delphiは主にWindows XP用の32ビットで、Cheat Engine LazarusはWindows Vista用の32、64ビット向けに構築されている。またObject Pascalでコードされたカーネルモジュールの例外でもある。

インタフェースdbk32.dllというCheat Engineのドライバをロードと初期化両方処理し、別のWindowsカーネル機能を呼び出すラッパーを使って自身のデバイスドライバで公開する。ブロックを試したり除外したりする英語版時におけるLazarusにあるプログラミングバグが原因でCheat Engine Lazarusはdbk32.dllの使用ができず、主に実行可能なドライバ機能を組み込まなければならない。

通常のCheat Engineに必要ではないカーネルモジュールはハードウェアブレークポイントを設定したりRing 3、もしくはRing 0においてフックされたAPIを通過するために使用される。これはWindowsのソフトウェア開発キットでコンパイルされていて、C言語で書かれている[3]

またコミュニティソースコードを共有されたくない人達向けのプラグインアーキテクチャを備えていて、Cheat Engineを一般的なチートツールに位置づけているゲームの特定機能として使用されることが多い。これらのプラグインはチートエンジンや他のゲームのウェブサイトといった複数の場所で掲載されている[4]

Cheat Engine LazarusはDBVMという数人の開発者によって開発されたユーザーモード (enからカーネル空間へのアクセスが出来る仮想マシンを使ってWindows Vista x64 editionにおいて署名されていない64ビットデバイスドライバをロードすることができ、手動で実行可能なイメージをロードするカーネルモードにおいて非ページメモリを配分したり、システムスレッドドライバエントリで作成するのに使用される。しかし、ドライバエントリのパラメータは実際は有効ではなく、ドライバはDBVM向けに修正されなければならない。

脚注[編集]

  1. ^ About Cheat Engine”. www.CheatEngine.org. 2008年3月20日閲覧。
  2. ^ CE Trainers Mass Use”. Deviated Trainers (2012年5月18日). 2012年5月18日閲覧。
  3. ^ Valk, Kevin (2008年12月20日). “Cheat Engine - Trac - compileinfo.txt”. Cheat Engine trac. 2008年3月20日閲覧。
  4. ^ Contributing to CE”. Cheat Engine forums (2007年1月24日). 2008年3月20日閲覧。

外部リンク[編集]