Cheat Engine

Main

Forum

About Cheat Engine

About DBVM

Bugtracker

Downloads

Tutorials

GIT

Lua Extensions

Twitter

FAQ

Contribute

Cheat Engine Wiki



Become a Patron! Check it out



Know programming?
Looking for a job?
Try patreon!





Privacy Policy
Contact


Cheat Engine

Download Cheat Engine 7.3 for Mac

Trouble running Cheat Engine? Check out the known github issue here on how to solve it

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

August 26 2021:Cheat Engine 7.3 Released for Windows and Mac for everyone:

August 14 2021:Cheat Engine 7.3 Released for Windows and Mac for Patreons (public will be here soon):

I'm happy to announce the official release of Cheat Engine 7.3 for all my patreon members (The public release will be here any day now. Waiting for the advertisers / network owners to sign of on it) Edit:Done
My patreon members can get it here

Please report bugs and give feature requests for next version so I can make it even better.


Additions and changes:

  • Added dark mode support (restart CE when you change the setting)
  • All saved results are now shown in the foundlist (can be turned off)
  • Groupscan now supports pointer wildcards. (only valid if the field is a proper pointer)
  • Hotkeys can be repeated by releasing the key and repressing if the repeat timer hasn't finished yet
  • Structure dissect add to addresslist uses the addressstring instead of number, so symbols will be preserved
  • Structure dissect now has a option to save the previous state of a column and show changes easier
  • Middle-mouse clicking now copies the value of a structure element to your clipboard
  • Added {$LUACODE} blocks for inline Lua coding
  • Added a c-compiler to CE
  • Added {$C} blocks to the auto assembler. all {$C} blocks get combined into one script before execution
  • Added {$CCODE} blocks for inline C coding (Check the forum, wiki, CE patreon discord or CE's youtube)
  • Added a C# compiler (compilecs)
  • Added routines to do .NET(and mono) method detouring. .NET info has a new contextmenu where you can create a detour template for the autoassembler
  • Added invoke method to the .NET Info window as well
  • [Disable] sections can now reference labels, defines, AOBScan results, and allocs created in the [ENABLE] section
  • Userdefined symbollist has a secondary list for CCode symbols
  • The change address window now also supports relative offsets
  • DBVM speed improvements
  • DBVM has an extra security level, and added dbvm_setKeys to easily change the access codes
  • DBVM has now some basic support for nested VM's (only so you can run them, not yet modify)
  • New debugger interface: DBVM-level debugger
  • Improved performance of "Find what access/writes this address"
  • Dissect code now lets you specify custom ranges
  • Addresslist value sort now sorts values by alphabet if the record is a string type
  • The dropdown list of multiple entries can now be changed at the same time
  • Standalone register window now shows flags values as well
  • Value Between scans now autoswap the order if the first value is bigger than the 2nd

  • Fixes:
  • fixed some games freezing CE when symbols where accesses
  • Lua debug now shows for loop variables
  • several windows now save their position, and won't get corrupted if you don't show them the first time running CE
  • fixed createthreadandwait when using a timeout
  • fixed disassembling vcvtsi2ss
  • fixed compare to first scan if it's a large block, and made it more efficient
  • ceshare: logout fixed
  • fixed assembling movsq
  • fixed ultimap ret filter
  • fixed luapipe never calling OnError
  • fixed vehdebug in 64-bit CE zeroing out the FPU registers in 32-bit targets
  • fixed DBVM find what access/writes sometimes skipping entries on AMD
  • fixed undo not working on memory records when using the single line editor
  • fixed hide children group option when loading a table
  • fixed some font issues in the break and trace window
  • fixed pasting the other types in hexadecimal view
  • fixed the symbolloader fully crashing on unknown pdb symboldata

  • lua:
  • saveTable won't ask to sign the table anymore
  • messageDialog will work if you omit the buttonlist. (Defaults to mbOK then)
  • added more customizabe button
  • registerSymbol no longer errors out the whole script on failure. It now overwrites existing symbols
  • and many other things...
  • New functions: form.saveToStream compile() compilecs() signExtend signTable symbollist.getModuleList symbollist.getSymbolList memscan.getSavedResultHandler memscan.getSavedResultList SavedResultHandler class

    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:
    changes:

    Post release patches:
    8/21/2019: Fixed when scripts load other scripts using files in non ascii language encodings
    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