Cheat Engine,一般简称CE,是一个开放源代码的软件,作者为Eric ("Dark Byte"),功能包括:内存扫描、十六进制编辑器、调试工具,供Windows和Mac操作系统运行。Cheat Engine最常在电脑游戏中当做游戏外挂,有时会更新以避免被其他软件检测到。这个程序类似于L. Spiro的 ""、TSearch、以及ArtMoney。透过Cheat Engine,用户可以查找与修改电脑的内存。
Cheat Engine可以查询与修改程序经过反汇编后的内存。透过修改内存,用户可以在游戏里获得一些好处,例如无限的生命值、时间或弹药。它还包含一些Direct3D的工具让你可以透视墙壁,在一些高级选项里还可以替你移动鼠标,这功能可以用来制作aimbot。不过Cheat Engine主要使用在单人游戏,在多人游戏方面并不鼓励。
Cheat Engine可以将代码注入其他进程,因此大多数的杀毒软件会将它误认为病毒。有一些版本可以避免这个问题,但许多功能会因此无法使用。产生这个问题的主要原因是因为Cheat Engine使用了一些与特洛伊木马相同的rootkits以获取部分系统的权限,除非停用杀毒软件的启发式扫描,否则将被视为可疑的程序。新版的Cheat Engine已渐渐不易被杀毒软件所阻挡,像是代码注入的一些功能也能运作无误。
6.1版的Cheat Engine可以制作专属的游戏插件——Trainer,并可输出成可执行文件。不过透过CEtrainer制成的trainer一般来说大小都很大。一些制作Trainer的团体会将成品做为"最终"版本发布在网络上。因为用Cheat Engine做Trainer的容易性,一些热门网站甚至以CE的Trainer为讨论主题。不过CEtrainer自6.1版以来就没又再更新,而是强调用Lua来制作trainer。
Cheat Engine有两个分支,Cheat Engine Delphi 和 Cheat Engine Lazarus。Cheat Engine Delphi主要提供给32位的Windows XP。Cheat Engine Lazarus设计给32与64位的Windows 7。除了内核模块以外,Cheat Engine以Object Pascal所写成。
在Cheat Engine里,dbk32.dll
这个动态链接数据库负责加载和初始化Cheat Engine的设备驱动程序以及调用替代Windows内核功能。因为Lazarus里关于异常处理有一个编程的错误,Cheat Engine Lazarus取消使用dbk32.dll
,并且将驱动程序合并在主程序里。
内核模块可以用来设置硬件断点,并且可避开在Ring 3当中hook过的API,一些Ring 1的API也可避开。该模块被编译在Windows里的驱动程序开发工具包,以C语言写成。
Cheat Engine也提供插件的架构给不想分享源代码的人,不过Cheat Engine引入插件的主要目的是成为一个通用共享的作弊工具,所以它们更常用于游戏中的特定功能。这些插件可以自Cheat Engine的官网与相关网站获取。
因为DBVM此一虚拟机允许自用户模式访问内核空间,所以在Windows Vista与后期版本的Windows x64里使用DBVM之后,Cheat Engine Lazarus也可以加载它的无号64位设备驱动程序。DBVM被用于分配非标签页内存、内核模式、手动运行可执行的影像、在DriverEntry里创造系统线程。然而,因为DriverEntry里的参数没有实际效果,所以驱动程序必须特别为DBVM再做修改。
"作弊窗体"是Cheat Engine的一种文件格式,它存储了地址、包括Lua在内的脚本、以及代码位置,通常以.CT
为扩展名。Cheat Engine的用户可以透过它与其他人分享他们的地址和代码位置。
作弊窗体使用简易,只需透过Cheat Engine打开窗体,然后激活/勾选已经存档好的作弊文件即可。由于保存与分享的容易,网络上一个庞大的Cheat Engine Forums已经形成。许多热门的作弊窗体会放在Cheat Engine官网上的专属区域里。除了简单的内存地址之外,作弊窗体可以包含Lua脚本语言来扩展更多功能。所有Cheat Engine的行为都可以脚本化,甚至可以订制对话框以便跟脚本交互。