Re: windbg可以查看GDT表吗

WinDbg

windbg可以查看GDT表吗


merry 2009-03-13, 20:26 下午

我知道softice可以查看到GDT表的所有描述符,请问windbg是否可以查看GDT表?

谢谢!

Re: windbg可以查看GDT表吗


格蠹老雷 2009-03-14, 11:26 上午

使用dg命令就可以观察GDT表的各个表项,每个表项是按字段显示的,很友好,例如:

0:000> dg 8 0x40
                                  P Si Gr Pr Lo
Sel    Base     Limit     Type    l ze an es ng Flags
---- -------- -------- ---------- - -- -- -- -- --------
0008 00000000 ffffffff Code RE Ac 0 Bg Pg P  Nl 00000c9b
0010 00000000 ffffffff Data RW Ac 0 Bg Pg P  Nl 00000c93
0018 00000000 ffffffff Code RE Ac 3 Bg Pg P  Nl 00000cfb
0020 00000000 ffffffff Data RW Ac 3 Bg Pg P  Nl 00000cf3
0028 80042000 000020ab TSS32 Busy 0 Nb By P  Nl 0000008b
0030 ffdff000 00001fff Data RW Ac 0 Bg Pg P  Nl 00000c93
0038 7ffdf000 00000fff Data RW Ac 3 Bg By P  Nl 000004f3
0040 00000400 0000ffff Data RW    3 Nb By P  Nl 000000f2

如果要观察GDT表的原始形式,那么可以通过!pcr或者r gdtr得到GDT表的基地址,然后使用内存观察命令观察:

lkd> !pcr
KPCR for Processor 0 at ffdff000:
    Major 1 Minor 1
 NtTib.ExceptionList: acb74c7c
     NtTib.StackBase: acb74df0
    NtTib.StackLimit: acb71000
  NtTib.SubSystemTib: 00000000
       NtTib.Version: 00000000
   NtTib.UserPointer: 00000000
       NtTib.SelfTib: 7ffde000

             SelfPcr: ffdff000
                Prcb: ffdff120
                Irql: 00000000
                 IRR: 00000000
                 IDR: ffffffff
       InterruptMode: 00000000
                 IDT: 8003f400
                 GDT: 8003f000
                 TSS: 80042000

       CurrentThread: 8946b630
          NextThread: 00000000
          IdleThread: 80551d20

           DpcQueue:
lkd> dd 8003f000
8003f000  00000000 00000000 0000ffff 00cf9b00
8003f010  0000ffff 00cf9300 0000ffff 00cffb00
8003f020  0000ffff 00cff300 200020ab 80008b04
8003f030  f0000001 ffc093df e0000fff 7f40f3fd
8003f040  0400ffff 0000f200 00000000 00000000
8003f050  95000068 80008954 95680068 80008954
8003f060  2f30ffff 00009302 80003fff 0000920b
8003f070  700003ff ff0092ff 0000ffff 80009a40

Re: windbg可以查看GDT表吗


merry 2009-03-17, 09:18 上午

Hi!Raymond

    谢谢你的热心解答!

    我问这个问题是想查看一下GDT描述符的s位,然而从dg命令中看不到这个信息 因此,请教一下:

   1.)有没有"比较友好"的方式办法能查看GDT描述符的s位的状况(我想看一下LDT在GDT的信息)

   2.)听说winxp不再使用CPU的 IDT表,请问是这样吗?(也许用windbg能够直接看到,可惜我不会,:) )

  谢谢!

   

Re: windbg可以查看GDT表吗


dbxmm 2014-05-09, 15:51 下午
1.本人菜鸟,弱弱问一下,注意到左边的提示符lkd,请问怎么进入这种模式?
2.网上的方法不管用啊,网上说启动Windbg的时候使用“-kl”参数,使用之后出现如下对话框。
Unable to debug the local kernel,Win32 error 0n87 参数错误
这些问题应该查找哪方面的资料呢?

Re: windbg可以查看GDT表吗


zhaohui2 2014-05-11, 06:41 上午
要打开os的调试模式,然后用管理员打开,应该就是这样

Powered by Community Server Powered by CnForums.Net