Cheat Engine

Read before download: Cheat engine is for private and educational purposes only. Before you attach Cheat Engine to a process, please make sure that you are not violating the EULA/TOS of the specific game/application. cheatengine.org does not condone the illegal use of Cheat Engine

April 22 2020:Cheat Engine 7.1 Released for Windows and Mac:

Hereby the new release of CE 7.1. Just click the big download button above

Also, check out my patreon for progress updates and prerelease binaries (which you can also get if you where to compile ce yourself)

and to add, from now on, the Mac version and Windows version will have equal release dates and features(Excluding mac/windows only stuff) as the sourcecode of the both have been merged into one





Additions and changes:

Added support for il2cpp (mono)

Added support for .NET dll plugins

Change register on breakpoint now also affects FP and XMM registers

Added CEShare, a way to share your tables with other people

Improved disassembling

copy bytes+addresses now only does bytes+addresses

call filter can now use the unwind data for functions to get a decent list of instructions

structure dissect shows the pointerpath at the bottom

Follow register while stepping (rightclick the register to show the option)

registersymbol and label now support multiple definitions in one line

improved the speed of the structure list when getting data from a pdb

hexview: doubleclicking a non-byte value now shows in the type you set

added sorting to the found code dialog

added filtering to the changed addresses window

the debugger settings won't lock from changing anymore, still needs you to reopen a process to have an affect

added always hide children groupoption

group headers can act as address now

AA command createthreadandwait now has a timeout parameter

Assembler scanning improvement

Added an AVX2 version of CE, which will speed up all those floating point operations CE does so much...

Improved structure lookup for PDB files

Symbolhandler can now have the following types in front of pointers : (BYTE), (WORD), (DWORD), (QWORD), (CHAR), (SHORT), (INT), (INT64) to typecast the pointer to a value of that type

Structure dissect can detect vc++ and object pascal classnames now

Dissect code now also detects references to strings

Sorting the addresslist now sorts faster and more properly with regards to groups (depends on the level your current selection is)

Rightclick the addresslist header to bring up a menu which allows you to disable sorting

Improved the processlist responsiveness

The chosen floating point rounding type is now saved in the registry

You can now use (addresslist description) as an address

Improved autocomplete

DBVM doesn't activate the TSC hook by default. You can still activate it by using dbvm_enableTSCHook()

Fixed memoryleak when opening a file for hexediting again

Fixed utf8 display of the dissect windows window

Clear the taskbar progress when using a custom scan

Hexview: Fixed changing the address when pressing a non char key

Hexview: Fixed changing the address when doubleclicking and then canceling

alloc with a prefered base is now more aggressive in getting the range you want

fixed mono symbol lookup while dlls are still being loaded

fixed the structure compare not giving a proper errormessage

fixed improper error messages in structure dissect

fixed opening process in XP

fixed potential deadlock with the symbolhander

fixed issue with using the process var as symbol

fixed default form size for some windows when using high DPI

fixed DBVM on systems that have the default MTRR set as 6 (e.g Asus systems)

fixed DBVM find what accesses with large datasets

New functions:

function onTableLoad(before)

sendMessageTimeout

createTimer(delay,function())

createStructureFromName()

createSynEdit()

changes:

fixed executeCodeLocalEx with certain parameter definitions

fixed openFileAsProcess

checkSynchronize has a timeout now

OnGetDisplayValue now also works on AA records(<script>)

Please report bugs and give suggestions for an even better version next timePost patch releases (This is the reason why your 7.1 version says there is a newer version):04/26/2020: Fixed slow loading and deleting huge tables

April 8 2020:Cheat Engine 7.1 Released for patrons:

Just a small notification that CE 7.1 has been released for my patrons. The official public version will come out as soon as a third party has given the green light (sometimes takes a few days and with this current pandemic who knows how long that will take. Will take a while)

August 20 2019:Cheat Engine 7.0 Released:

New major version released. Many improvements and features to make your gaming better



Download: Cheat Engine 7.0





Please report bugs and give suggestions for improvements in the bug tracker or forum

And you can of course contribute yourself by adding to the source on GitHub or become a patreon



Additions and changes:

Icons

Added a way to dissect and show a function's working using a diagram

Auto repeat option for unchanged value scans

Added lua formula scans

Moved the compare to first/saved from scan type to a checkbox

Added a scanner that can detect and undo memory changes in the target process code sections (patch scanner under tools in memview)

The tutorial now has a link to online help for each step

Added a toolbar for stepping while debugging

When a memoryrecord fails to activate, you can rightclick it and see why it failed

AutoAssembler will now cut down on the nop's used

Better error reporting in autoassembler scripts

DBVM can now dynamically adjust the TSC. This can be disabled if it causes performance issues with dbvm_setTSCAdjust(disable)

speedhack now also hooks gettickcount64

added dw 'utf16string' support

implement VPID support in DBVM (performance increase)

kernelmode->driverlist now also shows driver exports

kernelmode symbols now also show in the enum dll's and exports

change the way slow symbol lookup is handled

several small updates to the codecave scanner

several small updates to the hexview find window

Use defered pdb loading instead of waiting for it

Several more windows have been made DPI Aware

Add option to show processid's as decimal in the processlist

When pressing shift+space instead of space to follow an instruction you will now open a new memview window

Added *:undefined support for dropdown lists

Added init.lua files for translations to use

Stackview now shows symbolnames as well

Some extra windows will now save their location

Exe trainer generator now lets you change the default files

The description of conditional jumps is better to understand now

Ultimap2 can now keep the tracer files and scan kernelmode memory as well if desired

Groups now get created afgter the selected item

Smartedit can now also 'smart'-edit children

You can now pick a breakpoint type without having to go to settings, and once picked it will be the default type for Toggle breakpoints until changes again

Floating point screen will now stay within the screen

Clicking execute in the lua engine will now change focus back to the editor field

Debugger interface settings will now only lock after a succesful attach

Some translation improvements here and there

DBVM changeregonbp's are now displayed in CE's interface as well

The foundlist colors can be customized now

Improved DBVM cloak performance when more than 20 regions are cloaked

Implemented DBVM based execute watch and "find what addresses this code accesses"

Implemented DBVM breakpoints (They always execute afterwards, including execute bp's)

Improved autocomplete so it now doesn't delete old code

Added hotkeys to ultimap2

fixed BSOD in recent windows updates

fixed VEH debug not handling breakpoints when a thread is created/destroyed right at the same time as a breakpoint

fixed the stacktrace in 64-bit targets

fixed rounded Extreme for float and double scans

speedhack now waits for proper dll injection

several disassembler instructions

some assembler instructions

improved the stability of dbvm find what * routines

fixed the hit counter in dbvm find what * routines

fixed kernelmode symbol loading

fixed DBVM memoryleak when disabling watches

fixed DBVM internal memory manager (more stable now)

fixed internal VirtualToPhysicalCR3 when dealing with 2MB+ pagesizes

fixed using megajmp's in cloaked regions

fixed speech when using async records

fixed executeCodeEx for more than 4 parameters

fixed static field script in mono by adding 64-bit codegeneration

fixed mono process crashing in some cases

fixed megacall following

fixed NO_CACHE memory being scanned anyhow even if it was disabled

fixed dealing with floating point values that are too big to be useful

fixed setting DR7 to a strange value when using global debug

fixed clearing DR6 when in the wrong process in kernel debug

fixed triggering kernelmode breakpoints in locations you can not properly break (no interrupts)

fixed loading dbvm inside dbvm inside dbvm inside dbvm

fixed autoassembler replacing words in quoted strings

fixed processwatcher not getting a proper PID

fixed hotkeys triggering changed/unganged for types they aren't supposed to

fixed showing dr2, dr3 and dr4 types in the threadlist

New functions:

compareMemory

encodeFunctionEx

enableKernelSymbols

waitForExports

waitForDotNet

waitForPDB

waitforsymbols

searchPDBWhileLoading

duplicateHandle

getScreenDPI

extendedToByteTable

byteTableToExtended

executeCodeLocalEx

executeMethod

allocateSharedMemoryLocal

(un)registerCreateCallback

(un)registerFirstShowCallback

(un)registerCreateCallback

dbk_usePhysicalMemoryAccess

dbk_setSaferPhysicalMemoryScanning

dbk_readPhysicalMemory

dbk_writePhysicalMemory

dbvm_addMemory

dbvm_removechangeregonbp

dbvm_speedhack_setSpeed

dbvm_setTSCAdjust

changes:

getWindowList now returns the results just like ce's window list

documented OnChangeBounds for the Control class (was already there, now documented as well)

executeCodeEx can now also taker just parameters without typedefs

added Data field to ListItem's

added description field to memrec.createHotkey method

added clear method to the menuItem class

readStringEx() can now deal with partial memory reads

executeCodeEx: Fixed more than 4 parameters

added Point type

fixed editbox selstart/sellength types, and added CaretPos

added HeaderSection class and document HeaderSections

added roundRect, drawFocusRect and textRect to the Canvas.

added ansicode character support for textRect

added loadFromStream and saveToStream to the RasterImage class

added readAnsiString and writeAnsiString to the Stream class

Better document the mode field of createFileStream

Expose the handle of the LuaPipeServer

Publish frmTracer

Publish frmUltimap2

Publish frmCodeFilter

Publish imagelist

Added the DrawItemEvent general GUI property to Lua's callback system

Added the MenuDrawItemEvent general GUI property to Lua's callback system

Added the ContextPopupEvent general GUI property to Lua's callback system

Created a new Diagram class group which can allow you to create graphs and diagrams

Memoryrecord.DropDownValue and DropDownDescription work now (still RO)

Russian translation files have been updated by SER[G]ANT Chinese translation files have been updated August 19 2019:Cheat Engine Patreon, because why not I've decided to join Patreon. If you wish to donate and you don't like paypal or bitcoin then this is an alternate way to support Cheat Engine

Currently there's not much there but in the future I'll be adding some extras like special ranks in the forum, custom builds, pre-releases while stuff is being verified/certified, and other stuff.



The link: https://www.patreon.com/cheatengine



February 7 2019:Cheat Engine 6.8.3 Released: New version with a bunch of improvements to make using CE easier and some bugfixes Download: Cheat Engine 6.8.3





Please report bugs and give suggestions for improvements



Fixes:

debugging/stepping with hotkeys several high DPI visual glitches VEH debugger reattach works again Pointerscan resume works again Stackview can now show by reference , previously it did nothing disassembling imul speedhack while key down option assembling values with x*2/4/8 the "resume thread" in the threadlist now resumes threads instead of freezing them fixed an error popping up when editing registers with no debugger attached getNameFromAddress will not show userdefined symbols when symbols are disabled

Additions and Changes:

Waiting till all symbols have been loaded has been removed Launching structure compare from dissect data now only needs 1 address, though it's recommended to have at least 2 each Code completion in lua engine is now more smoother You can now compare traces generated by the tracer Threadlist window now has a copy to clipboard Structure compare now digs deeper into pointers Pointerscan import/export now works with newer types as well Better Lua comment support Added rudimentary sort to the structure compare window (based on levelwidth only) Referenced strings now also shows if it's unicode Formdesigner now has a context menu to add undocumented controls

Lua:

added enumMemoryRegions added getWriteLog (Let's you get the writelog and activate it) HexadecimalView: added the OnCharacterRender and OnValueRender events



Post release patches:

02/11/2019: Don't search addresslist entries in PDB when still loading and give an option to quit slow load

02/17/2019: Fixed speedhack giving an error first time activating and removed a message when using ctrl and scanning

Post release patches:8/21/2019: Fixed when scripts load other scripts using files in non ascii language encodings