首页 > 其他分享 >通过内核调试查看当前的输入桌面对象

通过内核调试查看当前的输入桌面对象

时间:2023-06-24 19:00:30浏览次数:44  
标签:桌面 查看 win32kbase 内核 216d6c48 调试

通过本地内核调试或者用户双机调试查看当前的用户输入桌面

在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

相关文章

  • 数据库内核:PostgreSQL 存储
    存储管理数据库管理系统的存储管理分级在数据库管理系统中存储管理的目的是:提供页或者元组集合的数据视图将数据库对象(例如表)映射到磁盘文件上管理数据与磁盘存储之间的传输使用缓冲区来减少磁盘/内存之间传输次数将加载的数据还原成为元组是使用访问方法......
  • 驱动开发:摘除InlineHook内核钩子
    在笔者上一篇文章《驱动开发:内核层InlineHook挂钩函数》中介绍了通过替换函数头部代码的方式实现Hook挂钩,对于ARK工具来说实现扫描与摘除InlineHook钩子也是最基本的功能,此类功能的实现一般可在应用层进行,而驱动层只需要保留一个读写字节的函数即可,将复杂的流程放在应用层实现是一......
  • 驱动开发:摘除InlineHook内核钩子
    在笔者上一篇文章《驱动开发:内核层InlineHook挂钩函数》中介绍了通过替换函数头部代码的方式实现Hook挂钩,对于ARK工具来说实现扫描与摘除InlineHook钩子也是最基本的功能,此类功能的实现一般可在应用层进行,而驱动层只需要保留一个读写字节的函数即可,将复杂的流程放在应用层实现是一......
  • Linux内核的一些特点和功能
    Linux内核是一个开源的、免费的操作系统内核,它是Linux操作系统的核心组件。Linux内核负责管理计算机硬件资源,提供基本的系统服务和功能。以下是Linux内核的一些特点和功能:多任务支持:Linux内核支持多任务处理,使得多个应用程序可以同时运行并共享系统资源。设备驱动程序:Linux内核......
  • 操作系统内核的演进过程是一个持续的、不断进化的过程。在操作系统发展的历史中,涌现出
    操作系统内核的演进过程是一个持续的、不断进化的过程。在操作系统发展的历史中,涌现出了许多分支和创新。以下是一些主要的操作系统内核分支和创新:宏内核(MonolithicKernel):宏内核是最早的操作系统内核设计,所有核心功能和设备驱动程序都在内核空间运行。例如,早期的Unix内核就采......
  • Windows NT和Linux,采用了混合内核的设计模式 混合内核(Hybrid Kernel)是一种操作系统内
    混合内核(HybridKernel)是一种操作系统内核设计模式,它结合了微内核和宏内核两种设计理念的特点。混合内核旨在提供高性能和灵活性,同时保持较强的安全性和稳定性。混合内核在内核设计中将一些关键的服务和功能放在内核空间中,同时将其他非关键的服务和功能封装成独立的用户空间进程......
  • [C/C++] Visual Stdio Code中多线程多源码文件编译、运行和调试
    搞了很久,记录一下:一.环境OS:Ubuntu20.04VSCode:1.77.0g++:g++(Ubuntu9.4.0-1ubuntu1~20.04.1)9.4.0二.配置文件下面两个文件先不要手动创建,下面第三章会讲到:task.json:编译程序的配置文件;launch.json:运行程序的配置文件.三.编译&运行1.打开main函数所在的cpp文......
  • 如何直接通过 ABAP 调试器将 SE16 事务码里无法直接查看的内容下载到本地试读版
    在SAPABAP系统里,我们可以使用事务码SE16查看数据库表的内容。这个事务码很方便,但是有一些局限性,比如类型为RAWSTRING的二进制内容,无法在这个事务码里方便的查看。下面的数据库表ZFILE是一个例子:字段VALUE存放的是文件的二进制内容。我们使用事务码SE16查看该文件的内......
  • [ARM 汇编]高级部分—性能优化与调试—3.4.3 使用模拟器进行调试与测试
    在ARM汇编程序开发过程中,使用模拟器(emulator)进行调试和测试是一种非常有效的方法。模拟器可以在不同的处理器上测试代码,帮助我们发现潜在的问题,并提供丰富的调试功能。本节将介绍如何使用QEMU(一个流行的开源模拟器)进行ARM汇编程序的调试和测试。安装QEMU首先,我们需要安装QEMU......
  • 甲骨文Ubuntu ARM安装桌面版
    1、更新系统aptupdate-y;aptupgrade-y2、安装桌面aptinstallubuntu-desktop-y安装桌面这个过程比较慢,2核12G耗时6分钟3、安装xrdpaptinstallxrdp-y3、添加用户、重启Xrdp、开机启动adduserxrdpssl-certsystemctlrestartxrdpsystemctlstatusxrdp......