ReadProcessMemory
Verfasst: Samstag 30. Juni 2018, 00:03
Hallo Community,
ich habe folgendes Problem, ich möchte mit Python den Speicher eines anderen Prozesses auslesen, nur leider schlägt es immer fehl.
Leider gibt er eben immer "Failed" aus. (pid und address sind definitiv richtig)
Auslesen möchte ich einen 4 byte integer zum testen.
In C# funktioniert es, in Python irgendwie nicht.
Kann mir da jemand weiterhelfen?
ich habe folgendes Problem, ich möchte mit Python den Speicher eines anderen Prozesses auslesen, nur leider schlägt es immer fehl.
Code: Alles auswählen
import psutil
from ctypes import *
from ctypes.wintypes import *
def listProcesses():
for proc in psutil.process_iter():
try:
pinfo = proc.as_dict(attrs=['pid', 'name'])
except psutil.NoSuchProcess:
pass
else:
print(pinfo)
listProcesses()
# Get dll functions
OpenProcess = windll.kernel32.OpenProcess
ReadProcessMemory = windll.kernel32.ReadProcessMemory
CloseHandle = windll.kernel32.CloseHandle
# flags
PROCESS_ALL_ACCESS = 0x1F0FFF
PROCESS_QUERY_INFORMATION = 0x0400
PROCESS_VM_READ = 0x0010
pid = 6040 # the pid to read
address = 0x0008C900 # the address to read
bufferSize = 255 # buffer size of 255 bytes
buffer = ctypes.create_string_buffer(bufferSize) # buffer of size bufferSize
processHandle = OpenProcess(PROCESS_VM_READ, False, pid)
if processHandle:
if ReadProcessMemory(processHandle, address, buffer, bufferSize, 0):
print("Success:", buffer)
else:
print("Failed.")
else:
print("Unable to open process")
CloseHandle(processHandle)
Auslesen möchte ich einen 4 byte integer zum testen.
In C# funktioniert es, in Python irgendwie nicht.
Kann mir da jemand weiterhelfen?