次のコードを取得しました。
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が変更されたことは確かにわかっていますが、同じ16進値を何度も与えるだけです。
私が探しているものを示すリンクされたスレッドのスクリーンショット (左側の部分がベースアドレス):