指向可变数量值的内存地址
Memory address pointing to a variable number of values
我正在尝试制作一个可以从另一个进程读取一些信息的程序。我使用Cheat Engine来查找我要查找的任何东西的内存地址,并使用c++中的ReadProcessMemory来获取值。
到目前为止还不错。我的问题是:我试图从中获取信息的过程可能会同时打开多个窗口。我将以记事本++为例。使用notepad++,我可以打开任意数量的.txt文件。这些文件的每个内容都有自己的内存地址。所以我想我需要的是一个内存地址,每个指针指向每个文件的内容作为值
示例:
Address A = Value 1
Address B = Value 2
Address C = Value 3
等等。。。对于所有打开的文件
我需要找到一个值为(地址a、地址B、地址C等)的静态地址。
我甚至不知道该怎么找。。。一个内存地址能容纳一个值数组吗。。。?
编辑:真的吗,伙计们,你们认为作弊引擎的唯一目的就是作弊吗?我没有试图欺骗或破解任何东西。我不知道试图了解内存地址是错误的。。。为了你的信息,我正在尝试为我喜欢的程序制作我自己的界面。接口,这不是作弊。
在动态分配窗口的程序中,通常也会动态分配与这些窗口相关的变量。这意味着每次程序运行时,地址可能不同(取决于当时程序堆中的其他内容)。为了可靠地获取这些位置,您需要从顶级静态指针(例如,窗口列表的地址)开始,然后动态地沿着动态分配的指针链向下到您要查找的地址。CheatEngine是否可以做到这一点,或者它是否可以安全地完成,我不知道。
内存只保存数字。将进程内存视为一个庞大的数字列表可能会有所帮助,每个数字的值都在(0-255)范围内。如何解释这些数字完全取决于流程(例如,您的示例中的记事本)。这包括它们是否是某个"值",或者可能是某个值的指针,等等。
相关文章:
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 为什么 vector 的随机访问迭代器给出与指针不同的内存地址?
- 使用内存地址访问结构的属性值
- 为什么C++总是显示十六进制内存地址,而不仅仅是整数?
- 将布局映射到内存地址
- 为什么同一个变量的内存地址不同?
- 无法将内存地址转换为值
- 给定特定内存地址的数组的动态内存分配
- 在 Microsoft Access SQL 中调用自定义 DLL 函数时传递的内存地址无效
- 获取 R 数据帧的内存地址
- c++ 编译器是否保护常量内存地址免受任何更改?
- 如何防止矢量的内存地址更改
- cout 打印内存地址而不是值
- 如何运行外部程序,向其传递内存地址以读取/写入?
- 循环中的变量被设置为下一个数组的元素始终具有相同的内存地址?
- 重载 ostream << 运算符,指针作为参数,导致输出上的内存地址
- C++在变量的内存地址上做什么来"deallocate"它?
- 在指向现有内存地址的 hpp 文件中声明成员函数的最佳方法
- 为什么我无法获取 MSVS2019 / C++ 中字符或uint8_t变量的内存地址?