我正在为用 Python 编写的应用程序制作内存编辑器。我已经使用 kernel32.dll 中的 OpenProcess 和 ReadProcessMemory 函数成功地从目标进程中获取了内存数据。获得数据后,我会使用 python 相应地对其进行操作,然后将其传递到我创建的 gui 中。
我想要做的是:因为我抓取的数据包含静态内存地址,并且没有其他方法可以在不再次调用 WriteProcessMemory 的情况下写回内存,我想创建直接指向静态内存地址的指针,以便通过在 gui 中进行一些调整,这些值将立即返回内存。
我尝试使用 ctypes cast 函数执行此操作,该函数成功创建了指针(至少它不会产生任何错误)但是当我尝试获取指针内容时,python 崩溃了,因此唯一合乎逻辑的解释是 python 脚本执行不能直接访问进程内存空间以加载数据。
由于我缺乏这方面的经验,我不知道我能做些什么来使这成为可能。这是 dll 注入派上用场的地方吗?我唯一的其他选择是将内存数据作为文件对象存储在 python 中,不要使用静态指针(这意味着很多转换),进行更改并使用 WriteProcessMemory 将数据放回。
任何帮助表示高度赞赏