指向可变数量值的内存地址

Memory address pointing to a variable number of values

本文关键字:内存 地址      更新时间:2023-10-16

我正在尝试制作一个可以从另一个进程读取一些信息的程序。我使用Cheat Engine来查找我要查找的任何东西的内存地址,并使用c++中的ReadProcessMemory来获取值。

到目前为止还不错。我的问题是:我试图从中获取信息的过程可能会同时打开多个窗口。我将以记事本++为例。使用notepad++,我可以打开任意数量的.txt文件。这些文件的每个内容都有自己的内存地址。所以我想我需要的是一个内存地址,每个指针指向每个文件的内容作为值

示例:

Address A = Value 1
Address B = Value 2
Address C = Value 3

等等。。。对于所有打开的文件

我需要找到一个值为(地址a、地址B、地址C等)的静态地址。

我甚至不知道该怎么找。。。一个内存地址能容纳一个值数组吗。。。?

编辑:真的吗,伙计们,你们认为作弊引擎的唯一目的就是作弊吗?我没有试图欺骗或破解任何东西。我不知道试图了解内存地址是错误的。。。为了你的信息,我正在尝试为我喜欢的程序制作我自己的界面。接口,这不是作弊。

在动态分配窗口的程序中,通常也会动态分配与这些窗口相关的变量。这意味着每次程序运行时,地址可能不同(取决于当时程序堆中的其他内容)。为了可靠地获取这些位置,您需要从顶级静态指针(例如,窗口列表的地址)开始,然后动态地沿着动态分配的指针链向下到您要查找的地址。CheatEngine是否可以做到这一点,或者它是否可以安全地完成,我不知道。

内存只保存数字。将进程内存视为一个庞大的数字列表可能会有所帮助,每个数字的值都在(0-255)范围内。如何解释这些数字完全取决于流程(例如,您的示例中的记事本)。这包括它们是否是某个"值",或者可能是某个值的指针,等等。