如何在整个 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
方法是将其添加到注册表中:
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:搜索字符串 – 分布式服务:来自现场的注释