我有以下代码:
import subprocess
from ctypes import *
#-Part where I get the PID and declare all variables-#
OpenProcess = windll.kernel32.OpenProcess
ReadProcessMemory = windll.kernel32.ReadProcessMemory
processHandle = OpenProcess(PROCESS_ALL_ACCESS, False, PID)
ReadProcessMemory(processHandle, address, buffer, bufferSize, byref(bytesRead))
所有这一切都完美无缺,但由于某些进程使用所谓的BaseAddress
or StartAddress
。在我的情况下,这个 BaseAddress 的大小不时是随机的。正如这里所建议的,我尝试使用以下代码:
BaseAddress = win32api.GetModuleHandle(None)
它所做的只是一遍又一遍地给出相同的十六进制值,即使我确定我的 BaseAddress 已经改变。
链接线程的屏幕截图显示了我正在寻找的内容(左侧是基地址):