问题标签 [readprocessmemory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
711 浏览

c++ - 调用堆栈和 ReadProcessMemory

我正在尝试读取该方法的返回地址,但另一个内存的返回地址。所以我得到了帧指针,并读取了返回值的值。据我了解,我应该得到一个等于 m_stackframe.AddrReturn.Offset 的值,但是:

  1. 如果我将 Esp 添加到帧指针地址 - ReadProcessMemory 将返回 false。
  2. 如果我只是使用地址帧偏移量 - 我会得到一个错误的值。

我在 Windows 上使用 c++。谁能告诉我它有什么问题?谢谢 :)

0 投票
1 回答
336 浏览

memory - 在同一个内存地址存储多个值。分隔符?

我正在修改 Read- 和 WriteProcessMemory 以及我发现的一个旧平台游戏。每当玩家进入新关卡时,都会创建敌人并设置每个敌人的生命值、坐标等:

(EAX 是结构的地址,138 是它们的健康偏移量)

假设有空闲内存可以写,有什么办法可以将每个 EAX 的值存储在一个相同的位置?喜欢使用各种分隔符?

干杯

0 投票
2 回答
3252 浏览

c++ - 将内存地址转换为int

我试图从内存中运行的可执行文件中读取内存地址,然后使用这些内存地址来遍历 PE 结构。

我遇到了麻烦,因为我不确定如何将 4 字节 char 数组转换为它的 int 等价物。

到目前为止,这是我的代码:

我正在读取的地址,在本例中为 0xE0000000,是 PE 标头的偏移量。我想获取我刚刚读取的内存地址并将其用作偏移量以再次从进程内存中读取,但我无法弄清楚如何将其正确转换为 int。

任何帮助将不胜感激。

0 投票
1 回答
264 浏览

windows - 进程内存的开头是什么意思

我正在尝试了解有关如何读取进程内存的更多信息。所以我在 WinHex 中打开了 Firefox 进程的“整个内存”,看到以下十六进制值从偏移量 10000 开始。

我的问题是人类是否有可能在没有进一步知识的情况下解释这一点?这些是指针还是值?除了字节顺序之外,对于使用不同编译器创建的不同程序,关于进程内存,有什么是常见的吗?为什么它以很多零开头,这不是开始使用空间的一种非常奇怪的方式吗?

0 投票
1 回答
832 浏览

c# - 获取进程内存的图像

我的目标是创建一个方法,该方法将采用进程句柄并返回表示该进程内存的字节数组。这是我所拥有的:

我不知道将什么作为参数传递给包装器方法。我可以找到 a handleand thebytes是一个输出变量,但是addressandsize呢?我可以从哪里获得这些数据?

0 投票
1 回答
2730 浏览

.net - ReadProcessMemory 的最快方法是什么?

我正在尝试在进程的内存中搜索以空字符结尾的字符串的所有实例。我用 VirtualQueryEx 枚举了所有分配的内存区域,然后我用 ReadProcessMemory 将它们读取到一个字节数组并使用这个算法进行搜索(我在这里找到了,作者声称是最快的)

它有效,但它太慢了。有没有办法对进程进行内存映射或以某种方式在其内存中更快地搜索?

0 投票
1 回答
5002 浏览

c++ - ReadProcessMemory 总是因 GLE 失败:299

有人可以帮我吗,我不知道为什么 ReadProcessMemory 函数失败并且 GetLastError = 299。这是我的代码,我看不出我做错了什么。

IDH_Buffer 已分配,hProcess 不为 NULL

我的应用程序以管理员身份运行,我尝试读取的应用程序是标准用户模式应用程序。

请你给我建议。谢谢

0 投票
1 回答
192 浏览

c++ - 检查在其他进程中有多少内存是可读的

有没有办法知道我可以使用 ReadProcessMemory 从另一个进程读取多少内存?
如果我尝试从特定地址读取太多内存,它将返回错误代码 299,并且将读取 0 个字节。
我猜这是因为我试图读取超出进程分配的缓冲区。

0 投票
1 回答
4015 浏览

c++ - C++ ReadProcessMemory 转换成字节数组

我正在尝试使用 ReadProcessMemory 将动态数量的字节读入数组,然后将其返回。我根本无法让它正常工作。我目前的代码是...

任何帮助,将不胜感激。

0 投票
7 回答
32980 浏览

c++ - 你如何直接从物理内存中读取?

在 C 或 C++(Windows)中,如何通过提供物理(非虚拟)地址来读取 RAM?这意味着无需通过虚拟内存系统(mmu 表),并且特定于一个进程。

我已经知道从 ram(大多数培训师使用)读取的 API ReadProcessMemory,但它仅适用于特定进程。

我在 MSDN 上搜索,发现Device\PhysicalMemory似乎提供了这种可能性,但我没有找到任何实际示例,而且此功能似乎已被 Windows 服务包关闭(以修复一些漏洞)。

我知道这是可能的,因为 WinHex 可以做到(如果你选择“工具”>“打开内存”>“物理内存”)。然后它将显示从 0x00000000 到 your_ram_size 的 RAM 内容,就像打开传统文件时一样。它需要管理员权限,但无需安装驱动程序(这意味着 WinHex 从用户模式执行此操作)。

编辑:添加了有关 os.