首页
社区
课程
招聘
[旧帖] ring0中fs:[51h]是什么内容? 0.00雪花
发表于: 2008-9-7 22:20 5110

[旧帖] ring0中fs:[51h]是什么内容? 0.00雪花

2008-9-7 22:20
5110
问各位一个问题,在ring0中fs:[51h]是什么内容?在反汇编驱动中常有这个,不是是什么?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 191
活跃值: (95)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
kd> dt nt!_teb
   +0x000 NtTib            : _NT_TIB
   +0x01c EnvironmentPointer : Ptr32 Void
   +0x020 ClientId         : _CLIENT_ID
   +0x028 ActiveRpcHandle  : Ptr32 Void
   +0x02c ThreadLocalStoragePointer : Ptr32 Void
   +0x030 ProcessEnvironmentBlock : Ptr32 _PEB
   +0x034 LastErrorValue   : Uint4B
   +0x038 CountOfOwnedCriticalSections : Uint4B
   +0x03c CsrClientThread  : Ptr32 Void
   +0x040 Win32ThreadInfo  : Ptr32 Void
   +0x044 User32Reserved   : [26] Uint4B
   +0x0ac UserReserved     : [5] Uint4B
   +0x0c0 WOW32Reserved    : Ptr32 Void
   +0x0c4 CurrentLocale    : Uint4B
   +0x0c8 FpSoftwareStatusRegister : Uint4B
   +0x0cc SystemReserved1  : [54] Ptr32 Void
   +0x1a4 ExceptionCode    : Int4B
   ……
  ……
没看到有价值的东西,楼下继续
2008-9-8 09:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
TEB是在RING3下,FS[0]指向的。在RING0下,FS:[0]指向KPRC,其结构如下:
nt!_KPCR
   +0x000 NtTib            : _NT_TIB
   +0x01c SelfPcr          : Ptr32 _KPCR
   +0x020 Prcb             : Ptr32 _KPRCB
   +0x024 Irql             : UChar
   +0x028 IRR              : Uint4B
   +0x02c IrrActive        : Uint4B
   +0x030 IDR              : Uint4B
   +0x034 KdVersionBlock   : Ptr32 Void
   +0x038 IDT              : Ptr32 _KIDTENTRY
   +0x03c GDT              : Ptr32 _KGDTENTRY
   +0x040 TSS              : Ptr32 _KTSS
   +0x044 MajorVersion     : Uint2B
   +0x046 MinorVersion     : Uint2B
   +0x048 SetMember        : Uint4B
   +0x04c StallScaleFactor : Uint4B
   +0x050 DebugActive      : UChar
   +0x051 Number           : UChar
   +0x052 Spare0           : UChar
   +0x053 SecondLevelCacheAssociativity : UChar
   +0x054 VdmAlert         : Uint4B
   +0x058 KernelReserved   : [14] Uint4B
   +0x090 SecondLevelCacheSize : Uint4B
   +0x094 HalReserved      : [16] Uint4B
   +0x0d4 InterruptMode    : Uint4B
   +0x0d8 Spare1           : UChar
   +0x0dc KernelReserved2  : [17] Uint4B
   +0x120 PrcbData         : _KPRCB

所以+51h是number,好像是CPU个数,但是不确定。
2008-9-8 12:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
最主要是不知其作用,下面是NDIS中NdisGetReceivedPacket的代码:

NDIS!NdisGetReceivedPacket:
f7593f1a 8bff            mov     edi,edi
f7593f1c 55              push    ebp
f7593f1d 8bec            mov     ebp,esp
f7593f1f 8b4508          mov     eax,dword ptr [ebp+8]
f7593f22 8b4808          mov     ecx,dword ptr [eax+8]
f7593f25 56              push    esi
f7593f26 33f6            xor     esi,esi
f7593f28 640fb60551000000 movzx   eax,byte ptr fs:[51h]
f7593f30 8b550c          mov     edx,dword ptr [ebp+0Ch]
f7593f33 39948128030000  cmp     dword ptr [ecx+eax*4+328h],edx
f7593f3a 750c            jne     NDIS!NdisGetReceivedPacket+0x2e (f7593f48)
f7593f3c 85d2            test    edx,edx
f7593f3e 7408            je      NDIS!NdisGetReceivedPacket+0x2e (f7593f48)
f7593f40 0fb7421e        movzx   eax,word ptr [edx+1Eh]
f7593f44 8b74103c        mov     esi,dword ptr [eax+edx+3Ch]
f7593f48 8bc6            mov     eax,esi
f7593f4a 5e              pop     esi
f7593f4b 5d              pop     ebp
f7593f4c c20800          ret     8

这里用到FS:[51H]就不知其作用。
2008-9-8 12:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
刚才有看了一下DDK,这个FS:[51H]是处理器号。
2008-9-8 13:49
0
雪    币: 191
活跃值: (95)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
谢谢LZ!!
2008-9-8 16:21
0
雪    币: 270
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
原来如此..............
2008-9-8 17:27
0
游客
登录 | 注册 方可回帖
返回
//