Runtime Modifier

Main

Forum

About Runtime Modifier

About DBVM

Bugtracker

Downloads

Tutorials

GIT

Lua Extensions

Twitter

FAQ

Contribute

Runtime Modifier Wiki



Become a Patron! Check it out



Know programming?
Looking for a job?
Try patreon!





Privacy Policy
Contact


Runtime Modifier


Go here for other operating systems

Trouble installing/running Runtime Modifier? Check out the known github issue here on how to solve it, or join the rtm patreon

Read before download: You must be 18 years or older, or deemed an adult, to install Runtime Modifier. Runtime modifier is for private and educational purposes only. Before you attach Runtime Modifier 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 Runtime Modifier

May 29 2026:Runtime Modifier 7.7 Released for Windows, Mac and Linux for Patreons

It took a bit too long for a new public release. Sorry about that. But there's finally a new version of cheat engine out
My patreon members can get it here

(The public windows release will come in a few days)

Please reports bugs and give suggestions to improve Runtime Modifier so next version can be even greater!

Changes:

  • No more version numbering in the main caption. Only the about screen now has it
  • Memrec class now has an OnActivationFailure callback
  • globalalloc symbols do not save in tables anymore
  • added static field address lookup for .net core and microsoft clr
  • script tag can now be hidden
  • Lua: Added methods for OrderedList objects. Useful for accessing the History object of disassemblerview and hexview
  • Lua: LuaEngine windows now have their own luastate so breakpointed states won't get messed up by potential timers or other luaengine dialogs
  • fpu debug dialog now shows when values change while stepping
  • speedhack: mono/il2cpp with unity now should freeze the game when the game sets the speed to 0
  • dotnetinfo: added an enumstatic dialog
  • find what addresses this code accesses: changed the color of blue in the darkmode dialog
  • New table specific options
  • added completion to lua code in auto assembler
  • You can now dissect structures directly from dotnetinfo
  • added modulePreference for symbol loading. When multiple modules have the same symbol, this list determines which modules has priority. (Already populated for windows and linux)
  • break and trace: new option to break on trace stop
  • break and trace: trace until initial function exit
  • threadname support
  • waitForallsymbols now shows a dialog when it takes too long
  • custom types of the integer variant are now 8 byte in 64-bit CE
  • added several new custom type examples/templates
  • added a .net 8 example plugin
  • more info now has tabs
  • AutoAssembler: added {$ifdef} /{$endif} and {$ifndef}/{$endif} blocks
  • mono method lookup now supports generics and parameters
  • AutoAssembler command: Hook(address, addresstogoto, originalcode) where originalcode will be allocated and filled for you
  • AutoAssembler command: unhook(address)
  • AutoAssembler command: aobscanfunction(name, functionstart, aob)
  • Mono: Better class/method lookup (generic support and parameters for methods)
  • lua:registerSymbolLookupCallback functions now also have access to the original string as well (only use it to determine if you should return nil or not)
  • dotnetdatacollector now takes less time to determine if something is an object in the heap or not
  • memoryviewer has a new 'marker' type of highlights also controllable from lua.
  • memoryviewer has a new function to highlight all lines that are used as a jump destination so it's easier to determine where to hook
  • .net plugins: The .net 9 runtime requirements also link with aspnetcore
  • added OnMouseWheelEvent support
  • added AI commands
  • ported RT-MOD to linux
  • .net info static field now has a context menu to copy the data
  • Added binary notation in aobscan |010**010|
  • lua memscan has a new propery called Results which will get your all the results without the need of a foundlist helper
  • custom type now has an 'internalOnly' property so you can use the type without notifying the user it exists
  • You can now view tablefile contents as text
  • added a Markdown viewer control
  • added stacktrace lua command
  • added a new extensions folder to RT-MOD which will load files based on a loadorder.txt
  • moved the AI stuff to the Extensions folder
  • added some basic unreal engine structure dissect support
  • added binary type to structure dissect
  • structure dissect can now load pdb structures better
  • added a preview fields to pointers and nested types, and an option to prioritize which fields to show first
  • added json lua library
  • adjusted getThreadList to return a threadlist in lua if no stringlist was provided
  • added executeCodeExThread and executeMethodThread where you can specify the thread to let the code run
  • form property Ghost, which allows you to click through it to the window behind it. Handy for overlays
  • rtmshare now supports multiple server lists
  • ceserver can now deal with containered paths better

  • Fixes:
  • fixed injecting dll's while pdbs are being loaded
  • fixed a memory leak with the memory scanner
  • luacode not working when there's multiline comments at the top of the script
  • pdb moduleload dialog showing the wrong info
  • memoryrecord options not loading back
  • speedhack causing lag on some games
  • speedhack symbols saving inside tables while they should not
  • speedhack hotkey not saving if you don't select another entry first
  • assembling j* +# inside a region above 7fffffff would make it generate a wrong codeblock
  • disassembling vmovdqu shows wrong parameters
  • settings dialog: the option to handle unexpected exceptions isn't displayed as if it's set
  • parameter passing when launch as admin is enabled
  • access violation issue with break and trace dialog when loading a trace
  • freeze/crash on autoattach related to the pick process flasher
  • lua: Fixed single run timer running more than 1 time when the timer handler shows a dialog
  • monodatacollector: fixed an issue with multiple threads at the same time causing a disconnect
  • fix break on unexpected breakpoints
  • fixed enum values in il2cpp
  • ceserver: fixed modulesize lookup
  • fixed always hide children option
  • fixed loadPlugin lua command adding to the permanent list
  • convertToUtf8 is now stable when giving it incorrect parameters
  • reassemble can now handle call [] and jmp []
  • 'step out' when the stack contains an unparsable string works now
  • disassembling rorx now doesn't show a double , anymore
  • dialogs won't show on the wrong monitor anymore
  • the previous build missed a few lua script extensions for structure to C lookup. They are present now
  • fixed code finder doubleclick actually hiding the memoryview window instead of showing it
  • fixed header passing when using postURL from the internet object
  • fixed lua engine search direction parameter
  • fixed aob template scripts for hook
  • fixed inputQuery
  • fixed RT-MOD loading .net9 runtimes close enough to 9.0.0
  • fixed relative notations using +/-xxx
  • structure compare reload file now cleans up old buffers
  • fixed groupscan double and float scans when scanning out of order
  • fixed assembling of instructions with width size specific values (broke due to the calculation ability)
  • fixed the full injection template
  • fixed autoassembler targetself messing up the processid breaking modulelists
  • don't render strings longer than 1000 characters in the addresslist
  • fixed memory access on windows on windows64 for arm64
  • fixed mono unboxing
  • dbvm fixed an issue with dr6 flags not being properly set in some rare cases
  • mono: fixed enum handling for invoke method and dialog
  • windows .net: fixed
  • debugging: fixed avx state being set to 0
  • gdb: several fixes

  • February 12 2025:Runtime Modifier 7.6 Released for public:

    January 20 2025:Runtime Modifier 7.6 Released for Windows for Patreons (Mac and public will be here soon):

    I'm glad to announce the release of Runtime Modifier 7.6. It has taken a while but I did manage to cram in a few neat fixes and improvements
    My patreon members can get it here

    (The public release is here now as well)

    Please reports bugs and give suggestions to improve Runtime Modifier so next version can be even greater!

    Changes:

  • No more version numbering in the main caption. Only the about screen now has it
  • can run without admin and asks for admin if needed (you can set to run as admin in settings as well)
  • better error reporting (Especially if using the debugsymbol version)
  • symbol synchronization. Symbols are shared between RT-MOD instances and remembered when reopening CE
  • Speedhack v3 now replaces the old speedhack in windows. No more speedhack dll's to inject (more dll's to follow in the future)
  • Speedhack also works better in unity games now (no need to turn of vsync anymore)
  • byteTableToxxx now support an start index
  • autoassembler command AOBSCANEX - Scan only executable memory
  • c compiler: added __stdcall define
  • c compiler: windows: auto assembler can deal with stdcall mangled symbols names, and c compiler can deal with unmangled symbols when stdcall is used
  • c compiler: header files are used as table files. And tablefiles can have any name now
  • added Java info similar to .net/mono info
  • improved the .net info classlist performance (especially noticable in ceserver)
  • ctrl+space on selected bytes in hexview will make the disassembler go there
  • bunch of mono info improvements
  • lua: treenode.Index is now writable
  • redesigned the internals of structure dissect. Expect many new bugs there, please report! (I already know a few of them, but just waiting to get a report on them before fixing ;-) )
  • updated the tcc library to a more recent version
  • {$luacode} doesn't need dll injection to function anymore
  • auto assembler DB command has been updated to allow relative changes. e.g: DB +1 +2 will increase the bytes 'db' is done at with 1 and 2 respectively
  • you can't destroy luafile stream objects anymore. You now have to destroy the luafile itself
  • added more language support for AA scripts
  • added a new debugger interface: gdbserver
  • error out scripts that try to access GUI controls from other threads. (remove threadsafegui.lua if you don't want it. But you will have a buggy CE)
  • tablist can't be clicked while scanning is active
  • removed the close button from the comments dialog
  • memoryregion view columns can be sorted now
  • C code: ANDROID define set on android targets
  • lua: disassembler view now has a SelectionSize property
  • lua: caretX and caretY are now exposed to synedit
  • lua: TSynAutoComplete can be created
  • lua: ModuleLoader can now load streams and tablefiles
  • memory records can now set a value on freeze/unfreeze/restore to original on unfreeze
  • memory records can hide the checkbox and choose to move the description to the furthest left
  • you can now link a memoryview hexview with a structure window column, so it's address changes when the hexview changes
  • patchscan will now tell you it's not going to work when you don't select any module
  • improved dark mode visuals
  • added option to ignore the upper byte of a pointer when doing a pointerscan (ARM memory tag security feature)
  • groupscan now supports aobscan types as well
  • aobscan in hexadecimal mode now supports the following operators: >XX : value has to be higher than XX,
  • disassembler ARM64: Added some colors
  • .net info: improved the class search
  • .net info: static methods don't need an address anymore
  • .net info: static methods now have a different color
  • .net info: added a config window where colors can be changed
  • .net info: invoking a method allows you to create objects using the dialog
  • encodeFunction results generated in another architecture can now can used by decodeFunction
  • structure dissect now follows the setPointerSize() directive better
  • added lua include files
  • cpuid recording in dbvm
  • complete redesign of error handling in the mono data collector
  • the monodatacollector is now multithread aware
  • added a bunch of lua commands to make it easier to create manual process and modulelists
  • added dmahelper.lua, which is an example script to show how to use direct memory access to get a processlist, and modulelist, and how to hook that info up to CE
  • some lua callback now have a first parameter so they run even before RT-MOD's internal handler
  • added ceserver command EXTCMD_DLERROR to get the error when module injection fails
  • improved il2cpp method enum speed
  • the threadsafe script terminator now shows a dialog asking you if you wish to kill the script or not
  • lua: Added loadNewSymbols() so not all symbols need to be reloaded on dll injection
  • lua: Added setSpecialScanOptionsOverride so you can control which memory regions to scan (handy for emulators)

  • Fixes:
  • Loooots of fixes in ceserver from symbollookup to debugging, pipes, basic initialization going wrong, etc...
  • fixed symbol to address lookup picking an old version of a same named symbol instead of later (was an issue with symbollists, like ccode)
  • fixed an error with .net/mono info giving an error when looking at a string
  • fixed disassembling of some vector instructions
  • fixed VEX instructions not working in 32-bit targets
  • fixed the translation files not being up to date in the installer
  • dissectcode high dpi fix
  • fixed structure dissect without using a structure dissect window
  • yet even more disassembler issues related to x86 vex and aarch64
  • fixed issue when ticking and unticking a checkbox in the pointerscan config
  • fixed some font colors and types so they adjust based on default windows config
  • fixed luacode when the target is 32-bit
  • fixed the memview disassembler bugging out when the window height is too small
  • dbvm: fixed an issue that would crash DBVM
  • Lua: Debugging scripts now doesn't delete existing debug routines
  • Lua: Fixed StructureFrm.getSelectedStructElement()
  • assembler x86_64: fix assembling ymm,m256 parameters
  • assembler x86_64: fixed pextrd
  • ultimap1: fixed the ret filter
  • debug information is no longer available when no process has been opened yet
  • c/ccode: windows.h and some other default header files can now be included without errors
  • c/ccode: fixed issue with chkstk symbol
  • mono: Fixed dealing with value_type parameters and method invoking
  • fixed issue where dbvm trace would error out on the results
  • fixed assembling pextrd
  • some fixes regarding roundbraces and calculations
  • android: fixed issue when il2cpp is inside an apk
  • bunch of other android related fixes (java and mono)
  • fixed network modulelist to be more accurate
  • fixed pointerscan for value scan
  • manual map dll's now also loads the exception handling structure

  •