能力值:
( LV2,RANK:10 )
|
-
-
2 楼
TEB的开头部分就是TIB。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
TEB第一个字段指向TIB结构的首地址我知道的,现在的问题是FS指向的也是TIB结构首地址,而不是指向TIB首地址的指针,怎么找到TEB结构首地址呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
哦,TIB好像是在TEB里直接展开的,不是指针形式保存在TEB第一个字段
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
typedef struct _TEB { NT_TIB Tib; PVOID EnvironmentPointer; CLIENT_ID Cid; PVOID ActiveRpcInfo; PVOID ThreadLocalStoragePointer; PPEB Peb; //... }
typedef struct _NT_TIB { PEXCEPTION_REGISTRATION_RECORD ExceptionList; PVOID StackBase; PVOID StackLimit; PVOID SubSystemTib; union { PVOID FiberData; ULONG Version; }; PVOID ArbitraryUserPointer; PNT_TIB Self; } NT_TIB, *PNT_TIB;
個人理解如下:
FS:[0] = *(Address of FS Segment + 0)
= *PEXCEPTION_REGISTRATION_RECORD
= EXCEPTION_REGISTRATION_RECORD (即是 SEH Frame)
|
|
|