Windbg 转储中的进程描述、用户和发布者信息

Windbg 转储中的进程描述、用户和发布者信息,windbg,windows-server-2008-r2,windows-server-2012-r2,crash-dumps,Windbg,Windows Server 2008 R2,Windows Server 2012 R2,Crash Dumps,有没有办法从Windows内核崩溃转储中检索进程描述和发布者 我试过了,!dml_程序。它不显示该信息。说明应该从exe模块获取。 例如: 0:kd>!工艺FFF A800482F940 2 GetPointerFromAddress:无法从FFFFF 80397F65000读取 工艺FFF A800482F940 会话ID:1 Cid:0e3c Peb:7f7cfefa000家长Cid:04bc 目录库:26bcc000对象表:FFFFF 8A0028F4E80 HandleCount:

有没有办法从Windows内核崩溃转储中检索进程描述和发布者


我试过了,
!dml_程序
。它不显示该信息。

说明应该从exe模块获取。 例如:

0:kd>!工艺FFF A800482F940 2
GetPointerFromAddress:无法从FFFFF 80397F65000读取
工艺FFF A800482F940
会话ID:1 Cid:0e3c Peb:7f7cfefa000家长Cid:04bc
目录库:26bcc000对象表:FFFFF 8A0028F4E80 HandleCount:
图像:Taskmgr.exe
0:kd>.process/p FFFFF A800482F940
隐式进程现在是FFFFF A80`0482f940
0:kd>。重新加载/用户
加载用户符号
..........................................................
0:kd>lmvm任务管理器
浏览完整模块列表
起始端模块名称
000007f7`d08c0000 000007f7`d09da000任务管理器(延期)
映像路径:C:\Windows\system32\taskmgr.exe
图像名称:taskmgr.exe
浏览所有全局符号函数数据
时间戳:2012年7月26日星期四02:07:18(50107C26)
校验和:00119B41
图像大小:0011A000
文件版本:6.2.9200.16384
产品版本:6.2.9200.16384
文件标志:0(掩码3F)
文件操作系统:40004 NT Win32
文件类型:1.0应用程序
文件日期:00000000.00000000
翻译:0409.04b0
公司名称:微软公司
产品名称:Microsoft®Windows®操作系统
内部名称:Taskmgr.exe
原始文件名:Taskmgr.exe
产品版本:6.2.9200.16384
文件版本:6.2.9200.16384(win8_rtm.120725-1247)
任务管理器
版权所有:©微软公司。版权所有。

说明应该从exe模块获取。 例如:

0:kd>!工艺FFF A800482F940 2
GetPointerFromAddress:无法从FFFFF 80397F65000读取
工艺FFF A800482F940
会话ID:1 Cid:0e3c Peb:7f7cfefa000家长Cid:04bc
目录库:26bcc000对象表:FFFFF 8A0028F4E80 HandleCount:
图像:Taskmgr.exe
0:kd>.process/p FFFFF A800482F940
隐式进程现在是FFFFF A80`0482f940
0:kd>。重新加载/用户
加载用户符号
..........................................................
0:kd>lmvm任务管理器
浏览完整模块列表
起始端模块名称
000007f7`d08c0000 000007f7`d09da000任务管理器(延期)
映像路径:C:\Windows\system32\taskmgr.exe
图像名称:taskmgr.exe
浏览所有全局符号函数数据
时间戳:2012年7月26日星期四02:07:18(50107C26)
校验和:00119B41
图像大小:0011A000
文件版本:6.2.9200.16384
产品版本:6.2.9200.16384
文件标志:0(掩码3F)
文件操作系统:40004 NT Win32
文件类型:1.0应用程序
文件日期:00000000.00000000
翻译:0409.04b0
公司名称:微软公司
产品名称:Microsoft®Windows®操作系统
内部名称:Taskmgr.exe
原始文件名:Taskmgr.exe
产品版本:6.2.9200.16384
文件版本:6.2.9200.16384(win8_rtm.120725-1247)
任务管理器
版权所有:©微软公司。版权所有。

我曾试图编辑并发布pykd团队答案的澄清,但编辑结果并不充分,因此将此作为答案发布

lmvm输出的FileDescription引用任务管理器详细信息选项卡中的描述列

公司名称指的是“启动”选项卡中的“发布者”列

您可以通过修改在启动时执行的任何文件的rsrc部分中的文件版本信息进行检查。请参见下文windbg中编辑的发布者,其exe与上面发布的相同

如何检查上述断言的有效性

open a live kd session    
run task manager in target and select a startup     
look at details and locate the process name   say vmtoolsd.exe    
break into kd using ctrl+break     
!process 0 0 vmtoolsd.exe    
.process /p /r EPROCESS ADDRESS OF vmtoolsd.exe    
!dh vmtoolsd find the Data directory SECURITY DIRECTORY and start searching for FILE_VERSION_INFO   
loacte the string value of Company Name    
use eb Address to edit the Company Name to some random string    
execute using g    
now execute task manager and you will see the publisher column in startup tab reflecting the random string as publisher   

你应该得到这样的结果

kd> $$>a< getuname4proc.txt
xx-PC$          smss.exe

LOCAL SERVICE   svchost.exe

xx              taskhost.exe
kd>$$>a
我曾试图编辑并发布pykd团队答案的澄清,但编辑结果并不充分,因此将此作为答案发布

lmvm输出的FileDescription引用任务管理器详细信息选项卡中的描述列

公司名称指的是“启动”选项卡中的“发布者”列

您可以通过修改在启动时执行的任何文件的rsrc部分中的文件版本信息进行检查。请参见下文windbg中编辑的发布者,其exe与上面发布的相同

如何检查上述断言的有效性

open a live kd session    
run task manager in target and select a startup     
look at details and locate the process name   say vmtoolsd.exe    
break into kd using ctrl+break     
!process 0 0 vmtoolsd.exe    
.process /p /r EPROCESS ADDRESS OF vmtoolsd.exe    
!dh vmtoolsd find the Data directory SECURITY DIRECTORY and start searching for FILE_VERSION_INFO   
loacte the string value of Company Name    
use eb Address to edit the Company Name to some random string    
execute using g    
now execute task manager and you will see the publisher column in startup tab reflecting the random string as publisher   

你应该得到这样的结果

kd> $$>a< getuname4proc.txt
xx-PC$          smss.exe

LOCAL SERVICE   svchost.exe

xx              taskhost.exe
kd>$$>a
您可以通过使用
获得这些信息以及更多信息!ps
来自的命令


注意:从内核内存转储只能获取用户名。要获取用户名、文件描述和公司名称,您需要一个完整的内存转储

  • dbgkit.dll
    复制到winext文件夹中(例如:
    C:\ProgramFiles(x86)\Windows Kits\10\Debuggers\x64\winext
  • 在WinDbg中打开转储文件
  • 运行
    。加载dbgkit
    命令
  • 运行
    !ps
    命令(要查看其他命令,请运行!dbgkit.help)

  • 您可以通过使用
    获得这些信息以及更多信息!ps
    来自的命令


    注意:从内核内存转储只能获取用户名。要获取用户名、文件描述和公司名称,您需要一个完整的内存转储

  • dbgkit.dll
    复制到winext文件夹中(例如:
    C:\ProgramFiles(x86)\Windows Kits\10\Debuggers\x64\winext
  • 在WinDbg中打开转储文件
  • 运行
    。加载dbgkit
    命令
  • 运行
    !ps
    命令(要查看其他命令,请运行!dbgkit.help)
  • 答案是否定的
    !for_each_process "r $t0=(@@c++(((_EPROCESS*) @#Process )->Token.Object)&0xfffffff8);r? $t1=@@c++(((_TOKEN*)@@(@$t0))->LogonSession->AccountName);r? $t2=@@c++(((_EPROCESS *) @#Process )->ImageFileName);.printf \"%mu\t\t\t%ma\\n\",@@c++((wchar_t *)@$t1.Buffer),@@c++((char*)@$t2)"
    
    kd> $$>a< getuname4proc.txt
    xx-PC$          smss.exe
    
    LOCAL SERVICE   svchost.exe
    
    xx              taskhost.exe