Cheat Engine versions

Modifies files and processes of computer games
7.5
Feb 10, 2023
Review
7.1
Apr 23, 2020
Review
7.0
Feb 4, 2012
Review
6.8
Jun 7, 2018
Review
6.7
Jun 7, 2017
Review
6.6
Oct 6, 2016
Review
6.5
Feb 8, 2015
Review
6.4
Dec 14, 2013
Review
Nov 4, 2014
6.3
Jun 13, 2013
6.2
May 20, 2012
Review
May 14, 2012
6.1
Jun 2, 2011
Review
6.0
Jan 9, 2011
5.6
Jan 31, 2010
5.5
Jan 17, 2009
Editorial review
rating
Feb 7, 2010
5.4
Mar 1, 2008

What's new

v7.5 [Feb 10, 2023]
• Removed the driver requirement for the access memory regions tool.
• Added 1 byte jmp instructions (that will install an exeption handler and place an int3 at the location).
• Added a scanoption so you can skip unpaged memory. (should prevent targets from eating up ram when scanned).
• Reassemble() now rewrites an instruction using multiple lines when needed.
• Make some error messages more descriptive.
• Added an option to center the highlighted disassembler code to the center.
• Added an explanation why the driver won't load and a link with info on how to get it to load for now.
• Memoryrecord hotkeys can now be disabled individually.
• Codefilter: unwind info now gives less bad results.
• Added support for pseudo-ops like cmpss/sd/ps/pd.
• Lua: added ceserver commands.
• Lua: show a stacktrace on execution error.
• Lua: added converttoutf8(stringbytetable, regioncode).
• Made loading ct files with signatures possible under wine and protonfrom patreon 7.4.2 to patreon 7.4.3:.
• Ceserver: pipe support (mono data dissector).
• Ceserver: added change memory protection capability.
• Ceserver: available options can now be sent to the ce gui.
• .netinfo: replaced the fields view with a tree.
• Network config: the processlist now has focus after opening a server.
• Lua: added virtualstringtree.
• Lua: added invertcolor.
• Lua: added disassemblebytes(bytestring).
• Autoassembler: now a visual warning is shown when nearby allocation fails.
• Autoassembler: the templates now generate 14 byte jmp safe original code blocks as well.
• Pointerscan now has a deviation option for "pointer must end with offset" to help find pointers back after update.
• Ultimap: added copy selected results to clipboardfrom patreon 7.4.1 to patreon 7.4.2.
• Ipt: added intel process trace feature provided by microsoft..
• Ceserver: improve the modulelist fetch speed, more stable.
• Ceserver: option to disconnect from closed ceservers.
• Ceserver: the discovery list is now also a history list.
• Ceserver: implement injection on arm64 as well.
• Ceserver: also gets the fpu registers now.
• Assembler x86_64: prefer mov rax,[rip xxx] over mov rax,[imm64].
• Disasembler x86_64: switch from r#l to r#b because why not.
• Mono: the dll now has a versioncheck so that you don't accidentally mix monodatacollector dll's.
• Mono: deal with situations where there is no mainform.
• Mono/.net: the methodlist is now sorted by name.
• Better arm disassembler and assembler.
• Better arm64 disassembler and assembler.
• The scanregions can be saved/loaded upon close/start ce (seperate option in settings).
• Added an option to skip loading .pdb files.
• A lot more functions are exposed to newstate threads.
• Added ranges scans to groupscan.
• Freeze allow increase/decrease now also looks if the value is signed.
• Trainers: forms and controls now scale based on dpi.
• Changing record showassigned/showashex now also applies to other selected entries.
• Texttraces now don't save as .cetrace but as .txt now.
• Ccode: #include now searches table files for files there as well.
• Ccode: the internal symbolhandler can now deal with stdcalled function symbols.
• Lua: added imageindex property to ttreenode.
• Lua: added onvaluechanged and onvaluechangedbyuser callbacks to memoryrecord objects.
• Lua: added getopenedfilesize().
• Lua: added onhelpevent callback.
• Lua: added releasedebugfiles().
• Lua: added enumregisteredsymbollists() and enumregisteredsymbols().
• Lua: added getbitmap method to imagelist objectsfrom public 7.4 to patreon 7.4.1:.
• Added .visible property to treenode entries.
• Added .visiblerowcount and .topitem to listviews.
• Added arm64 disassembling and assembling.
• Added lua function "runcommand".
• Added a radiobutton to select if the generated script will use 5 or 14 byte jmps..
• Conditional jumps can now deal 2gb destinations (will get rewritten).
• Dotnetinfo: performance improvement.
• Memory record hotkeys now have a "only while down" option.
• Updated the dbghelp to a more recent version which can better handle nowadys pdb symbols.
• Different memory allocations now get placed within the initial allocation block. Protection is changed afterwards.
• Tracer can now step over rep instructions.
• Lua stringstream now inherits from memorystream, so you have access to the memory field.
• Lua: added a callback for whenever the structure list is modified.
• Added architecture distinguishing to ceserver.
• Pressing escape in the hotkey form will now close it.
• Added nested structure support.
• Added string based custom types.
• Ctrl enter in the disassembler now shows relative addresses from that point.
• The diffcount in "find out what accessess/writes" will now stay even when disabling the option to find the number of different addresses an instruction accesses.

v7.1 [Apr 23, 2020]
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 datasetsLua
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>).

v7.0 [Feb 4, 2012]
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

v6.8 [Jun 7, 2018]
Fixes:
- Fixed several issues with the structure compare.
- Fixed the commonality scanner from picking up unrelated registers for comparison.
- Fixed speedhack hotkeys.
- Fixed ultimap 1.
- Fixed a bunch of random access violations.
- Fixed Lua dissectCode.getStringReferences now also returns the string.
- Fixed Lua breakpoints that specify a specific function.
- Fixed Lua toAddress when the 2nd parameter is an address.
- Fixed assembling xmm,m32.
- Fixed issue when disassembling AVX instructions.
- Fixed rightclicking r8-r9 in the registers window.
- Fixed the plugin system for DBVM.
- Fixed DBVM memory allocations when smaller than 4KB.
Additions and changes:
- Added translation strings for the all type settings.
- You can now drop files into the auto assembler.
- Auto assembler commands allocnx (allocate no execute) and allocxo (allocate execute only).
- The memoryview windows's hexadecimalview now shows the allocationbase as well, and can be doubleclicked to go there.
- Added support for mono dll's that do not export g_free.
- Changed "make page writable" to multiple options.
- Improved DBVM speed slightly.
Lua:
- Added RemoteThread class object.

v6.7 [Jun 7, 2017]
- 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 scan value.
- 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.

v6.6 [Oct 6, 2016]
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'.

v6.5 [Feb 8, 2015]
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

v6.4 [Dec 14, 2013]
Fixes:
- Network: Network server can now handle multiple incoming connections at the same time.
- Gui: Fixed a crash when using multiple scan tabs.
- Assembler/Disassembler: Fixed several assembler/disassembler bugs.
- Debug: Fixed issues where deleting a breakpoint wouldn't actually remove it, causing a crash.
- Debug: Fixed a problem where deleting a breakpoint that was marked for deletion would never happen if the game was constantly triggering the debugger.
- Lua: Fixed the 6.2 and earlier version of opendialog_execute.
- Lua: Fixed memscan.waitTillDone() when using it on the gui memscan.
- Lua: Fixed speedhack_setSpeed() not taking more than 3 digits.
- D3D Hook: Direct3D9 objects now support transparency.
- D3D Hook: Fix detection of which directx version is actually used for rendering.
- Dissect Data: Fixed the column click detection when scrolled.
- Auto Assembler: Fixed some commands not highlighting properly.
- Ultimap: Fixed ultimap so it now works in windows 8.
- Ultimap: Fixed the hotkeys.
- Ultimap: Fixed the hint popup for pre-emptive flushing.
- Symbols: Fixed a problem where 32-bit modules where detected as 64-bit.
- Memory Scan: Fixed next scan causing a buffer overflow in some rare situations.
- Form Designer: Fixed a problem where deleting a non visible object failed (press the delete key in the object inspector tree).
- Trainer Designer: Fixed the go back to generated form from functioning and related issues.
- PE-Info: Fixed a possibility where a bad PE header could cause an read error.
- Memory view: Hexview: Fix 8-byte value editing.
- Syntax Highlighters LUA/AA: Fixed UTF8 encoded text.
- Syntax Highlighters AA: Added xmm registers.

v6.1 [Jun 2, 2011]
- Fixed DBVM from not working
- Fixed Kernelmode debugging with DBVM in 64-bit
- Several disassembler fixes
- Scanning errors now show the error
- Fixed a few 16-bit assembler instructions
- Fixed doubleclicking the assembler scan going to 00000000
- Fixed the assembler scan going from ffffffff back to 0 and starting over again
- Fixed autoattach causing huge memory leak
- Fixed clicking nextscan when having 0 results
- Fixed 8 byte scans so they it can now scan negative values
- Prevent a 32-bit plugin from showing up error messages when loaded in the 64-bit ce version (It won't work)
- Fixed the VEH debugger from not handling int3 breakpoints properly
- Fixed XMM registers in the veh debugger

Alternative downloads

Quick Memory Editor
Quick Memory Editor
rating

Powerful game hack software that can cheat games easily.

Pcsx2 Cheat converter
Pcsx2 Cheat converter
Free
rating

Designed to change raw codes into pscx2 format.

KongHack Ultra Trainer
KongHack Ultra Trainer
Free
rating

You can get gem crafts and badges that will increase your character's level.

War Commander HeX Codes
War Commander HeX Codes
Free
rating

It brings you all the Hex Codes for the War Commander game.

Geography Trainer
Geography Trainer
Free
rating

This tool is meant to help you learn country capitals.