我如何使用 powershell 进行用户转储

Shr*_*ree 8 powershell coredump dump powershell-2.0

我想使用 powershell 获取进程的用户转储我该怎么做?我在任务管理器中右键单击进程也是如此

Ren*_*nat 5

基于来自 Risksense 的这篇文章。可以使用MiniDump来自本机comsvcs.dllWindows dll 的函数。

喜欢:

Powershell -c rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump {ID-of-the-process} $Env:TEMP\my_dump_file.bin full
Run Code Online (Sandbox Code Playgroud)

  • 请注意,转储文件路径不能有空格(引用不起作用)。对于路径的目录部分,可以通过设置当前目录(或为“Start-Process”指定参数 -WorkingDirectory)来解决此问题,因此我们只需将转储文件的文件名传递给 rundll32。 (2认同)

von*_*ryz 1

最简单的方法是使用Sysinternals 工具包中的Procdump 。用于Get-Process获取进程 ID,您可以将其传递给 Procdump 进行实际转储。

编辑:

我仍然宁愿使用现成的工具而不是困难的方法。您有正当的商业理由吗?既然您坚持认为,有一个Win32 API 调用可以创建用户模式内存转储。它可以从.Net 代码调用,因此可以使用 P/Invoke 或将 C# 嵌入到 Powershell 代码中。这留给读者作为练习。