Cheat Engine
Download Cheat Engine 7.2 for Mac
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
November 1 2020:Cheat Engine 7.2 Released for Windows and Mac:
I'm proud to announce that Cheat Engine 7.2 has been released. Many new features and fixes so check it out.
Please report bugs and suggest new features for an even better version next time.
Also, check out my Patreon for progress updates ,prerelease binaries, discord, etc...
Additions and changes:
Big Endian custom types. You can enable them in settings if you like
Commonality scanner now also compares the base address. (handy in case it's more than one register)
translation support for ceshare
smartedit now also deals with isPointer and isOffset memrecs
referencedfunctions filter improvement
PE section display/parsing for addresses
D3D hook now asks if you're sure you wish to use it (in case of accidental click)
Memoryview hexadecimal view: can now show custom types and changing memory protection depends on the selected byte(range)
Break and trace window now supports searching the referencedAddress, referencedBytes and Instruction
When changing a memoryrecord value, you can reference 'value' and apply math to it
Added a "File->Load Recent..." menulist
Added an option to autosave (in settings)
Added .netcore support to the dotnet data collector
Added a syntaxcheck menuoption to the CE lua script window
Added tabs to the autoassembler and CE Lua script window. In case of the Lua script, the tabs get loaded from left to right whenn the table loads
When syntax checking an AOBScan script in 64-bit that does an Alloc without prefered base, ask if the user understands that the jmp instruction will be 14 bytes long
Some extra foundlist preferences
Find out what access/writes now resolved the address to string (when it has time)
CEShare now has a list of games that have tables
AA: dealloc(*) - Now deallocated all memory a script allocated
AA: unregistersymbol(*) - Now unregisters all symbols a script registered
Added a more userfriendly .net inspector
Autoattach won't open itself anymore
CEShare now has a list of all available tables
Code Dissect now deals with relocated memory modules when loading a state back
Lua Formula scan has an alternate scan option which allows for more than 1 thread
Change Value of memory records can now deal with math
Fixes
Auto Assembler: Fixed getting weird numbers for newmem when using the templates to add new scripts
Unknown initial value scan for 2GB+ regions failed
Resolved issue where typecasts where replaced by addresses. (having a memoryrecord named float, would break AA scripts that'd use (float) )
AMD support for DBVM
Memoryrecord hotkeys showing up in the settings window as bring to front. Where clicking OK would then set it to that
Copy paste bug in the form designer
Hotkeys swapped comma and period on display
Resolved some issues with the forced module loader, and if it fails, don't freeze CE forever
AutoAssemble local would fail after opening a process
Pointermap based rescan
Assembler: (v)insertps , (v)comiss, (v)blendvp(s/d)
Kerneldebug is more stable on newer windows builds
Lua/Mono: Better support for utf8 strings
Lua/Mono: Support targets that use mono, but not unity
Lua/Mono: UWP targets work better
LuaEngine: Autocomplete won't lowercase functions anymore if they are lua functions
Lua
Fixed executeMethod for widestrings (type4)
Fixed AOBScanUnique truncating addresses
AddressList['description'] works now as well
some scripts variables that used to be global are now local
injectDLL has a new parameter to specify if CE should reload the symbols
getNameFromAddress has a new parameter to specify if you wish section names (default=false)
TfrmLuaEngine: document the mOutput and mScript properties
loadModule now has an optional timeout value
added an interface for the DotNetDataCollector
implemented RemoteExecutor , which is a class which can execute remote memory fastyer than ExecuteCodeEx while keeping the same capabilities
createClass and createComponentClass won't access violation anymore for giving an unsupported name
And a bunch of new functions and classes/methods/properties. Check out celua.txt
Post patch releases:
11/05/2020: Fix some of the obsolete object_method functions that broke. (Only affects old (6.2) tables)
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
Changes:
DBVM doesn't activate the TSC hook by default. You can still activate it by using dbvm_enableTSCHook()
Fixes:
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
Lua
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 time
Post 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
Fixes:
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
lua:
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)
Post release patches:
8/21/2019: Fixed when scripts load other scripts using files in non ascii language encodings