通过本地内核调试或者用户双机调试查看当前的用户输入桌面
在windbg中搜索win32kbase内核模块的导出符号,找到类似如下的符号
x win32kbase!*grpdeskRitInput*
最终定位到的当前桌面对象名称为Default桌面
0: kd> x win32kbase!*grpdeskRitInput*
fffff643`216d6c48 win32kbase!grpdeskRitInput = <no type information>
0: kd> dqs fffff643`216d6c48 l1
fffff643`216d6c48 ffffcc04`b53ffcf0
0: kd> !object ffffcc04`b53ffcf0
Object: ffffcc04b53ffcf0 Type: (ffffcc04b0d50d20) Desktop
ObjectHeader: ffffcc04b53ffcc0 (new version)
HandleCount: 87 PointerCount: 2812903
Directory Object: 00000000 Name: Default
上面结果是使用livekd本地内核调试时找到的。本地内核可以查看内核中的内存,相当于给内核做了快照,获取到的进程信息都不是实时的,要获取刚创建的进程,需要重启一次windbg。
也可以通过双机调试查看。
还不知道如何获取当前桌面顶层窗口对应的线程。
标签:桌面,查看,win32kbase,内核,216d6c48,调试 From: https://www.cnblogs.com/ps12345678/p/17501508.html