Cheat Engine

Last updated
Cheat Engine
Original author(s) Eric "Dark Byte" Heijnen
Developer(s) Community
Initial release2000
Stable release 7.5 (February 23, 2023;15 months ago (2023-02-23) [1] ) [±]
Repository
Written in Object Pascal, C
Operating system Windows, macOS, [2] Linux (Wine, Server/Client for Linux processes) [3]
Available in6 languages [4]
List of languages
English, French, Italian, Russian, Chinese (China), Chinese (Taiwan)
Type Reverse engineering, debugging, disassembler
License Proprietary, source available, freeware
Website cheatengine.org

Cheat Engine (CE) is a proprietary, source available [5] freeware memory scanner/debugger created by Eric Heijnen ("Byte, Darke") for the Windows operating system in 2000. [6] [7] Cheat Engine is mostly used for cheating in computer games and is sometimes modified and recompiled to support new games. It searches for values input by the user with a wide variety of options that allow the user to find and sort through the computer's memory. Cheat Engine can also create standalone trainers that can operate independently of Cheat Engine, often found on user forums or at the request of another user.

Contents

While it is source-available, it is not free and open source software, as its license contains restrictions on redistribution. [8]

Features

Cheat Engine can view the disassembled memory of a process and allow the addition and/or alteration of game states to give the user advantages such as infinite health, time, or ammunition. It also has some Direct3D manipulation tools, allowing vision through walls "Wallhacking" and zooming in/out "FOV changes", and with some advanced configuration, Cheat Engine can move the mouse to get a certain texture into the center of the screen. This is commonly used to create aimbots. However, the main use for Cheat Engine is in single player aspect of games, and its use in multiplayer games is discouraged. [9]

As of version 6.1, Cheat Engine can produce game trainers from the tables. While trainers generated in this way are typically very large for their intended purpose, generally used for testing purposes, some have been released by trainers groups as "final" versions, [10] and even some popular sites are fully based on CE trainers [11] due to the ease of trainer creation with CE. However, despite their popularity, CE trainer maker has not been updated since its implementation in version 6.1—it is largely unsupported, and emphasis is given on using Lua to generate trainers. Even the trainer maker itself uses Lua scripts to generate trainers.

Implementations

Two branches of Cheat Engine exist, Cheat Engine Delphi and Cheat Engine Lazarus. Cheat Engine Delphi is primarily for 32-bit versions of Windows XP. Cheat Engine Lazarus is designed for 32 and 64-bit versions of Windows 7. Cheat Engine is, with the exception of the kernel module, written in Object Pascal.

Cheat Engine exposes an interface to its device driver with dbk32.dll, a wrapper that handles both loading and initializing the Cheat Engine driver and calling alternative Windows kernel functions. Due to a programming bug in Lazarus pertaining to the use of try and except blocks, Cheat Engine Lazarus had to remove the use of dbk32.dll and incorporate the driver functions in the main executable.

The kernel module, while not essential to normal CE use, can be used to set hardware breakpoints and bypass hooked API in Ring 3, even some in Ring 0. The module is compiled with the Windows Driver Kit and is written in C. [12]

Cheat Engine also has a plugin architecture for those who do not wish to share their source code with the community. They are more commonly used for game specific features, as Cheat Engine's stated intent is to be a generic cheating tool. These plugins can be found in several locations on the Cheat Engine website as well as other gaming sites. [13]

Cheat Engine Lazarus has the ability to load its unsigned 64-bit device driver on Windows Vista and later x64 bit versions of Windows, by using DBVM, a virtual machine by the same developers that allows access to kernel space from user mode. It is used to allocate nonpaged memory in kernel mode, manually loading the executable image, and creating a system thread at Driver Entry. However, since the Driver Entry parameters are not actually valid, the driver must be modified for DBVM.

Cheat Tables

Cheat Engine allows its users to share their addresses and code locations with other users of the community by making use of cheat tables. "Cheat Tables" is a file format used by Cheat Engine to store data such as cheat addresses, scripts including Lua scripts and code locations, usually carrying the file extension .ct. Using a Cheat Table is straightforward and involves simply opening the Cheat Table through Cheat Engine and enabling/ticking the cheats stored within it. The ability to save and share Cheat Tables has resulted in a large online community for sharing cheats through the Cheat Engine Forums. Popular Cheat Tables are hosted on the Fearless Revolution website. [14]

In addition to simple memory addresses, cheat tables can extend the functionality of Cheat Engine using the Lua scripting language. Almost all of Cheat Engine's features are scriptable, and it is even possible to design custom dialogs to interact with scripts.

Controversy

In 2017, the Entertainment Software Association (ESA) sent a copyright infringement notice asking Eric Heijnen to cease and desist. The notice claimed Cheat Engine allowed evading anti-cheat technologies, accessing in-game DLC items/microtransaction items that could only be bought with real money. Eric Heijnen responded by shutting down the cheat tables section to the public, asking them to be hosted off-site and coming to an agreement with ESA. [15] The Cheat Engine community was not happy with the steps taken, and prominent members moved to a new community website called Fearless Revolution where old cheat tables have been uploaded and new ones are being posted. The Cheat Engine website and forums only focus on development of the tool itself now, and cheat tables have moved to Fearless Revolution forums. [16] [17]

Malware distribution

The installers of Cheat Engine are known to include potentially unwanted programs which are often bloatware or malware, and as a result, most anti-virus software detects the installer as a virus. [18] [19] [20] Bloatware-free versions are generally available on the product's Patreon page, or users can build the program from the GitHub repository through any Pascal compiler. [21]

Related Research Articles

<span class="mw-page-title-main">Blitz BASIC</span>

Blitz BASIC is the programming language dialect of the first Blitz compilers, devised by New Zealand-based developer Mark Sibly. Being derived from BASIC, Blitz syntax was designed to be easy to pick up for beginners first learning to program. The languages are game-programming oriented but are often found general purpose enough to be used for most types of application. The Blitz language evolved as new products were released, with recent incarnations offering support for more advanced programming techniques such as object-orientation and multithreading. This led to the languages losing their BASIC moniker in later years.

<span class="mw-page-title-main">Device driver</span> Software interface to attached devices

In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and other computer programs to access hardware functions without needing to know precise details about the hardware being used.

<span class="mw-page-title-main">Vim (text editor)</span> Improved version of the Vi keyboard-oriented text editor

Vim is a free and open-source, screen-based text editor program. It is an improved clone of Bill Joy's vi. Vim's author, Bram Moolenaar, derived Vim from a port of the Stevie editor for Amiga and released a version to the public in 1991. Vim is designed for use both from a command-line interface and as a standalone application in a graphical user interface. Since its release for the Amiga, cross-platform development has made it available on many other systems. In 2018, it was voted the most popular editor amongst Linux Journal readers; in 2015 the Stack Overflow developer survey found it to be the third most popular text editor, and in 2019 the fifth most popular development environment.

ext2, or second extended file system, is a file system for the Linux kernel. It was initially designed by French software developer Rémy Card as a replacement for the extended file system (ext). Having been designed according to the same principles as the Berkeley Fast File System from BSD, it was the first commercial-grade filesystem for Linux.

SoftICE is a kernel mode debugger for DOS and Windows up to Windows XP. It is designed to run underneath Windows, so that the operating system is unaware of its presence. Unlike an application debugger, SoftICE is capable of suspending all operations in Windows when instructed. Due to its low-level capabilities, SoftICE is also popular as a software cracking tool.

Irrlicht is an open-source game engine written in C++. It is cross-platform, officially running on Windows, macOS, Linux and Windows CE and due to its open nature ports to other systems are available, including FreeBSD, Xbox, PlayStation Portable, Symbian, iPhone, AmigaOS 4, Sailfish OS via a Qt/QML wrapper, and Google Native Client.

<span class="mw-page-title-main">AutoHotkey</span> Automation-focused scripting language for Windows

AutoHotkey is a free and open-source custom scripting language for Microsoft Windows, primarily designed to provide easy keyboard shortcuts or hotkeys, fast macro-creation and software automation to allow users of most computer skill levels to automate repetitive tasks in any Windows application. It can easily extend or modify user interfaces. The installation package includes an extensive help file; web-based documentation is also available.

<span class="mw-page-title-main">FontForge</span> Font editor created by George Williams

FontForge is a FOSS font editor which supports many common font formats. Developed primarily by George Williams until 2012, FontForge is free software and is distributed under a mix of the GNU General Public License Version 3 and the 3-clause BSD license. It is available for operating systems including Linux, Windows, and macOS, and is localized into 12 languages.

<span class="mw-page-title-main">Spring Engine</span> Real-time strategy game engine

The Spring Engine is a game engine for real-time strategy (RTS) video games. The game engine is free and open-source software, subject to the terms of the GNU General Public License v2.0 or later.

<span class="mw-page-title-main">Comparison of open-source wireless drivers</span>

Wireless network cards for computers require control software to make them function. This is a list of the status of some open-source drivers for 802.11 wireless network cards.

<span class="mw-page-title-main">Minix 3</span> Unix-like operating system

Minix 3 is a small, Unix-like operating system. It is published under a BSD-3-Clause license and is a successor project to the earlier versions, Minix 1 and 2.

exFAT is a file system introduced by Microsoft in 2006 and optimized for flash memory such as USB flash drives and SD cards. exFAT was proprietary until 28 August 2019, when Microsoft published its specification. Microsoft owns patents on several elements of its design.

Game trainers are programs made to modify memory of a computer game thereby modifying its behavior using addresses and values, in order to allow cheating. It can "freeze" a memory address disallowing the game from lowering or changing the information stored at that memory address or manipulate the data at the memory addresses specified to suit the needs of the person cheating at the game.

dm-crypt is a transparent block device encryption subsystem in Linux kernel versions 2.6 and later and in DragonFly BSD. It is part of the device mapper (dm) infrastructure, and uses cryptographic routines from the kernel's Crypto API. Unlike its predecessor cryptoloop, dm-crypt was designed to support advanced modes of operation, such as XTS, LRW and ESSIV, in order to avoid watermarking attacks. In addition to that, dm-crypt addresses some reliability problems of cryptoloop.

Cocos2d is an open-source game development framework for creating 2D games and other graphical software for iOS, Android, Windows, macOS, Linux, HarmonyOS, OpenHarmony and web platforms. It is written in C++ and provides bindings for various programming languages, including C++, C#, Lua, and JavaScript. The framework offers a wide range of features, including physics, particle systems, skeletal animations, tile maps, and others.

NVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCIS) is an open, logical-device interface specification for accessing a computer's non-volatile storage media usually attached via the PCI Express bus. The initial NVM stands for non-volatile memory, which is often NAND flash memory that comes in several physical form factors, including solid-state drives (SSDs), PCIe add-in cards, and M.2 cards, the successor to mSATA cards. NVM Express, as a logical-device interface, has been designed to capitalize on the low latency and internal parallelism of solid-state storage devices.

mpv (media player) Free and open-source media player software

mpv is free and open-source media player software based on MPlayer, mplayer2 and FFmpeg. It runs on several operating systems, including Unix-like operating systems and Microsoft Windows, along with having an Android port called mpv-android. It is cross-platform, running on ARM, PowerPC, x86/IA-32, x86-64, and MIPS architecture.

A headless browser is a web browser without a graphical user interface.

LÖVE is a free, open-source, cross-platform framework released under the zlib license for developing video games. The framework is written in C++ and uses Lua as its scripting language and is still maintained by its original developers. The framework is cross-platform supporting the platforms Microsoft Windows, macOS, Linux, Android, and iOS.

References

  1. https://github.com/cheat-engine/cheat-engine/releases/tag/7.5
  2. "Port To Mac". forum.cheatengine.org. Archived from the original on 3 November 2014. Retrieved 17 June 2011.
  3. Dark Byte. "Linux port". forum.cheatengine.org. Archived from the original on 1 January 2015. Retrieved 21 August 2016. CE can be used on wine in windows processes and linux processes with the server/client (run the client in wine)
  4. "cheat-engine/Cheat Engine/bin/languages at master · cheat-engine/cheat-engine". GitHub. Archived from the original on 2018-06-11. Retrieved 2022-01-06.
  5. Byte, Dark (2022-04-28), Cheat Engine, archived from the original on 2018-06-11, retrieved 2022-04-28
  6. Heijnen, Eric. "When was Cheat Engine first released?". cheatengine.org. Archived from the original on 2023-06-09. Retrieved 2024-05-21.
  7. Heijnen, Eric. "About Cheat Engine". cheatengine.org. Archived from the original on 2021-04-07. Retrieved 2008-03-20.
  8. "License.txt". GitHub . Archived from the original on 2022-02-08. Retrieved 2022-04-19.
  9. "Cheat Engine :: FAQ". forum.cheatengine.org. Archived from the original on August 24, 2016. Retrieved August 28, 2016.
  10. "CE Trainers Mass Use". Deviated Trainers. 2012-05-18. Archived from the original on 2013-01-21. Retrieved 2012-05-18.
  11. "Cheat Engine trainers popularity". fearlessrevolution.com. Archived from the original on 7 March 2017. Retrieved 20 October 2019.
  12. Valk, Kevin (2008-12-20). "Cheat Engine - Trac - compileinfo.txt". ce.colddot.nl trac . Archived from the original on 2009-08-19. Retrieved 2008-03-20.
  13. "Contributing to CE". forum.cheatengine.org. 2007-01-24. Archived from the original on 2008-03-03. Retrieved 2008-03-20.
  14. "Cheat Tables Location". fearlessrevolution.com. 2004-10-14. Archived from the original on 2022-06-14. Retrieved 2013-03-27.
  15. "The ESA claim ". forum.cheatengine.org. 2017-02-26. Archived from the original on 2018-09-17. Retrieved 2017-02-26.
  16. "Cheat Tables Location". fearlessrevolution.com. 2017-03-03. Archived from the original on 2022-01-09. Retrieved 2017-03-31.
  17. Bakker, Raymond (2017-03-25). "Major video game publishers target memory scanner Cheat Engine with questionable copyright infringement notices". ZeroLives. Archived from the original on 2020-11-12. Retrieved 2017-03-31.
  18. "Cheat Engine :: View topic - OMG VIRUS!!!". www.cheatengine.org. Archived from the original on 2023-01-23. Retrieved 2022-04-02.
  19. "Cheat Engine installs malware/crapware without consent · Issue #322 · cheat-engine/cheat-engine". GitHub. Archived from the original on 2022-04-02. Retrieved 2022-04-02.
  20. How to get Cheat Engine 7.4 without bloatware, archived from the original on 2022-04-02, retrieved 2022-04-02
  21. "Cheat Engine :: View topic - How to download Cheat Engine installer without malware?". www.cheatengine.org. Archived from the original on 2023-01-23. Retrieved 2022-06-03.