CHEAT ENGINE DOWNLOAD

Cheat Engine is an open source tool designed to help you with modifying single player games running under window so you can make them harder or easier depending on your preference(e.g: Find that 100hp is too easy, try playing a game with a max of 1 HP), but also contains other usefull tools to help debugging games and even normal applications, and helps you protect your system by letting you inspect memory modifications by backdoors and even contains some ways to unhide them from conventional means.

 

Cheat Engine 6.7 has been released. New lua functions, GUI improvements, codepage scanning, several bugfixes and more(See below). 
Download: Cheat Engine 6.7



If you encounter bugs or have suggestions, please do not hesitate to report them in the forum, bugtracker, irc or by e-mail.
And if you have questions, don't hesitate to ask them in the forum , irc or Discord

Fixes:

  • Fixed some DPI issues at some spots
  • Fixed the "Not" scan for ALL
  • "simple values" now also applies to the All type
  • Fixed not adding the 0-terminator to strings when the option was set to add it
  • Fixed ultimap hotkeys
  • Fixed ultimap2 filtering
  • Changing pointers in the change address dialog won't set/override global memrec and address anymore (local now)
  • Fixed show as signed not working for custom types
  • Fixed several issues with the structure spider
  • Fixed 64-bit registers in the tracer getting truncated on doubleclick, and fix r8 to r15
  • Fixed copy/paste in the scanvalue
  • Fixed kernelmode QueryMemoryRegions for windows build 1607
  • Fixed some disassembler errors
  • Fixed lua command fullAccess
  • Fixed text to speech if launched from a different thread
  • Fixed clicking on checkboxes when the dpi is different
  • Fixed the found code dialog count size
  • Fixed mono freezing Cheat Engine when it crashes/freezes

DOWNLOAD

 

Additions and changes:
  • Changed the processlist and added an Applications view similar to the taskmanager
  • Small change to the tutorial first step wording
  • Structure Dissect: Added RLE compression (by mgr.inz.player) and other things to improve filesize
  • Structure Dissect: If setting a name, it will also be shown in the header
  • The symbolhandler can now deal with complex pointer notations
  • Added support for single-ToPA systems for ultimap2
  • Added some more spots where the history will be remebered in memoryview
  • Memoryrecords with auto assembler scripts can now execute their code asynchronous (rightclick and set "Execute asynchronous")
  • Kernelmode memory reading/writing is safer now
  • Added an option to filter out readable paths in the pointerscan rescan
  • Added "codePage" support
  • Added font/display options to several places in CE
  • Added a search/replace to the script editors
  • You can now delete addresses and reset the count from "Find what addresses this code accesses"
  • Added a statusbar to the hexview in memoryview
  • Pointerscan for value scans now add the results to the overflow queue
  • Opening a file and changing bytes do not change them to the file anymore (you need to explicitly save now)
  • Added an option to the processlist to filter out system processes
  • Added a system to let users sign their tables so you know you can trust their tables.
  • Memory record dropdown lists can now reference those of others. USe as entry text: (memoryrecorddescription)
  • Added an option to notify users of new versions of Cheat Engine


  • Custom Types can now be referenced from Lua
  • Auto assembler lua sections now have access to "memrec" which is the memory record they get executed from. Can be nil
  • stringToMD5String now support strings with a 0 byte in them
  • autoAssemble() now also returns a disableInfo object as 2nd parameter. You can use this to disable a script
  • added Action and Value properties to MemoryRecordHotkey objects
  • added screenToClient and clientToScreen for Control objects
  • added readSmallInteger and writeSmallInteger
  • added enableDRM()
  • added openFileAsProcess/saveOpenedFile
  • added saveCurrentStateAsDesign for CEForm objects
  • added disableWithoutExecute and disableAllWithoutExecute
  • added OnCustomDraw* events to the listview
  • added being/endUpdate for the Strings class
  • added SQL support
  • added color overrides to the disassembler text
  • added OnPaint to the CustomControl class
  • added autoAssembleCheck to syntax check an AA script
  • fixed the addresslist returning nil for PopupMenu (while popupMenu did work)
  • added an timeout option for pipes
  • added some graphical options
  • added some low level system functions
 


Russian translation has been updated
Chinese translation has been updated

May 15 2017:Korean language files

Thanks to Petrus Kim there are now Korean language files for Cheat Engine. You can get them here
Just extract it to the language folder in the Cheat Engine installation folder and you'll be able to use it


April 13 2017:Cheat Engine for Macintosh download

For the Mac users under us there is now a mac version available for download. It's based on Cheat engine 6.2 but I will be upgrading it to 6.6 and later based on the feedback I get.
Tip:if you have trouble opening processes: Reboot your Mac and hold CMD+R during boot to enter the recovery console. There open the terminal (using the top menu) and enter "csrutil disable" . Then reboot and you'll be able to open most processes (Youtube video by NewAgeSoldier in case it's not clear)

October 6 2016:Cheat Engine 6.6 Released:

Cheat Engine 6.6 has been released. It has several fixes, new scan functionality, gui changes/improvements, Ultimap 2, better hotkeys, more programming options, and more(See below). 


Fixes:

  • Fixed saving of hotkey sounds
  • Fixed the CF flag in the disassembler stepping mode
  • Fixed Kernelmode VirtualQueryEx for Windows 10 build 14393
  • Fixed DBVM for Windows 10 build 14393
  • Fixed the shortest assembler instruction picking for some instructions
  • Fixed a few bugs in the break and trace routine when you'd stop it while the thread still had a single step set
  • Fixed several ansi to UTF8 incompatbilities that poped up between 6.5 and 6.5.1
  • Fixed the stackview not properly setting the color, and giving an error when trying to change a color
  • Fixed the exe generator not adding both .sys files or the .sig files when using kernel functions
  • Fixed some places of the disassembler where it helps guessing if something is a float or not
  • When using the code finder, it won't show the previous instruction anymore if it's on a REP MOVS* instruction
  • Fixed an issue when editing memoryrecords with strings, where wordwrap would add newline characters
  • Fixed D3D alpha channel for textures and fontmaps
  • Fixed the helpfile not being searchable
  • The installer will now mark the CE destination folder as accessible by APPS. (fixes speedhack for some APPS)
  • Fixed the form designed crashing is resized 'wrong'

Additions and changes:
  • Ultimap 2 for Intel CPU's of generation 6 and later (no DBVM needed for those)
  • Language select if you have multiple language files for CE
  • Memoryrecord pointer offsets can use calculations, symbols and lua code now
  • While stepping in the debugger you can now easily change the EIP/RIP register by pressing ctrl+f4
  • changed the way CE is brought to front when a hotkey is pressed
  • Made the GUI more adaptive to different fontsizes and DPI
  • Several font and minor GUI changes
  • Added DPIAware and a font override to the settings window. (DPI aware is on by default, but can be turned of if experiencing issues)
  • Added option to enable pause by default
  • Disassembling mega jumps/calls now show the code in one line
  • The standalone auto assembler window will now give an option to go to the first allocated memory address
  • Changed the point where the settings are loaded in CE's startup sequence
  • The formdesigner now allows copy and paste of multiple objects, and uses text
  • Added scrollbox and radiogroup to the formdesigner
  • Added Middle, MB4 and MB5 as allowable hotkeys
  • Added controller keys as hotkeys
  • Single stepping now shows an indication if an condition jump will be taken
  • Added a watchlist to the debugger
  • Added the 'align' assembler pseudo command (allocates memory so the next line is aligned on a block of the required size)
  • Added the 'Not' option for scans, which causes all addresses that match the given entry as invalid
  • Changed the Unicode text to UTF-16. Text scans are now UTF8/UTF16 (no codepage)
  • Hexview can now show and edit values in 3 different textencodings. (Ascii, UTF-8 and UTF-16)
  • Rescan pointerscans on pointerscans that where done on a range can now change the offset

lua:
  • speak(): Text to speech
  • hookWndProc: a function that lets you hook the windows message handler of a window
  • registerEXETrainerFeature: Lets you add extra files to the exe trainer file packer
  • getFileVersion(): A function to get version information from a file
  • mouse_event() : Lets you send mouse events to windows. (move, click, etc...)
  • loadFontFromStream() : Lets you load a font from a memory stream. (Useful for trainers that use a custom font)
  • added several thread synchronization objects
  • control class: added bringToFront and sendToBack

lua changes:
  • dbk_writesIgnoreWriteProtection() now also disables virtualprotectex calls from CE
  • loadTable() can now also load from a Stream object.
  • the addresslist has some Color properties published for better customization
  • the LUA server has had some new commands added so hooked code can do more efficient calls. (LUAClient dll has been updated to use them in a basic way)


Russian translation has been updated
French tutorial only translation has been updated as well

10/10/2016:6.6.0.1: Fixed align

May 19 2016:Cheat Engine 6.5.1 Released:

6.5.1 has been released. It's mainly a bugfix version to replace 6.5 which had a few minor bugs that needed solving.
Download: Cheat Engine 6.5.1
Fixes:

  • Fixed increased value by/decreased value by for float values 
  • Fixed disassembling/assembling some instructions (64-bit) 
  • Fixed the autoassembler tokenizing wrong words 
  • Fixed several bugs related to the structure dissect window (mainly shown when autodestroy was on) 
  • Fixed a small saving issue 
  • Groupscans now deal with alignment issues better 
  • Fixed java support for 32-bit 

Additions and changes:
  • Signed with a sha256 signature as well (for OS'es that support it) 
  • Changed Ultimap to use an official way to get the perfmon interrupt instead of IDT hooking (less BSOD on win10 and 8) 
  • Individual hotkeys can now play sounds 
  • Now compiled with fpc 3.0/lazarus 1.6 (Previously 2.7/1.1) 
  • You can now search in the string list 
  • PEInfo now has a copy to clipboard 
  • Some places can now deal better with mistakes 
  • Lazarus .LFM files can now be loaded and saved 

lua:
  • Fixed several incompatibilities between lua that popped up in 6.5 (due to the lua 5.1 to 5.3 change) 
  • Fixed the OnSelectionChange callback property in the memoryview object 
  • MemoryRecords now have an Collapsed property 
  • Added TCanResizeEvent to the splitter 
  • Fixed setBreakpoint not setting a proper trigger if not provided 
  • Fixed executeCode* parameter passing 
  • Fixed several memory leaks where unregistering hooks/addons didn't free the internal call object 
  • Some tableFile additions 
  • Fixed registerAssemble assembler commands 
  • Added kernelmode alloc and (un)mapping functionality 
  • Added an easy way to add auto assembler templates 
  • Added window related functions including sendMessage 
  • Added Xbox360 controller support functions 
  • Added more thread functions 

Post release fixes:
  • Dealt with several gui issues like the mainform to front on modal dialogs, header resizing stuck with the cursor, treeview item selection/deletion being weird, etc... 
  • Added a disconnect to the client in pointerscans 
  • Fixed pointerscan issue with 32-bit aligned pointers in a 64-bit process 
  • Fixed a deadlock in threads when lua custom types where used 


Post release fixes:
  • Dealt with several gui issues like the mainform to front on modal dialogs, header resizing stuck with the cursor, treeview item selection/deletion being weird, etc...
  • Added a disconnect to the client in pointerscans
  • fixed pointerscan issue with 32-bit aligned pointers in a 64-bit process
  • Fixed a deadlock in threads when lua custom types where used
  • Fixed pointerscan resume

  • 6/1/2016: (major bugfix) properly fixed resume of pointerscans and alignment fix

December 31 2015:Cheat Engine 6.5 Released:

I'd like to announce the release of Cheat Engine 6.5


Fixes:

  • Fixed page exception breakpoints from not working 
  • Fixed the save as button in the lua script assigned to the table
  • Fixed the dotnetdatacollector from not fetching parent fields
  • Fixed disassembling of some instructions
  • Fixed assembling some instructions
  • Fixed assembling instructions that referenced address 80000000 to ffffffff in 64-bit targets
  • Fixed dealing with unexpected breakpoints
  • Fixed several issues with the network scanner. (symbols, scanspeed, threads, etc...)
  • Fixed "going to" 64-bit registers.
  • Fixed pointerstrings for 64-bit
  • Fixed the addressparser in memview's hexview not handing static 64-bit addresses 
  • Fixed r8 and r9 looking broken in the memoryview window
  • Fixed hotkeys that set a value as hexadecimal and the value is smaller than 0x10
  • Fixed multiline string editing for memory records
  • Fixed dragging cheat tables into CE
  • Fixed VEH debug for 'Modern' apps
  • Fixed several translation issues
lua:
  • fixed getStructureCount, writeRegionToFile, readRegionFromFile, readInteger, ListColum.GetCount
  • fixed memoryleak in MemoryStream

Several fixes to DBVM:
  • added support for Windows 10
  • support for more than 8 cpu's
  • support for newer cpu's
  • fixed issue where calling CPUID right after setting the TF flag wouldn't trigger a breakpoint after it


Additions and changes:
  • Array of Byte's can now deal with nibble's. (e.g: 9* *0 90 is now a valid input- and scanstring)
  • The auto assembler can now deal with some mistakes like forgetting to declare a label
  • Added support to use binutils as assembler and disassembler, and a special scripting language for it
  • Added support for 64-bit mono, and script support for cases where mono.dll isn't called mono.dll
  • Added an option to get a list of all recently accessed memory regions. This is useful for the pointerscanner
  • The pointerscanner can now use multiple snapshots (pointermaps) to do a scan. This basically lets you do a rescan during the first scan, saving your harddisk 
  • Made the pointerscan network scanner a bit easier to use. You can now join and leave a pointerscan session
  • You can now stop pointerscans and resume them at a later time
  • Pointerscan files can get converted to and from sqlite database files
  • The pointerscan configuration window now has an advanced and basic mode display
  • The all type now has a setting that lets you define what under "all" falls
  • Custom types now also have access to the address they're being used on
  • Split up the "(de)activating this (de)activates children" into two seperate options (one for activate, one for deactivate)
  • Added some basic Thumb disassembling
  • The xmplayer has been replaced with mikmod which supports many different module types (in lua you still call it xmplayer)
  • Rightlicking on "your system supports dbvm" will let you manually load DBVM for each cpu. This is usefull if for some reason your system crashes when it's done too quickly
  • In "Find what addresses this instruction accesses" you can now open the structure dissect window of your choice in case there are others. It will also fill in the base address, so no need to recalculate yourself
  • AA command GlobalAlloc now has an optional 3th parameter that lets you specify the prefered region
  • Added an option to record and undo writes. (Off by default, can be enabled in settings. Memview ctrl+z will undo the last edit)
  • Added aobscanregion(name,startaddress,stopaddress,aob)

lua:
  • switched from Lua 5.1 to 5.3 
  • debug_setBreakpoint can now take an OnBreakpoint parameter that lets you set a specific function just for that breakpoint
  • added dbk_getPhysicalAddress(int)
  • added dbk_writesIgnoreWriteProtection(bool)
  • added getWindowList()
  • And a bunch of other lua functions. (check out main.lua)


Post release fixes (max 7 days after initial release *or 30 if a HUGE bug):
1/6/2016:Fixed structure dissect from crashing when autodestroy is on
1/6/2016:Fixed window position loading on multi monitor systems
1/6/2016:Fixed the lua customtype and
1/6/2016:Several minor gui fixes

Download: Cheat Engine 6.6