关于FS寄存器
晚辈又来求助了,这次是内核相关问题如标题,FS这个寄存器究竟放了什么内容,先看用户态
段选择子是0x003B,段基址是0x7FFDF000,那是不是意味着我用段选择子去GDT表里找到这个基址为0x7FFDF000的段描述符
0x3B拆解 00111 011 索引是0x7,
很明显这个描述符的段基址并不是0x7FFDF000
于是我就想着是不是方法有问题,我找了一下内核态下的FS
根据KPCR结构体,0x1C指向自己,也就是说0x83f7cc00就是fs寄存器的段基址
段选择子是0x0030 拆解 110 000 索引是0x6
这个索引就正好对的上0x83f7cc00这个段基址
晚辈的问题就是用户态下的fs寄存器的段基址放哪去了呢? 会线程切换的,每个线程都有自己的TEB,所以每次线程切换GDT表都会被修改,当前查看的gdt表是当前线程的fs段基地址
想看用户态fs的话,可以随便找个用户态程序,下个断点,让windbg断下来,就可以在gdt表看到用户态的fs段基地址了 BlueTears 发表于 2023-6-8 18:06
会线程切换的,每个线程都有自己的TEB,所以每次线程切换GDT表都会被修改,当前查看的gdt表是当前线程的fs ...
感谢感谢,受教了{:1_893:}
页:
[1]