如何从 RAM 读取数据?

如何从 RAM 读取数据?

我知道这个问题比较模糊。请接受我的道歉,但我正在努力寻找这个问题的答案。

我想知道是否有办法从 RAM 中获取当前数据?例如:- 我正在运行一个内存应用程序,我想知道它保存了哪些数据集。任何关于这方面的指示都会很有帮助。

提前致谢。

答案1

将计算机设置为休眠状态,然后使用 livecd 或 liveusb 启动它。事实上,pagefile.sys 和 hiberfil.sys 是由 4k 页构建的,将包含您的应用程序和窗口使用的内存。您可以查看 binwalk 和 volatility。我真的不能告诉你什么去了哪里,以及为什么。它似乎总是非常随机。我只能通过在程序的内存中放置类似 longuniquestring 的东西来找到我想要的内存位(但我确信这不是正确的方法)。或者,您可以将调试器附加到您的程序(ida),但我只使用了 gdb。查找一些 ida 指南。希望它有所帮助。

答案2

在现代操作系统中,RAM 访问在进程之间是分开的。因此,您无法构建一个简单的应用程序来查看正在运行的另一个程序的数据。要做到这一点,您必须在内核模式下编程或使用特定操作系统的调试功能。

答案3

您标记了 Windows,是的,这是可能的(至少在用户在自己的计算机上具有管理员权限的一般情况下)。

许多游戏作弊引擎(我不会给出链接,因为我不能 100% 确定哪些是安全的,但我曾使用过一个进行研究)会让您搜索正在运行的进程的内存以查找给定值,或浏览它。然后可以更改这些值,或“锁定”这些值,我认为这只需让程序快速重复写入所需值即可撤消任何更改。

答案4

您可以使用调试器,例如 Microsoft Visual Studio 中的调试器。您可以附加到进程并查看其内存、正在执行的线程以及它们正在执行的汇编指令。

相关内容