Search code examples
pythonpython-3.2memory-editing

Is there any good and easy-to-use module built in Python for editing memory?


Is there any good and easy-to-use module built in Python for editing memory? Or is there any module like this at all?

What I'm looking for is a way to attach to a process and read from/write to it. Much like how Cheat Engine works. Here's a example of how it works in C++.


Solution

  • Took me a while to find a way of doing this but here's what I came up with!

    from ctypes import *
    from ctypes.wintypes import *
    
    pid = 0 #the pid of the process, aquired earlier by hand
    
    address = 0x0000 #where to read from while in the memory
    
    OpenProcess = windll.kernel32.OpenProcess
    ReadProcessMemory = windll.kernel32.ReadProcessMemory
    CloseHandle = windll.kernel32.CloseHandle
    
    
    PROCESS_ALL_ACCESS = 0x1F0FFF
    
    datadummy = b'.'*200
    buffer = c_char_p(datadummy)
    bufferSize = len(buffer.value)
    bytesRead = c_ulong(0)
    
    processHandle = OpenProcess(PROCESS_ALL_ACCESS, False, int(PID))
    
    ReadProcessMemory(processHandle, address, buffer, bufferSize, byref(bytesRead))
    
    CloseHandle(processHandle)
    

    And to write to the memory I would just add WriteProcessMemory = windll.kernel32.WriteProcessMemory and then call it