Cheat Engine

Main

Forum

About Cheat Engine

About DBVM

Bugtracker

Downloads

Tutorials

Cheat Tables

GIT

Lua Extensions

Twitter

FAQ

Gamehacking Wiki






Privacy Policy
Contact


Cheat Engine

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).
Download: Cheat Engine 6.6

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 or irc

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

    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 or irc

    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


    Juli 20 2015:French tutorial Update

    Redouane has made some corrections to the french tutorial translation files. The translation files can be found in the download section

    April 26 2015:French tutorial

    KeKeCoRe has translated the tutorial to french. The translation files can be found in the download section

    March 19 2015:Joining the Twitter fad:

    Since I'm surprised the Twitter fad still hasn't died out, I decided to join it. Someone already took cheatengine and cheat_engine, so you can go to @_cheatengine instead.
    No idea if I'll update it often, but I'll probably use it for new version releases and site updates when needed, and probably some experimental build notifications

    August 19 2014:MonoDataCollector update:

    The mono data collector has been updated with added support for 64-bit targets, and better support for targets that have renamed mono.dll to something else (You'll have to call LaunchMonoDataCollector() or mono_dissect() lua commands manually in those cases)
    You can get the updated files here. Just extract to the base of the cheat engine folder overwriting the existing files

    July 6 2014:DotNetDataCollector update:

    The dotnet data collector tool has been updated to also gather fields of base classes of the object you're currently investigating.
    You can get the updated files here. Just overwrite the ones in the cheat engine installation folder with the ones in this archive

    bla

    June 19 2014:Cheat Engine 6.4 Released:

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

    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 or irc

    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



  • Additions and changes:
  • Address List: Added a group option that shows a +/- sign in front of group entries
  • Address List: Pressing enter on a single entry now goes into value edit mode
  • Address List: Added an option so certain entries in the address list show a groupbox the user can pick from
  • Auto Assembler: New auto assembler templates that focus on Array of Byte scans(thanks to jgoemat)
  • Auto Assembler: The auto assembler can now handle {$LUA} and {$ASM} preprocessors for multiline lua scripts
  • Break And Trace: Added a donottrace.txt file in the base directory which holds a list of modules that should not be traced but stepped over instead
  • Pointerscan: Improved performance of the pointer scanner
  • Pointerscan: The pointerscan now has the option to generate a lot smaller .PTR files
  • Pointerscan: Added the ability to do a distributed pointerscan and pointer rescan
  • ProcessList: You can now type in the processlist to filter for the specific process
  • Network: Added a basic ARM assembler/disasembler
  • Network: The linux/android network version can now use basic debugging (find what access/writes)
  • Network: Added speedhack to the network version
  • Network: The network version now compresses read/write process memory before sending to the client. The compression level can be changed at runtime
  • Network: Added module injection for linux/android
  • Symbols: Added better support for .PDB debug files so parameters and local variable references show when that data is available
  • Symbols: Added support for .Net
  • Symbols: Added support for Java (proof-of-concept showing off the extendabilty of CE)
  • Symbols: Added support for Mono (^)
  • Memory view: Hexview: Added decimal display modes for the other types
  • Memory View: Added shift-scrollng to the hexview and disassembler so you can scroll by 1 byte changes instead of the default calculated sizes
  • Stack View: Added a search option
  • D3D Hook: you can now reattach the D3D hook to a process that previously had been hooked
  • Lua engine window: Added a search and replace option to the editor
  • Lua engine window: Added the ability to set breakpoints, inspect variables and step over lines
  • Lua engine window: Enabled tab indentation of blocks
  • Lua engine window: Some extra customization options
  • Trainer Generator: Replaced the beepOnAction with playSoundOnAction and added 2 build in activate/deativate sounds. (You can override them)
  • Trainer Generator: The XM file field now has a play button
  • Lua/Trainer Generator/Designer: Added several new components , propertes and methods.
  • Lua: Added a dll search path to cedir\clibs32 or cedir\clibs64 depending on which cheat engine version is used. Use it for lua extentions
  • Lua: Made it more forgiving about method and property names
  • Lua: Added some threading helper functions
  • Lua: You can now override the disassembler/assembler
  • Lua: Lots of other new features. Check out main.lua

  • again, big thanks to SER[G]ANT for providing us with the latest translation files for the Russian language

    Post release fixes (max 7 days after initial release *or 30 if a HUGE bug):
  • 20-06-2014: Fixed an issue with the driver not responding to Cheat Engine even if it has a proper signature
  • 26-06-2014: Fixed custom types in data dissect, fixed the Visible property of forms, and changed the way unreadable addresses are handled