能力值:
( LV2,RANK:10 )
|
-
-
2 楼
不是有一本寒江独钓的书吗
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
LZ弄反了,GDT的0x3b段是当前的线程环境块teb
0x30段才是系统处理器控制区域kpcr
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
寒江独钓这本书没有讲过这些吧。NT驱动开发时详细看过这本书。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
先看CPU保护模式的资料吧。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
如果你问的是i386平台(AMD64有所不同)上Windows系统的GDT表项偏移:
R0_CODE 8 // 0x08
R0_DATA 16 // 0x10
R3_CODE 24 // 0x18
R3_DATA 32 // 0x20
TSS 40 // 0x28
R0_PCR 48 // 0x30
R3_TEB 56 // 0x38
VDM_TILE 64 // 0x40
LDT 72 // 0x48
DF_TSS 80 // 0x50
NMI_TSS 88 // 0x58
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
保护模式汇编讲的是他的结构以、使用方法和保护模式汇编。这些已经OK,我想知道的是windows系统在KiSystemStartup中内核各模块的初始化完成之后,Gdt中的各描述符项对应段的内容。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
找到了
Sel. Type Base Limit DPL Attributes
GDTbase=80036000 Limit=03FF
0008 Code32 00000000 FFFFFFFF 0 P RE
0010 Data32 00000000 FFFFFFFF 0 P RW
001B Code32 00000000 FFFFFFFF 3 P RE
0023 Data32 00000000 FFFFFFFF 3 P RW
0028 TSS32 8024D000 000020AB 0 P B
0030 Data32 FFDFF000 00001FFF 0 P RW
003B Data32 7FFD9000 00000FFF 3 P RW
0043 Data16 00000400 0000FFFF 3 P RW
0048 LDT E1190000 000001FF 0 P
0050 TSS32 80149F60 00000068 0 P
0058 TSS32 80149FC8 00000068 0 P
0060 Data16 00022940 0000FFFF 0 P RW
0068 Data16 000B8000 00003FFF 0 P RW
0070 Data16 FFFF7000 000003FF 0 P RW
0078 Code16 80400000 0000FFFF 0 P RE
0080 Data16 80400000 0000FFFF 0 P RW
0088 Data16 00000000 00000000 0 P RW
0090 Reserved 00000000 00000000 0 NP
...
00E0 Reserved 00008003 00006100 0 NP
00E8 Data16 00000000 0000FFFF 0 P RW
00F0 Code16 80117DB0 0000028D 0 P EO
00F8 Data16 00000000 0000FFFF 0 P RW
0100 Reserved 00008003 00006108 0 NP
...
03F8 Reserved 00000000 00000000 0 NP
|
|
|