tag:github.com,2008:https://github.com/cheat-engine/cheat-engine/releases Release notes from cheat-engine 2023-02-23T20:52:23Z tag:github.com,2008:Repository/34163206/7.5 2023-07-15T06:20:54Z Cheat Engine 7.5 <p><strong>Changes</strong>:<br> <em>from patreon 7.4.3 to public 7.5:</em></p> <ul> <li>removed the driver requirement for the access memory regions tool</li> <li>added 1 byte jmp instructions (that will install an exeption handler and place an int3 at the location)</li> <li>added a scanoption so you can skip unpaged memory. (should prevent targets from eating up RAM when scanned)</li> <li>reassemble() now rewrites an instruction using multiple lines when needed</li> <li>make some error messages more descriptive</li> <li>added an option to center the highlighted disassembler code to the center</li> <li>added an explanation why the driver won't load and a link with info on how to get it to load for now</li> <li>memoryrecord hotkeys can now be disabled individually</li> <li>codefilter: unwind info now gives less bad results</li> <li>added support for pseudo-ops like cmpss/sd/ps/pd</li> <li>lua: added ceserver commands</li> <li>lua: show a stacktrace on execution error</li> <li>lua: added convertToUTF8(stringbytetable, regioncode)</li> <li>made loading CT files with signatures possible under wine and proton</li> </ul> <p><em>from patreon 7.4.2 to patreon 7.4.3:</em></p> <ul> <li>ceserver: pipe support (mono data dissector)</li> <li>ceserver: added change memory protection capability</li> <li>ceserver: Available options can now be sent to the CE GUI</li> <li>.netinfo: Replaced the fields view with a tree</li> <li>network config: The processlist now has focus after opening a server</li> <li>lua: added virtualstringtree</li> <li>lua: added invertColor</li> <li>lua: added disassembleBytes(bytestring)</li> <li>autoassembler: now a visual warning is shown when nearby allocation fails</li> <li>autoassembler: the templates now generate 14 byte jmp safe original code blocks as well</li> <li>pointerscan now has a deviation option for "pointer must end with offset" to help find pointers back after update</li> <li>ultimap: added copy selected results to clipboard</li> </ul> <p><em>from patreon 7.4.1 to patreon 7.4.2</em></p> <ul> <li>ipt: Added intel process trace feature provided by microsoft.</li> <li>ceserver: Improve the modulelist fetch speed, more stable</li> <li>ceserver: option to disconnect from closed ceservers</li> <li>ceserver: the discovery list is now also a history list</li> <li>ceserver: implement injection on arm64 as well</li> <li>ceserver: also gets the fpu registers now</li> <li>assembler x86_64: prefer mov rax,[rip+xxx] over mov rax,[imm64]</li> <li>disasembler x86_64: switch from r#l to r#b because why not</li> <li>mono: the dll now has a versioncheck so that you don't accidentally mix monodatacollector dll's</li> <li>mono: deal with situations where there is no mainform</li> <li>mono/.net: the methodlist is now sorted by name</li> <li>better arm disassembler and assembler</li> <li>better arm64 disassembler and assembler</li> <li>the scanregions can be saved/loaded upon close/start ce (seperate option in settings)</li> <li>added an option to skip loading .PDB files</li> <li>a lot more functions are exposed to newstate threads</li> <li>added ranges scans to groupscan</li> <li>freeze+allow increase/decrease now also looks if the value is signed</li> <li>trainers: Forms and controls now scale based on DPI</li> <li>changing record showassigned/showashex now also applies to other selected entries</li> <li>texttraces now don't save as .cetrace but as .txt now</li> <li>ccode: #include now searches table files for files there as well</li> <li>ccode: the internal symbolhandler can now deal with stdcalled function symbols</li> <li>lua: added ImageIndex property to TTreeNode</li> <li>lua: added OnValuechanged and OnValueChangedByUser callbacks to MemoryRecord objects</li> <li>lua: added getOpenedFileSize()</li> <li>lua: added onHelpEvent callback</li> <li>lua: added releaseDebugFiles()</li> <li>lua: added enumRegisteredSymbolLists() and enumRegisteredSymbols()</li> <li>lua: added getBitmap method to ImageList objects</li> </ul> <p><em>from public 7.4 to patreon 7.4.1:</em></p> <ul> <li>added .Visible property to treenode entries</li> <li>added .VisibleRowCount and .TopItem to listviews</li> <li>added arm64 disassembling and assembling</li> <li>added lua function "runCommand"</li> <li>added a radiobutton to select if the generated script will use 5 or 14 byte jmps.</li> <li>conditional jumps can now deal 2gb+ destinations (will get rewritten)</li> <li>dotnetinfo: Performance improvement</li> <li>memory record hotkeys now have a "Only while down" option</li> <li>Updated the dbghelp to a more recent version which can better handle nowadys pdb symbols</li> <li>different memory allocations now get placed within the initial allocation block. Protection is changed afterwards</li> <li>tracer can now step over rep instructions</li> <li>lua stringstream now inherits from memorystream, so you have access to the Memory field</li> <li>lua: Added a callback for whenever the structure list is modified</li> <li>added architecture distinguishing to ceserver</li> <li>pressing escape in the hotkey form will now close it</li> <li>added nested structure support</li> <li>added string based custom types</li> <li>ctrl+enter in the disassembler now shows relative addresses from that point</li> <li>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</li> </ul> <p><strong>Fixes</strong>:<br> <em>from patreon 7.4.3 to public 7.5:</em></p> <ul> <li>vehdebug: Fixed a case where a new thread creation or other event would cause another event that would trigger at exactly the same time to get the exception ignored and just continued</li> <li>monodatacollector: fixed invoke method</li> <li>dotnetdatacollector: Fixed issue of loading a wrong version of dbgshim.dll</li> <li>fixed disassembling cvtdq2pd</li> </ul> <p><em>from patreon 7.4.2 to patreon 7.4.3:</em></p> <ul> <li>ceserver: Fixed extension loading in some cases</li> <li>ceserver: fixed stepping on x86 targets</li> <li>fixed the name showing as [physical memory] instead of the filename when opening a file</li> <li>fixed a rare error when scanning using specific options</li> <li>fixed some documentation in celua at some points</li> <li>fixed stackview in "more info" being garbage/access violation</li> <li>fixed tracer search for instructions ending with ]</li> <li>fixed enumExports lua function</li> <li>fixed issue where vehdebug would crash</li> <li>fixed the assembler from handing [rex+reg*x] as a symbol when debugging</li> <li>fixed the disassembler backlist</li> <li>fixed termination issue on the memscan object</li> </ul> <p><em>from patreon 7.4.1 to patreon 7.4.2</em></p> <ul> <li>Fixed the tracer search for instructions ending with a ]</li> <li>VEH debug: Fixed the potential of invalid handles being used</li> <li>Kernelmode debug and VEH debug: Fixed setting context on non suspended threads</li> <li>fixed the lua_pcallk delegate in the c# plugin example</li> <li>fixed speedhack on wine 7.0</li> <li>fixed high dpi issue of structure dissect on first view</li> <li>fixed high dpi issue on find what access/writes dialogs</li> <li>restored the anchor editor (was gone in 7.4.1)</li> <li>fixed .net info instance lookup issue</li> <li>fixed customtypes getting marked as string (bug introduced in 7.4.1)</li> <li>fixed runcommand</li> <li>fixed modalforms from losing their text color internally (bug introduced in 7.4.1)</li> <li>mac: fixed some progressbars not properly updating</li> </ul> <p><em>from public 7.4 to patreon 7.4.1:</em></p> <ul> <li>fixed the all type not finding 4 types when double was deselected</li> <li>fixed the "all" type when not using double</li> <li>fixed ccode esp access in 32-bit and "reg"f types</li> <li>fixed disassembling when using binutils for disassembly</li> <li>fixed the tablefiles menulist eating memory because they didn't get deleted properly</li> <li>fixed .net issues that use obfoscated modules and missing metadata</li> <li>fixed paring value starting with a - or +</li> <li>fixed assembling pmovmskb</li> <li>fixed disassembling vgather* vex256 instructions and allow usage of xmm/ymm registers as address (for instructions that allow it. Like this one)</li> <li>fixed the addresslist not giving a proper error when using multiple enable or disable section</li> <li>fixed error when using ctrl for speedhack hotkeys</li> <li>fixed the groupscan command parser from assigning wildcard to the wrong combobox</li> <li>fixed disassembling xchg eax/rax,xxx</li> <li>fixed lua custom type registering as float when using the non lua function method</li> <li>fixed small memoryscan issue for data at the end of a memoryblock</li> <li>ccode doesn't register useless symbols anymore</li> </ul> cheat-engine tag:github.com,2008:Repository/34163206/7.4 2026-01-27T15:11:12Z Cheat Engine 7.4 <p><strong>Additions and changes:</strong></p> <ul> <li>AA templates now generate 14 byte jmp scripts when holding down ctrl</li> <li>Foundcode dialog: Replace now toggles between nop and original. Also prevents duplicates</li> <li>improved keyboard control to the hexview in memoryview. You can now hold shift while using the cursors to move</li> <li>laststate isn't saved in tables anymore (unless ctrl is down)</li> <li>added some space for dbvm functions so it's less likely to click them</li> <li>you can now manually delete saved results</li> <li>debugger attach timeout window will now show the status on some debugger interfaces</li> <li>modules for 64-bit in 32-bit targets are more clearly marked as such</li> <li>mono will not try to re-attach after a disconnect</li> <li>lua: fixed copyMemory mode 2</li> </ul> <p><em>from 7.3.1-7.3.2:</em></p> <ul> <li>structure dissect watch for changes now also shows you when something has changed inbetween</li> <li>added hints to how the pointer wildcard works</li> <li>created an alternate named CE version that runs without admin (not an UCE, do not think it is one, you will be disappointed)</li> <li>the replace button in foundcode dialog now supports multiselect</li> <li>You can now also change values of groupscan scan results directly in the foundlist</li> <li>lua's openProcess command now won't deactivate all entries when previously no process was selected</li> <li>you can now edit instructions with a breakpoint on them</li> <li>added linux ABI c-compiler dll's</li> <li>by default mono now releases the .net thread</li> </ul> <p>from 7.3.2-7.4:</p> <ul> <li>added shortcut to add this address to addresslist in hexview (ctrl+numPlus)</li> <li>goto address popup now centers on the memview window, instead of screen center</li> <li>you can now change the font of the tracer tree</li> <li>added isRep to the lua LastDisassemblerData field. And stepover now steps over rep instructions</li> <li>break and trace: Added 'stay within module' option</li> <li>added custom alignment option to the hexviewer section of the memoryviewer</li> </ul> <p><strong>Fixes:</strong></p> <ul> <li>fixed loading back highligter config for auto assembler windows</li> <li>.netinfo: fix field searching</li> <li>fixed disassembler issues/memory corruption when closing a secondary memoryview window</li> <li>fixed brake and trace killing the debugger when skipping certain modules an failing in figuring out the return address</li> <li>fixed auto attach not stopping the process flash</li> <li>mono is less likely to disconnect when dissecting an invalid memory address</li> <li>fixed checkbox and radiobutton not sizing properly in dark mode</li> <li>foundlist: display type override also afffects the saved columns</li> <li>foundlist: new scan now alsdo clears the saved results</li> <li>processlist: Fixed the highlighted color process entries in light mode</li> <li>fixed compare to first scan hotkey</li> <li>fixed handling of broken/empty language folders</li> <li>fixed network modulesize lookup. (needs a new ceserver build as well)</li> <li>fixed position saving for the foundcode dialog</li> <li>fixed lua errors not giving a proper errormessage</li> <li>fixed {$c} and {$ccode} for the 32-bit CE build</li> <li>fixed logging of writes to ignore the addresslist freezing(Skyrimfus)</li> <li>fixed dealing with -0.0f in c/ccode blocks</li> <li>fixed memscan on the last block of readable memory</li> <li>fixed dealing with the proper way of namespace.classname:modulename formatting. (Supports both formats)</li> <li>fixed error when using freeze by thread with a very small interval</li> <li>fixed {$ccode} and {$luacode} when not giving any parameters</li> <li>fixed some include files erroring out when used</li> </ul> <p><em>from 7.3.1-7.3.2</em>:</p> <ul> <li>network ceserver/linux: Fixed wpm corrupting the memory</li> <li>fixed the elf symbol parser</li> <li>fixed speedhack on linux</li> <li>il2cpp now has a progressbar</li> <li>fixed handling some newer il2cpp games</li> <li>fixed vmin assembling</li> <li>fixed the ceshare color (bug introduced in 7.3.1)</li> <li>fixed freezing when entering the wrong ceserver details</li> <li>fixed deleting groupscan entries from the scan</li> <li>fixed pointerscan not loading results when in a path with non-ascii characters</li> <li>fixed the standalone trainer maker giving an error about duplicate entries</li> </ul> <p><em>from 7.3.2-7.4</em>:</p> <ul> <li>lua: fixed readByte signextending when it shouldn't</li> <li>Fixed mono not injecting if you didn't have the visual studio debug dlls (introduced in 7.3.2</li> <li>fix changeregonbp where it only changed xmm0</li> <li>window position saving of "find what addresses this code accesses" should be more predictable</li> <li>fixed saving of some color preferences in hexview, and added the fadecolor</li> <li>fix AA createThreadAndWait not working in a standalone script</li> <li>improved stability of mono</li> <li>fixed break and trace ignore flag causing an stop instead of ignore on 64 bit targets</li> </ul> cheat-engine tag:github.com,2008:Repository/34163206/7.3 2026-01-27T15:11:35Z Cheat Engine 7.3 <p><strong>Additions and changes:</strong></p> <ul> <li>Added dark mode support (restart CE when you change the setting)*</li> <li>All saved results are now shown in the foundlist (can be turned off)*</li> <li>Groupscan now supports pointer wildcards. (only valid if the field is a proper pointer)*</li> <li>Hotkeys can be repeated by releasing the key and repressing if the repeat timer hasn't finished yet*</li> <li>Structure dissect add to addresslist uses the addressstring instead of number, so symbols will be preserved*</li> <li>Structure dissect now has a option to save the previous state of a column and show changes easier*</li> <li>Middle-mouse clicking now copies the value of a structure element to your clipboard*</li> <li>Added {$LUACODE} blocks for inline Lua coding*</li> <li>Added a c-compiler to CE*</li> <li>Added {$C} blocks to the auto assembler. all {$C} blocks get combined into one script before execution*</li> <li>Added {$CCODE} blocks for inline C coding (Check the forum, wiki, CE patreon discord or CE's youtube)*</li> <li>Added a C# compiler (compilecs)*</li> <li>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*</li> <li>Added invoke method to the .NET Info window as well*</li> <li>[Disable] sections can now reference labels, defines, AOBScan results, and allocs created in the [ENABLE] section*</li> <li>Userdefined symbollist has a secondary list for CCode symbols*</li> <li>The change address window now also supports relative offsets*</li> <li>DBVM speed improvements*</li> <li>DBVM has an extra security level, and added dbvm_setKeys to easily change the access codes*</li> <li>DBVM has now some basic support for nested VM's (only so you can run them, not yet modify)*</li> <li>New debugger interface: DBVM-level debugger*</li> <li>Improved performance of "Find what access/writes this address"*</li> <li>Dissect code now lets you specify custom ranges*</li> <li>Addresslist value sort now sorts values by alphabet if the record is a string type*</li> <li>The dropdown list of multiple entries can now be changed at the same time*</li> <li>Standalone register window now shows flags values as well*</li> <li>Value Between scans now autoswap the order if the first value is bigger than the 2nd*</li> </ul> <p><strong>Fixes:</strong></p> <ul> <li>fixed some games freezing CE when symbols where accesses*</li> <li>Lua debug now shows for loop variables*</li> <li>several windows now save their position, and won't get corrupted if you don't show them the first time running CE*</li> <li>fixed createthreadandwait when using a timeout*</li> <li>fixed disassembling vcvtsi2ss*</li> <li>fixed compare to first scan if it's a large block, and made it more efficient*</li> <li>ceshare: logout fixed*</li> <li>fixed assembling movsq*</li> <li>fixed ultimap ret filter*</li> <li>fixed luapipe never calling OnError*</li> <li>fixed vehdebug in 64-bit CE zeroing out the FPU registers in 32-bit targets*</li> <li>fixed DBVM find what access/writes sometimes skipping entries on AMD*</li> <li>fixed undo not working on memory records when using the single line editor*</li> <li>fixed hide children group option when loading a table*</li> <li>fixed some font issues in the break and trace window*</li> <li>fixed pasting the other types in hexadecimal view*</li> <li>fixed the symbolloader fully crashing on unknown pdb symboldata*</li> </ul> <p><strong>lua:</strong></p> <ul> <li>changes:*</li> <li>saveTable won't ask to sign the table anymore*</li> <li>messageDialog will work if you omit the buttonlist. (Defaults to mbOK then)*</li> <li>added more customizabe button*</li> <li>registerSymbol no longer errors out the whole script on failure. It now overwrites existing symbol*<br> <em>.. much more. check celua.txt</em></li> </ul> cheat-engine tag:github.com,2008:Repository/34163206/7.2 2020-11-04T09:47:12Z Cheat Engine 7.2 <p><strong>Additions and changes:</strong></p> <ul> <li>Big Endian custom types. You can enable them in settings if you like</li> <li>Commonality scanner now also compares the base address. (handy in case it's more than one register)</li> <li>translation support for ceshare</li> <li>smartedit now also deals with isPointer and isOffset memrecs</li> <li>referencedfunctions filter improvement</li> <li>PE section display/parsing for addresses</li> <li>D3D hook now asks if you're sure you wish to use it (in case of accidental click)</li> <li>Memoryview hexadecimal view: can now show custom types and changing memory protection depends on the selected byte(range)</li> <li>Break and trace window now supports searching the referencedAddress, referencedBytes and Instruction</li> <li>When changing a memoryrecord value, you can reference 'value' and apply math to it</li> <li>Added a "File-&gt;Load Recent..." menulist</li> <li>Added an option to autosave (in settings)</li> <li>Added .netcore support to the dotnet data collector</li> <li>Added a syntaxcheck menuoption to the CE lua script window</li> <li>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</li> <li>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</li> <li>Some extra foundlist preferences</li> <li>Find out what access/writes now resolved the address to string (when it has time)</li> <li>CEShare now has a list of games that have tables</li> <li>AA: dealloc(*) - Now deallocated all memory a script allocated</li> <li>AA: unregistersymbol(*) - Now unregisters all symbols a script registered</li> <li>Added a more userfriendly .net inspector</li> <li>Autoattach won't open itself anymore</li> <li>CEShare now has a list of all available tables</li> <li>Code Dissect now deals with relocated memory modules when loading a state back</li> <li>Lua Formula scan has an alternate scan option which allows for more than 1 thread</li> <li>Change Value of memory records can now deal with math</li> </ul> <p><strong>Fixes</strong></p> <ul> <li>Auto Assembler: Fixed getting weird numbers for newmem when using the templates to add new scripts</li> <li>Unknown initial value scan for 2GB+ regions failed</li> <li>Resolved issue where typecasts where replaced by addresses. (having a memoryrecord named float, would break AA scripts that'd use (float))</li> <li>AMD support for DBVM</li> <li>Memoryrecord hotkeys showing up in the settings window as bring to front. Where clicking OK would then set it to that</li> <li>Copy paste bug in the form designer</li> <li>Hotkeys swapped comma and period on display</li> <li>Resolved some issues with the forced module loader, and if it fails, don't freeze CE forever</li> <li>AutoAssemble local would fail after opening a process</li> <li>Pointermap based rescan</li> <li>Assembler: (v)insertps , (v)comiss, (v)blendvp(s/d)</li> <li>Kerneldebug is more stable on newer windows builds</li> <li>Lua/Mono: Better support for utf8 strings</li> <li>Lua/Mono: Support targets that use mono, but not unity</li> <li>Lua/Mono: UWP targets work better</li> <li>LuaEngine: Autocomplete won't lowercase functions anymore if they are lua functions</li> </ul> <p><strong>Lua</strong></p> <ul> <li>Fixed executeMethod for widestrings (type4)</li> <li>Fixed AOBScanUnique truncating addresses</li> <li>AddressList['description'] works now as well</li> <li>some scripts variables that used to be global are now local</li> <li>injectDLL has a new parameter to specify if CE should reload the symbols</li> <li>getNameFromAddress has a new parameter to specify if you wish section names (default=false)</li> <li>TfrmLuaEngine: document the mOutput and mScript properties</li> <li>loadModule now has an optional timeout value</li> <li>added an interface for the DotNetDataCollector</li> <li>implemented RemoteExecutor , which is a class which can execute remote memory fastyer than ExecuteCodeEx while keeping the same capabilities</li> <li>createClass and createComponentClass won't access violation anymore for giving an unsupported name<br> And a bunch of new functions and classes/methods/properties. Check out celua.txt</li> </ul> <p>11/04/2020: Fix scripts that use some of the obsolete unsupported functions</p> cheat-engine tag:github.com,2008:Repository/34163206/7.1 2026-01-12T00:42:53Z Cheat Engine 7.1 <p><strong>Additions and changes:</strong></p> <ul> <li>Added support for il2cpp (mono)</li> <li>Added support for .NET dll plugins</li> <li>Change register on breakpoint now also affects FP and XMM registers</li> <li>Added CEShare, a way to share your tables with other people</li> <li>Improved disassembling</li> <li>copy bytes+addresses now only does bytes+addresses</li> <li>call filter can now use the unwind data for functions to get a decent list of instructions</li> <li>structure dissect shows the pointerpath at the bottom</li> <li>Follow register while stepping (rightclick the register to show the option)</li> <li>registersymbol and label now support multiple definitions in one line</li> <li>improved the speed of the structure list when getting data from a pdb</li> <li>hexview: doubleclicking a non-byte value now shows in the type you set</li> <li>added sorting to the found code dialog</li> <li>added filtering to the changed addresses window</li> <li>the debugger settings won't lock from changing anymore, still needs you to reopen a process to have an affect</li> <li>added always hide children groupoption</li> <li>group headers can act as address now</li> <li>AA command createthreadandwait now has a timeout parameter</li> <li>Assembler scanning improvement</li> <li>Added an AVX2 version of CE, which will speed up all those floating point operations CE does so much...</li> <li>Improved structure lookup for PDB files</li> <li>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</li> <li>Structure dissect can detect vc++ and object pascal classnames now</li> <li>Dissect code now also detects references to strings</li> <li>Sorting the addresslist now sorts faster and more properly with regards to groups (depends on the level your current selection is)</li> <li>Rightclick the addresslist header to bring up a menu which allows you to disable sorting</li> <li>Improved the processlist responsiveness</li> <li>The chosen floating point rounding type is now saved in the registry</li> <li>You can now use (addresslist description) as an address</li> <li>Improved autocomplete</li> </ul> <p><strong>Changes:</strong></p> <ul> <li>DBVM doesn't activate the TSC hook by default. You can still activate it by using dbvm_enableTSCHook()</li> </ul> <p><strong>Fixes:</strong></p> <ul> <li>Fixed memoryleak when opening a file for hexediting again</li> <li>Fixed utf8 display of the dissect windows window</li> <li>Clear the taskbar progress when using a custom scan</li> <li>Hexview: Fixed changing the address when pressing a non char key</li> <li>Hexview: Fixed changing the address when doubleclicking and then canceling</li> <li>alloc with a prefered base is now more aggressive in getting the range you want</li> <li>fixed mono symbol lookup while dlls are still being loaded</li> <li>fixed the structure compare not giving a proper errormessage</li> <li>fixed improper error messages in structure dissect</li> <li>fixed opening process in XP</li> <li>fixed potential deadlock with the symbolhander</li> <li>fixed issue with using the process var as symbol</li> <li>fixed default form size for some windows when using high DPI</li> <li>fixed DBVM on systems that have the default MTRR set as 6 (e.g Asus systems)</li> <li>fixed DBVM find what accesses with large datasets<br> Lua<br> New functions:<br> function onTableLoad(before)<br> sendMessageTimeout<br> createTimer(delay,function())<br> createStructureFromName()<br> createSynEdit()<br> changes:<br> fixed executeCodeLocalEx with certain parameter definitions<br> fixed openFileAsProcess<br> checkSynchronize has a timeout now<br> OnGetDisplayValue now also works on AA records(&lt;script&gt;)</li> </ul> cheat-engine tag:github.com,2008:Repository/34163206/7.0 2026-01-27T15:12:08Z Cheat Engine 7.0 <p><strong>Additions and changes</strong>:</p> <ul> <li>Icons</li> <li>Added a way to dissect and show a function's working using a diagram</li> <li>Auto repeat option for unchanged value scans</li> <li>Added lua formula scans</li> <li>Moved the compare to first/saved from scan type to a checkbox</li> <li>Added a scanner that can detect and undo memory changes in the target process code sections (patch scanner under tools in memview)</li> <li>The tutorial now has a link to online help for each step</li> <li>Added a toolbar for stepping while debugging</li> <li>When a memoryrecord fails to activate, you can rightclick it and see why it failed</li> <li>AutoAssembler will now cut down on the nop's used</li> <li>Better error reporting in autoassembler scripts</li> <li>DBVM can now dynamically adjust the TSC. This can be disabled if it causes performance issues with dbvm_setTSCAdjust(disable)</li> <li>speedhack now also hooks gettickcount64</li> <li>added dw 'utf16string' support</li> <li>implement VPID support in DBVM (performance increase)</li> <li>kernelmode-&gt;driverlist now also shows driver exports</li> <li>kernelmode symbols now also show in the enum dll's and exports</li> <li>change the way slow symbol lookup is handled</li> <li>several small updates to the codecave scanner</li> <li>several small updates to the hexview find window</li> <li>Use defered pdb loading instead of waiting for it</li> <li>Several more windows have been made DPI Aware</li> <li>Add option to show processid's as decimal in the processlist</li> <li>When pressing shift+space instead of space to follow an instruction you will now open a new memview window</li> <li>Added *:undefined support for dropdown lists</li> <li>Added init.lua files for translations to use</li> <li>Stackview now shows symbolnames as well</li> <li>Some extra windows will now save their location</li> <li>Exe trainer generator now lets you change the default files</li> <li>The description of conditional jumps is better to understand now</li> <li>Ultimap2 can now keep the tracer files and scan kernelmode memory as well if desired</li> <li>Groups now get created afgter the selected item</li> <li>Smartedit can now also 'smart'-edit children</li> <li>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</li> <li>Floating point screen will now stay within the screen</li> <li>Clicking execute in the lua engine will now change focus back to the editor field</li> <li>Debugger interface settings will now only lock after a succesful attach</li> <li>Some translation improvements here and there</li> <li>DBVM changeregonbp's are now displayed in CE's interface as well</li> <li>The foundlist colors can be customized now</li> <li>Improved DBVM cloak performance when more than 20 regions are cloaked</li> <li>Implemented DBVM based execute watch and "find what addresses this code accesses"</li> <li>Implemented DBVM breakpoints (They always execute afterwards, including execute bp's)</li> <li>Improved autocomplete so it now doesn't delete old code</li> <li>Added hotkeys to ultimap2</li> </ul> <p><strong>Fixes:</strong></p> <ul> <li>fixed BSOD in recent windows updates</li> <li>fixed VEH debug not handling breakpoints when a thread is created/destroyed right at the same time as a breakpoint</li> <li>fixed the stacktrace in 64-bit targets</li> <li>fixed rounded Extreme for float and double scans</li> <li>speedhack now waits for proper dll injection</li> <li>several disassembler instructions</li> <li>some assembler instructions</li> <li>improved the stability of dbvm find what * routines</li> <li>fixed the hit counter in dbvm find what * routines</li> <li>fixed kernelmode symbol loading</li> <li>fixed DBVM memoryleak when disabling watches</li> <li>fixed DBVM internal memory manager (more stable now)</li> <li>fixed internal VirtualToPhysicalCR3 when dealing with 2MB+ pagesizes</li> <li>fixed using megajmp's in cloaked regions</li> <li>fixed speech when using async records</li> <li>fixed executeCodeEx for more than 4 parameters</li> <li>fixed static field script in mono by adding 64-bit codegeneration</li> <li>fixed mono process crashing in some cases</li> <li>fixed megacall following</li> <li>fixed NO_CACHE memory being scanned anyhow even if it was disabled</li> <li>fixed dealing with floating point values that are too big to be useful</li> <li>fixed setting DR7 to a strange value when using global debug</li> <li>fixed clearing DR6 when in the wrong process in kernel debug</li> <li>fixed triggering kernelmode breakpoints in locations you can not properly break (no interrupts)</li> <li>fixed loading dbvm inside dbvm inside dbvm inside dbvm</li> <li>fixed autoassembler replacing words in quoted strings</li> <li>fixed processwatcher not getting a proper PID</li> <li>fixed hotkeys triggering changed/unganged for types they aren't supposed to</li> <li>fixed showing dr2, dr3 and dr4 types in the threadlist</li> </ul> <p>lua:<br> New functions:</p> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" 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"><pre class="notranslate"><code> 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 </code></pre></div> <p>changes:</p> <ul> <li>getWindowList now returns the results just like ce's window list</li> <li>documented OnChangeBounds for the Control class (was already there, now documented as well)</li> <li>executeCodeEx can now also taker just parameters without typedefs</li> <li>added Data field to ListItem's</li> <li>added description field to memrec.createHotkey method</li> <li>added clear method to the menuItem class</li> <li>readStringEx() can now deal with partial memory reads</li> <li>executeCodeEx: Fixed more than 4 parameters</li> <li>added Point type</li> <li>fixed editbox selstart/sellength types, and added CaretPos</li> <li>added HeaderSection class and document HeaderSections</li> <li>added roundRect, drawFocusRect and textRect to the Canvas.</li> <li>added ansicode character support for textRect</li> <li>added loadFromStream and saveToStream to the RasterImage class</li> <li>added readAnsiString and writeAnsiString to the Stream class</li> <li>Better document the mode field of createFileStream</li> <li>Expose the handle of the LuaPipeServer</li> <li>Publish frmTracer</li> <li>Publish frmUltimap2</li> <li>Publish frmCodeFilter</li> <li>Publish imagelist</li> <li>Added the DrawItemEvent general GUI property to Lua's callback system</li> <li>Added the MenuDrawItemEvent general GUI property to Lua's callback system</li> <li>Added the ContextPopupEvent general GUI property to Lua's callback system</li> <li>Created a new Diagram class group which can allow you to create graphs and diagrams</li> <li>Memoryrecord.DropDownValue and DropDownDescription work now (still RO)</li> </ul> <p>08/21/2019:<br> Fixed loading existing files for asian users (textencoding was turned on, but that broke old files)<br> Added extra last minute highlighter options thanks to mgr.inz.player</p> <p>08/25/2019:<br> Fixed UTF8 copy/paste in addresslist<br> Fixed loading/editing forms<br> Fixed createFileStream</p> <p>08/27/2019:<br> Fixed lua pipe strings (mono uses it)</p> cheat-engine tag:github.com,2008:Repository/34163206/6.8.3 2019-02-07T19:12:40Z Cheat Engine 6.8.3 <p><strong>Fixes</strong><br> debugging/stepping with hotkeys<br> several high DPI visual glitches<br> VEH debugger reattach works again<br> Pointerscan resume works again<br> Stackview can now show by reference , previously it did nothing<br> disassembling imul<br> speedhack while key down option<br> assembling values with x*2/4/8<br> the "resume thread" in the threadlist now resumes threads instead of freezing them<br> fixed an error popping up when editing registers with no debugger attached<br> getNameFromAddress will not show userdefined symbols when symbols are disabled</p> <p><strong>Additions and changes</strong><br> Waiting till all symbols have been loaded has been removed<br> Launching structure compare from dissect data now only needs 1 address, though it's recommended to have at least 2 each<br> Code completion in lua engine is now more smoother<br> You can now compare traces generated by the tracer<br> Threadlist window now has a copy to clipboard<br> Structure compare now digs deeper into pointers<br> Pointerscan import/export now works with newer types as well<br> Better Lua comment support<br> Added rudimentary sort to the structure compare window (based on levelwidth only)<br> Referenced strings now also shows if it's unicode<br> Formdesigner now has a context menu to add undocumented controls</p> <p><strong>lua</strong><br> added enumMemoryRegions<br> added getWriteLog (Let's you get the writelog and activate it)<br> HexadecimalView: added the OnCharacterRender and OnValueRender events</p> cheat-engine tag:github.com,2008:Repository/34163206/6.8.2 2018-12-20T15:36:35Z Cheat Engine 6.8.2 <p><strong>Fixes</strong>:<br> Disassembler: Several disassembler instructions had a comma too many or too few ,fixed those<br> Disassembler: Fixed the description for ret #<br> Disassembler/Debug: Fixed the address that is being edited when a breakpoint hits while editing an instruction<br> Assembler: Fixed assembling reg*2/4/8+unquotedsymbol<br> Plugin: Fixed the SDK for C plugins that use the disassembler callback<br> Hotkeys: Fixed the attach to foreground hotkey<br> Memory Scan: Fixed the percentage scan<br> Memory Scan: Fixed a rare situation that could cause an error<br> Memory Scan: Simple values now works with groupscan<br> Memory Scan Lua: Scanfiles now also get deleted if the memory scan object is freed before the scan is fully done<br> Fill Memory: Now allows 64-bit addresses<br> Structure Dissect: Fixed the popupmenu "change type" so it now affects all selected entries instead of just the first<br> PointerOrPointee window: Fix the debug pointer or pointee window button text when using access instead of writes<br> GUI: Fixed and restored the DPI Aware option in setting<br> GUI: Some DPI fixes/adjustments here and there<br> Graphical Memory view: Fixed DPI issues<br> Symbolhandler: When the symbolhandler now waits till it's done, it won't wait for the structures to be parsed anymore</p> <p><strong>Additions and changes</strong>:<br> Lua Engine: Added autocomplete<br> DLL injection: On DLL injection failure CE tries to fall back on forced injection methods<br> Assembler: Added multibyte NOP<br> Plugins: Plugins can now have side dll's that are statically linked in their own folder (Windows 7 with updates and later)<br> Debugging: Improved the FPU window editing when single stepping, allowing you to change the FPU registers<br> Debugging: Threadview now updates when single stepping and cnanges made there will affect the currently debugged thread (before it didn't)<br> Debugging: Added Code Filter. This lets you filter out code based on if it has been executed or not (Uses software breakpoints)<br> Debugging: Added an option to chose if you wish to break on unexpected breakpoints, and if CE should break on unexpected breakpoints, or only on specified regions (like AA scripts)<br> Disassembler: The comments now show multiple parameters<br> Pointerscan: Add option to allow negative offset scanning<br> Pointerscan: Add extra types to the display<br> Advanced Options/CodeList: Now uses symbolnames<br> Tutorial Game: Added a levelskip option when you've solved a step<br> Tutorial Game: Added a secondary test<br> Compare memory: Added a limit to the number of address values shown per row (can be changed)<br> Address List: When the option to deactivate children is set, the children will get deactivated first<br> Memory Scan: Add a lua script in autorun that lets you specify which module to scan</p> <p><strong>lua</strong>:<br> ExecuteCodeEx(Let's you execute code in the target and pass parameters)<br> Added 2 new parameters to getNameFromAddress (ModuleNames and Symbols)<br> Added addModule and deleteModule to the symbollist class<br> Added the ModuleLoader class which can force load dll's<br> Fixed endUpdate for the listview</p> cheat-engine tag:github.com,2008:Repository/34163206/v6.8.1 2018-06-23T10:10:32Z Cheat Engine 6.8.1 <p>Mostly a bugfix version of 6.8, but it does have a few minor additions</p> <p><strong>Fixes</strong>:<br> Fixed several issues with the structure compare<br> Fixed the commonality scanner from picking up unrelated registers for comparison<br> Fixed speedhack hotkeys<br> Fixed ultimap 1<br> Fixed a bunch of random access violations<br> Fixed Lua dissectCode.getStringReferences now also returns the string<br> Fixed Lua breakpoints that specify a specific function<br> Fixed Lua toAddress when the 2nd parameter is an address<br> Fixed assembling xmm,m32<br> Fixed issue when disassembling AVX instructions<br> Fixed rightclicking r8-r9 in the registers window<br> Fixed the plugin system for DBVM<br> Fixed DBVM memory allocations when smaller than 4KB</p> <p><strong>Additions and changes</strong>:<br> Added translation strings for the all type settings<br> You can now drop files into the auto assembler<br> auto assembler commands allocnx (allocate no execute) and allocxo (allocate execute only)<br> The memoryview windows's hexadecimalview now shows the allocationbase as well, and can be doubleclicked to go there<br> Added support for mono dll's that do not export g_free<br> Improved DBVM speed slightly</p> <p><strong>lua</strong>:<br> added RemoteThread class object</p> cheat-engine tag:github.com,2008:Repository/34163206/6.8.1 2018-06-22T09:48:19Z 6.8.1 <p>Merge branch 'master' of <a href="https://github.com/cheat-engine/cheat-engine">https://github.com/cheat-engine/cheat-engine</a></p> cheat-engine