在整个 RAM 中查找一个字符串

在整个 RAM 中查找一个字符串

如何在整个 RAM 中搜索字符串?(不仅在某些进程分配的内存中,而且在整个 RAM 中)

或者有没有办法将整个 RAM 转储到 4GB 或 8GB 磁盘文件中?然后我可以轻松做到:

grep mypassword c:\ramdump.raw

使用示例:我想知道密码管理器以纯文本形式存储我的主密码, 作为安全团队在此处发现

我以管理员身份使用 Windows 7 x64。


注意:与如何在 Windows 10 中获取完整的内存转储?我专门想搜索 RAM 中的内容,而不是获取信息内存转储。此外,这个问题不清楚:标题与内容不符(“标题中的问题似乎与正文中的问题不符。”)

答案1

以下是创建完整内存转储的可能方法:

https://support.avast.com/en-eu/article/Windows-complete-memory-dump

https://nvidia.custhelp.com/app/answers/detail/a_id/4641/~/collecting-a-full-memory-dump-in-windows-10

方法是将其添加到注册表中:

Windows 注册表编辑器版本 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl]
"CrashDumpEnabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\kbdhid\Parameters]
"CrashOnCtrlScroll"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\i8042prt\Parameters]
"CrashOnCtrlScroll"=dword:00000001

然后引发崩溃:

通过按住键盘右侧的 CTRL 键并按两次 Scroll Lock 键(右 CTRL + 2x Scroll Lock),手动强制 Windows 崩溃。

然后我将尝试使用十六进制编辑器在转储文件中进行搜索。

答案2

如何在 RAM 中的任何位置找到字符串?

您可以使用windbg下载适用于 Windows 的调试工具 - WinDbg - Windows 驱动程序 | Microsoft Docs) 为了这。

例子:

为了在内存中搜索字符串(Error: 1002),我们运行以下命令:

0:000> s -a 0 L?80000000 "Error: 1002"
04b0e06c  45 72 72 6f 72 3a 20 31-30 30 32 00 00 00 00 00  Error: 1002.....

...

在此处输入图片描述

来源WinDbg:搜索字符串 – 分布式服务:来自现场的注释


进一步阅读

答案3

最好的选择是使用十六进制编辑器。大多数十六进制编辑器都是为处理大型文件而开发的。它们可以搜索字符串或十六进制序列。

一些十六进制编辑器还可以转储 RAM 的内容,读取整个 RAW 磁盘或转储它们,这取决于编辑器。

请记住,出于明显的安全原因,某些 RAM 区域无法访问。因此,如果您试图从 RAM 中破解某些密码,您可能无法获得它。生活没有那么容易。

此方法通常用于调试,而不是破解。

在此处输入图片描述

相关内容