gpt4 book ai didi

c++ - 访问其他程序使用的内存

转载 作者:IT王子 更新时间:2023-10-28 23:35:18 25 4
gpt4 key购买 nike

今天我又有一个奇怪的问题(至少对我来说是这样)。我正在尝试更多的指针和一个想法,如下所示:

代码(只是其中的一部分)

int * firefoxmemory = (char*) 0x11111111 //this is just an example of address.
*firefoxmemory = 200;

问题:

在上面的代码中,我尝试访问firefox使用的内存(我使用内存编辑器查看地址),然后更改其对应的值。但是当我尝试这样做时,我的程序崩溃了。

为什么我的程序会出现这种情况? Firefox 是否使用了一些特殊代码来防止第 3 方程序篡改其内存?还是由 Windows 和 Intel 硬件 DEP 完成?

如果 DEP 阻止了上述操作,为什么某些内存编辑软件仍然可以工作,例如可以更改内存值的 Cheat Engine ?

最佳答案

它崩溃是因为 0x11111111 没有指向应用内存空间中的有效地址。

对于 Cheat Engine ,有几种方法可以访问另一个程序的内存:

1) 在目标进程的内存空间内运行代码。有多种方法可以使用 SetWindowsHookEx()CreateRemoteThread() 将代码注入(inject)另一个进程。

2) 使用 ReadProcessMemory()WriteProcessMemory()

关于c++ - 访问其他程序使用的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8191801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com