c - 读取进程的起始地址和长度(虚拟内存映射)

标签 c winapi

开始时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/

相关文章:

c++ - 将 libxbee 与 MinGw 和 eclipse 结合使用

c - C 中的指针,理论方面

使用 gcc 编译 C 程序

c - 使用驱动程序从特定位置读取 RAM 数据?

python - 为什么发送连续的 UDP 消息会导致消息延迟到达?

c++ - C/C++ 中的结构赋值是原子的吗?

c++ - 我应该为 DirectX 11 使用什么 SDK?

c++ - 设置无效值后,注册表项是否会采用默认值

java - 如何向正在运行的 Java 程序发送命令?

c++ - 如何从 TOKEN_INFORMATION_CLASS 获取 PSID?