线程切换-FS

在这里插入图片描述

mov eax, [ebx+18h] ; eax=TEB
.text:00405A37 mov ecx, [ebx+3Ch] ; ecx=GDT
.text:00405A3A mov [ecx+3Ah], ax ; fs的段选择子是38 拆开来是7(段选择为1的话,找的是GDT表的第二个,GDT表第一个成员为0,找第一个就要+8,第7个就是7*8),段描述符的BASE的低16为在段描述符的低4字节的高2字节。所以要+2也就是3A
.text:00405A3E shr eax, 10h ; eax右移16位
.text:00405A41 mov [ecx+3Ch], al ; 修改FS的BASE
.text:00405A44 mov [ecx+3Fh], ah

线程切换时,把TEB的地址写入了FS的段描述符base里面,实现了线程切换时,TEB也改变了、

猜你喜欢

转载自blog.csdn.net/qq_41490873/article/details/91096691
今日推荐