Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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++.

like image 284
Willy Avatar asked Aug 18 '12 15:08

Willy


People also ask

Can Python edit memory?

mem_edit is a multi-platform memory editing library written in Python.

How does Python store data in RAM?

To store anything in RAM you need an running process. Therefore the easiest solution is to implement what you wrote in your edit. You could also create a new process that always runs and let the old process connect to the new one to get the data.


1 Answers

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

like image 71
Willy Avatar answered Oct 15 '22 06:10

Willy