首页
社区
课程
招聘
[求助]关于保护模式TSS段的一些疑惑,求高手解答!
发表于: 2020-2-22 13:03 3883

[求助]关于保护模式TSS段的一些疑惑,求高手解答!

2020-2-22 13:03
3883
TSS段中存储了3环,0环的堆栈指针,在用调用门或中断门提权的切换到0环堆栈时候直接拿TSS段中存储的0环堆栈指针esp0和ss0来指定0环堆栈,那么这个esp0是不是cpu拿一块空白的内存当成0环堆栈来使用?还是说这个esp0就操作系统内核一直使用的那个堆栈?
这问题让我很困惑,求高手解答!万分感谢!感激不尽!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 10261
活跃值: (3920)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
TSS确实只是一块内存而已,GDT 表中可以存放多个TSS描述符,这意味着内存中可以存在多份不同的TSS。总有一个 TSS 是在当前使用中的,也就是 tr 寄存器指向的那个 TSS。至于你说的堆栈,不管你3环还是0环,都是内存,只是操作的权限不一样而已,,后面你可以用任务门来访问任务段,,那时候你就要手动构造一个TSS,你自己构造一块内存就行了
2020-2-22 13:33
0
雪    币: 3625
活跃值: (4559)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
千音丶 TSS确实只是一块内存而已,GDT 表中可以存放多个TSS描述符,这意味着内存中可以存在多份不同的TSS。总有一个 TSS 是在当前使用中的,也就是 tr 寄存器指向的那个 TSS。至于你说的堆栈,不 ...
不是无所谓,这关乎到你用中断门提权后能否通过mov eax,dword ptr [esp+X]获取到系统堆栈原来存放的一些数据
2020-2-22 13:46
0
雪    币: 1553
活跃值: (2919)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
esp0 指向的不是0环的堆栈么? 0环只有一个栈吧?
2020-2-22 20:43
0
雪    币: 2510
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
帮顶
2020-2-23 12:54
1
雪    币: 1790
活跃值: (4550)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
青丝梦 esp0 指向的不是0环的堆栈么? 0环只有一个栈吧?
内核怎么可能就只有一个栈? 每个线程都有一个栈和R3一样。 当进行任务切换时从TSS中拿到的是R0执行所需的ESP等地址(应该是虚拟地址),
然后经过GDT/LDT转化成对应的线性地址。  只能说同一TSS存储的ESP地址是一样的,但不同任务切换时ESP地址对应的线性地址是不同的。
2020-2-25 09:37
0
雪    币: 1324
活跃值: (2497)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
7
并不是哦TSS.esp0是随着R0线程交换不断切换的,而 TSS.esp0 的来源是当前线程数据流的内核堆栈
2020-2-27 20:15
0
游客
登录 | 注册 方可回帖
返回