【发布时间】:2021-10-13 09:14:37
【问题描述】:
我正在尝试使用 .dll 的基地址 + 偏移量从内存地址中提取值。
我使用 Cheat Engine 查找基地址,并使用 pymem 以十六进制形式获取基地址。
这是我用来查找基地址的代码:
import pymem
pm = pymem.Pymem("PD.exe")
baseAddress = pymem.process.module_from_name(pm.process_handle, "jvm.dll").lpBaseOfDll
print(hex(baseAddress))
#output: 0x51250000
为了读取我正在使用 ReadWriteMemory 的值。
from ReadWriteMemory import ReadWriteMemory
rwm = ReadWriteMemory()
process = rwm.get_process_by_id(4372)
process.open()
hp_pointer = process.get_pointer(0x51250000 + 0x0036e654, offsets=[0x28, 0x1d0, 0x26, 0x3a, 0x12])
hp = process.read(hp_pointer)
print(hp)
我使用第一个代码的输出作为基地址并添加+0036e654,但输出始终为0。
如果我在作弊引擎中将“jvm.dll”替换为 51250000,地址仍然可以正确计算。
【问题讨论】:
标签: python cheat-engine