FS寄存器的改变是从R3进入R0后和从R0退回到R3前完成的,也就是说:都是在R0下给FS赋不同值的....当线程运行在R3下时,FS指向的段是GDT中的0x3B段.该段的长度为4K,基地址为当前线程的线程环境块(TEB),所以该段也被称为“TEB段”.因为Windows中线程是不停切换的,所以该段的基地址值将随线程切换而改变的...SP3 下这些结构的地址都是随机映射的.所以进程的PEB的地址只能通过FS:[0x30]来获取了.Windows中每个线程都有一个ETHREAD结构,该结构的TEB成员(其实是KTHREAD中的成员,而...KTHREAD又是ETHREAD的成员)是用来保存线程的TEB地址的,当线程切换时,Windows就会用该值来更改GDT的0x30段描述符的基地址值....GDT中的0x30段.该段的长度也为4K,基地址为0xFFDFF000.该地址指向系统的处理器控制区域(KPCR).这个区域中保存这处理器相关的一些重要数据值,如GDT、IDT表的值等等.