使一个程序能够查看另一个程序的内存

5

有一些工具,如TSearch、Cheat Engine等,它们是用来查看和修改其他程序内存的黑客程序。

如果我要创建一个可以查看和修改其他程序内存的C++程序,我该怎么做?我应该注意哪些方面?


6
你需要知道,操作系统不一定会允许你这样做。 - Karl Knechtel
1
WriteProcessMemory 对于 Windows 可能是一个起点,但是写入进程应该具有足够的特权(调试)来执行此操作,我认为。 - khachik
2个回答

8
这不是C++的功能,而是由操作系统自身控制。
例如,Windows提供ReadProcessMemory() API调用,以便您可以获取另一个进程的内存。当然,还有相应的写入,因此您可以造成更多的破坏:-)
所有这些都取决于具有正确特权。
我不确定Linux如何提供此功能,但早期的UNIX有“内存映射”文件,如/dev/mem,因此您可以访问内存。在procfs文件系统中可能会有每个进程的变体,可以让您访问特定进程的虚拟内存。那将是我开始寻找的第一个地方,虽然这里的其他人无疑比我更了解这一点。

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接