• WinDbg常用命令系列---!handle


    !handle

    简介

    !handle扩展显示有关目标系统中一个或所有进程拥有的一个或多个句柄的信息。

    使用形式

    • 用户模式
      !handle [Handle [UMFlags [TypeName]]]
      !handle -?
    • 内核模式
      !handle [Handle [KMFlags [Process [TypeName]]]]

    参数

    • Handle
      指定要显示的句柄的索引。如果Handle为-1或省略此参数,调试器将显示与当前进程关联的所有句柄的数据。如果句柄为0,调试器将显示所有句柄的数据。
    • UMFlags
      (仅限用户模式)指定显示内容。此参数可以是以下任何位值的总和。(默认值为0x1。)|
      位 0 (0x1)
      显示句柄类型信息。

      位 1 (0x2)
      显示基本句柄信息。

      位 2 (0x4)
      显示句柄名称信息。

      位 3 (0x8)
      显示特定于对象的句柄信息 (如果可用)。

    • KMFlags
      (仅限内核模式)指定显示内容。此参数可以是以下任何位值的总和。(默认值为0x3。)
      位 0 (0x1)
      显示基本句柄信息。

      位 1 (0x2)
      显示有关对象的信息。

      位 2 (0x4)
      显示可用的句柄项。 如果未设置此位并且省略了句柄或将其设置为零, 则显示的句柄列表不包含可用的句柄。 如果handle指定单个自由句柄, 则即使未设置此位, 也会显示该句柄。

      位 4 (0x10)
      显示来自内核句柄表而不是当前进程的句柄。

      位 5 (0x20)
      将句柄解释为线程 ID 或进程 ID, 并显示有关相应内核对象的信息。

    • Process
      (仅限内核模式)指定进程。您可以使用进程ID或进程对象的十六进制地址。此参数必须引用目标系统上当前正在运行的进程。如果此参数为-1或忽略此参数,则使用当前进程。如果此参数为0,则显示所有进程的句柄信息。
    • TypeName
      指定要检查的句柄的类型。 只显示匹配此类型的句柄。 TypeName区分大小写。 有效类型包括事件、节、文件、端口、目录、SymbolicLink、变化、Windowstation 时出错、信号量、密钥、令牌、进程、线程、桌面、IoCompletion、计时器、作业和 WaitablePort。
    • -?
      (仅用户模式)在调试器命令窗口中显示此扩展的一些帮助文本。

    支持环境

    Windows 2000

    Kdextx86 Ntsdexts Uext. .dll

    Windows XP 和更高版本

    Kdexts Ntsdexts Uext. .dll

    备注

    你可以在用户模式和内核模式实时调试过程中使用!handle扩展。 你还可以在内核模式转储文件中使用此扩展。 但是, 你不能对用户模式转储文件使用此扩展, 除非你专门使用处理信息创建它们。 (可以使用dump/mh (创建转储文件) 命令创建此类转储文件。)在实时用户模式调试过程中, 可以使用closehandle (关闭句柄) 命令关闭一个或多个句柄。

    0:000> !handle
    Handle 4
      Type          Section
    Handle 8
      Type          Event
    Handle c
      Type          Event
    Handle 10
      Type          Event
    Handle 14
      Type          Directory
    Handle 5c
      Type          File
    6 Handles
    Type            Count
    Event           3
    Section         1
    File            1
    Directory       1

    以下命令显示有关句柄0x8 的详细信息

    0:000> !handle 8 f
    Handle 8
      Type          Event
      Attributes    0
      GrantedAccess 0x100003:
             Synch
             QueryState,ModifyState
      HandleCount   2
      PointerCount  3
      Name          <none>
      Object Specific Information
        Event Type Auto Reset
        Event is Waiting

    以下示例是 ! handle的内核模式示例。 以下命令将列出所有句柄, 包括自由句柄。

    kd> !handle 0 4
    processor number 0
    PROCESS 80559800  SessionId: 0  Cid: 0000    Peb: 00000000  ParentCid: 0000
        DirBase: 00039000  ObjectTable: e1000d60  TableSize: 380.
        Image: Idle
    
    New version of handle table at e1002000 with 380 Entries in use
    
    0000: free handle, Entry address e1002000, Next Entry fffffffe
    0004: Object: 80ed5238  GrantedAccess: 001f0fff
    0008: Object: 80ed46b8  GrantedAccess: 00000000
    000c: Object: e1281d00  GrantedAccess: 000f003f
    0010: Object: e1013658  GrantedAccess: 00000000
    ......
    0168: Object: ffb6c748  GrantedAccess: 00000003 (Protected)
    016c: Object: ff811f90  GrantedAccess: 0012008b
    0170: free handle, Entry address e10022e0, Next Entry 00000458
    0174: Object: 80dfd5c8  GrantedAccess: 001f01ff
    ......

    以下命令显示有关内核句柄表中的句柄0x14 的详细信息。

    kd> !handle 14 13
    processor number 0
    PROCESS 80559800  SessionId: 0  Cid: 0000    Peb: 00000000  ParentCid: 0000
        DirBase: 00039000  ObjectTable: e1000d60  TableSize: 380.
        Image: Idle
    
    Kernel New version of handle table at e1002000 with 380 Entries in use
    0014: Object: e12751d0  GrantedAccess: 0002001f
    Object: e12751d0  Type: (80ec8db8) Key
        ObjectHeader: e12751b8
            HandleCount: 1  PointerCount: 1
            Directory Object: 00000000  Name: REGISTRYMACHINESYSTEMCONTROLSET001CONTROLSESSION MANAGEREXECUTIVE

    以下命令显示有关所有进程中的 Section 对象的所有句柄的信息。

    !handle 0 3 0 Section
    ...
    PROCESS fffffa8004f48940
        SessionId: none  Cid: 0138    Peb: 7f6639bf000  ParentCid: 0004
        DirBase: 10cb74000  ObjectTable: fffff8a00066f700  HandleCount:  39.
        Image: smss.exe
    
    Handle table at fffff8a00066f700 with 39 entries in use
    
    0040: Object: fffff8a000633f00  GrantedAccess: 00000006 (Inherit) Entry: fffff8a000670100
    Object: fffff8a000633f00  Type: (fffffa80035fef20) Section
        ObjectHeader: fffff8a000633ed0 (new version)
            HandleCount: 1  PointerCount: 262144
  • 相关阅读:
    MapReduce1.x与MapReduce2.x差异
    刷题60—排序数组
    刷题59— 圆圈中最后剩下的数字
    刷题58—地图分析
    刷题57—单词的压缩编码
    刷题56—卡牌分组
    刷题55—车的可用捕获量
    刷题54—三维形体的表面积
    刷题53—按摩师
    刷题52—链表的中间结点
  • 原文地址:https://www.cnblogs.com/yilang/p/11917856.html
Copyright © 2020-2023  润新知