我们能否根据存储的数据找到 RAM 中的地址?

我们能否根据存储的数据找到 RAM 中的地址?

假设我们用某种编程语言创建了一个对象

a = "This is my text and it is very precious"

然后关闭终端。

据我所知,包含“这是我的文本,非常珍贵”信息的内存空间不会被重新设置为一串零。因此,信息仍然存在,只是我们不知道在哪里。

假设我们记得一些关于这个字符串的信息。我们记得它以“这是我的文本,它是”开头。能不能通过RAM筛选出这个数据存放的地址呢?

答案1

假设一个虚拟内存操作系统,例如 Linux、Windows 或 MacOS...

不是从用户模式。进程结束时,进程的整个地址空间都会消失。

当您的进程仍在运行时询问数据的物理地址甚至没有任何意义,因为它可能会在该信息返回给您之后立即发生变化。

从内核模式,可以精心地将一块 RAM 映射到以前未使用的内核地址空间,搜索它,取消映射,重复。但是,正如 cybernard 提到的,结束进程释放的 RAM 可能很快就会被其他东西使用。是的,它会被覆盖,要么被其他东西覆盖(如果它被映射到文件),要么在暴露给用户模式之前被零覆盖。此外,如果您的字符串恰好跨越了您正在搜索的块之一的边界,即使它仍在 RAM 中,您也找不到它。

这里的目标是什么?

相关内容