【Windows内核】(1) 段寄存器属性探测

段寄存器结构

1.什么是段寄存器?有哪些

当我们用汇编读写某一地址时

mov dword ptr ds:[0x123456],eax

我们真正读写的地址是ds.base + 0x123456

段寄存器有ES CS SS DS FS GS LDTR TR 共8个

2.段寄存器结构

图形表示:
【Windows内核】(1) 段寄存器属性探测

结构体表示:

struct SegMent
{
WORD Selector; // 段选择子 16位 可见
WORD Attributes; // 段属性 16位 不可见 只有少数几个属性位是有效的
DWORD Base // 段起始地址 32位 不可见 仅对于FS和GS有效
DWORD Limit // 段大小 32位 不可见 仅对于FS和GS有效
}

3.段寄存器的读写

【Windows内核】(1) 段寄存器属性探测

CS 代码段寄存器

DS 数据段寄存器

SS 堆栈段寄存器

ES、FS及GS 附加数据段寄存器

上一篇:Overlapped Model


下一篇:TLS反调试