开始时here
我需要知道如何读取进程的起始地址和长度(虚拟内存映射)。
我想映射一个进程内存。我想读取进程内存的值并将值写入其中。
我很好奇像 Cheat-O'matic (cheat-o-matic.softonic.com.br) 这样的程序是如何工作的。我首先想到的是进程将被加载到连续的内存位置。但这似乎不对。
最佳答案
反复调用VirtualQueryEx ,从地址零开始,每次增加您传递给它的 MEMORY_BASIC_INFORMATION
结构的 RegionSize
成员中获得的值。为了获得有意义的 map ,显然应该暂停该过程。
尽管如此,即使您获得了这个内存映射,我也不确定您可以用它做什么:除非您知道(通过其他方式)您正在访问的进程的内部结构,您所知道的只是您所在的位置可以读取或写入而不触发访问冲突,而不是其内容的含义。您应该真正澄清您想要实现的目标,Read/WriteProcessMemory 通常不是“正常”问题的解决方案。
关于c - 读取进程的起始地址和长度(虚拟内存映射),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12215719/