Не удалось прочитатьProcessMemory в python с кодом ошибки 299

Я пытаюсь прочитать память процесса с помощью Python, но что-то не так, не знаю, что. операторы печати дают 0,0,299. Приведенный здесь ответ является неполным.

import ctypes
from ctypes import *
from ctypes.wintypes import *
import psutil
import sys
from ctypes import wintypes

PROCESS_QUERY_INFORMATION = 0x0400
PROCESS_VM_OPERATION = 0x0008
PROCESS_VM_READ = 0x0010
PROCESS_VM_WRITE = 0x0020
desired_access = (PROCESS_QUERY_INFORMATION|
              PROCESS_VM_OPERATION|
              PROCESS_VM_READ|
              PROCESS_VM_WRITE)

process = windll.kernel32.OpenProcess(desired_access,0,5816)
rPM = ctypes.WinDLL('kernel32',use_last_error=True).ReadProcessMemory
rPM.argtypes =    [wintypes.HANDLE,wintypes.LPCVOID,wintypes.LPVOID,ctypes.c_size_t,ctypes.POINTER   (ctypes.c_size_t)]
rPM.restype = wintypes.BOOL

ReadBuffer = ctypes.c_uint()
lpBuffer = ctypes.byref(ReadBuffer)
nSize = ctypes.sizeof(ReadBuffer)
lpNumberOfBytesRead = ctypes.c_ulong(0)
x = rPM(process, hex(2305324751792),lpBuffer,nSize,lpNumberOfBytesRead)

print(ReadBuffer.value)
print(x)
print(ctypes.get_last_error())

person Satyam_jay    schedule 02.06.2018    source источник
comment
Вы не проверяете ошибки, для начала. ctypes Вызовы DLL не вызывают исключений, если API fn дает сбой, если только вы не вызываете его через оболочку, которая проверяет GetLastError или что-то еще для вас.   -  person ivan_pozdeev    schedule 02.06.2018