偏移量未按预期工作的读写内存多级指针

2024-09-27 21:29:27 发布

您现在位置:Python中文网/ 问答频道 /正文

from ReadWriteMemory import ReadWriteMemory

rwm = ReadWriteMemory()

process = rwm.get_process_by_name('AoE2DE_s.exe')
process.open()

villagerPointer = process.get_pointer('AoE2DE_s.exe+2BFCA10', offsets=[0x18, 0x4*0x2+0x9228])

villagerCount = process.read(villagerPointer)

print (villagerCount)

始终返回0,但应返回119。使用作弊引擎查找指针和偏移量,但无法在Python中复制它。我非常沮丧,什么都做不到

Pointer


Tags: namefromimportgetbyopenprocessexe
1条回答
网友
1楼 · 发布于 2024-09-27 21:29:27

您正在将字符串值'AoE2DE_s.exe+2BFCA10'传递给get_pointer(),但根据您正在使用的库的source code,这显然不是有效的输入。您必须实际传递该地址的十六进制值。因此,我首先获取.exe的基址,然后添加十六进制值,但同样,最终只需将十六进制地址传递给read()get_pointer()

您没有收到任何错误的原因只是因为该库没有进行太多的输入验证;因此,“垃圾输入,垃圾输出”的概念适用

编辑:根据该库的源代码,似乎无法获取进程的基址

但是,您可以通过绕过库并通过this method自己进行操作来获取基址。然后,一旦获得了基址的十六进制值,就可以简单地向它添加一个偏移量,然后使用RWM的read()get_pointer()

相关问题 更多 >

    热门问题