Cheat Engine

Cheat Engine（略称:CE）とはエリック・ハイネン（ダークバイト）が開発したWindowsに対応したオープンソースのメモリスキャナ/バイナリエディタ/デバッガである。主にコンピュータゲームのチートに使用されるが、コンピュータウイルスの解析など、リバースエンジニアリング用途でも活用されている。L・スパイロの"Memory Hacking Software"、TSearch、ArtMoneyと類似している。ユーザーはコンピュータのメモリを通して検索やソートすることができる幅広い種類のオプションを使ってユーザーが入力した値を検索する。またCheat Engineの独立した動作を可能にするスタンドアロンのを作成することもできる。
機能.
Cheat Engineはプロセスの逆アセンブルされたメモリを表示したり、限りない正常性、時間もしくは手段といったユーザーのアドバンテージを与えるために改変を加えることができ、またいくつかのDirect3Dマニピュレーションツールを備えることでウォールを通した参照、ズームイン・アウト、マウスを動かすことで画面の真ん中において特定のテクスチャを得るためのいくつかの特別な環境設定が可能となっている。の作成に使用されることが多い。
他のプロセスにコードを挿入することができるが、アンチウイルスソフトウェアがウイルスと誤認してしまうことがあるため、多くの機能（コードインジェクションに依存する機能）を使って認証を偽ることで回避することのできるバージョンも有る。その偽の認証を最も一般的な方便はCheat Engineがシステムの一部にアクセスできるようにするためのトロジャン・ルートキットで使用されるいくつかの手法を使うことで生成するが、実行可能ないくつかのファイルが非常に小さいため（16KB以下）、疑わしいフラグを取得することになる。Cheat Engineのもっと新しいバージョンではアンチウイルスソフトウェアのブロックを受ける可能性が低くなっているため、も問題なく使用出来る。
バージョン6.1以降ではテーブルからゲームトレーナーを生成することができる。Cheat Engineによって生成されたトレーナーは大きく肥大化していて遅いため主にテスト目的に使用される。しかし、有名なトレーナーグループが自身のを公開するために使用されている。
コーディング.
Cheat Engineには2種類あり、Cheat Engine DelphiとCheat Engine Lazarusがある。Cheat Engine Delphiは主にWindows XP用の32ビットで、Cheat Engine LazarusはWindows Vista用の32、64ビット向けに構築されている。またObject Pascalでコードされたカーネルモジュールの例外でもある。
インタフェースをcodice_1というCheat Engineのドライバをロードと初期化両方処理し、別のWindowsカーネル機能を呼び出すラッパーを使って自身のデバイスドライバで公開する。ブロックを時におけるLazarusにあるプログラミングバグが原因でCheat Engine Lazarusはcodice_1の使用ができず、主に実行可能なドライバ機能を組み込まなければならない。
通常のCheat Engineに必要ではないカーネルモジュールはハードウェアブレークポイントを設定したりRing 3、もしくはRing 0においてフックされたAPIを通過するために使用される。これはWindowsのソフトウェア開発キットでコンパイルされていて、C言語で書かれている。
またコミュニティにソースコードを共有されたくない人達向けのプラグインアーキテクチャを備えていて、Cheat Engineを一般的なチートツールに位置づけているゲームの特定機能として使用されることが多い。これらのプラグインはチートエンジンや他のゲームのウェブサイトといった複数の場所で掲載されている。
Cheat Engine LazarusはDBVMという数人の開発者によって開発されたユーザーモードからカーネル空間へのアクセスが出来る仮想マシンを使ってWindows Vista x64 editionにおいて署名されていない64ビットデバイスドライバをロードすることができ、手動で実行可能なイメージをロードするカーネルモードにおいて非ページメモリを配分したり、システムスレッドをドライバエントリで作成するのに使用される。しかし、ドライバエントリのパラメータは実際は有効ではなく、ドライバはDBVM向けに修正されなければならない。