首页
社区
课程
招聘
[求助]3环进0环SS0和ESP0是如何切换到ss寄存器和esp寄存器中的?
发表于: 2021-8-5 02:51 4011

[求助]3环进0环SS0和ESP0是如何切换到ss寄存器和esp寄存器中的?

2021-8-5 02:51
4011

3环进入0环是通过中断门找到cs eip寄存器的值,然而我在逆向代码的过程中并没有看到有代码切换cs和eip的内核或者用户层代码,我想这应该是CPU的一个功能,自动将中断门描述里面的数值拿到cpu的寄存器中。跨段提权CS改变,ss、 esp寄存器也应该跟着改变,在ntdll.dll与ntoskrnl.exe的kiintsystemcalld代码中并没有发现有更改ss、esp的代码。但是ss与esp已经改变了。所以我猜测这也应该是一个硬件的行为。有哪位大哥能告我这是一个怎样的堆栈切换过程么?非常感谢。


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

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 60
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
通过堆栈交换
2021-8-5 08:30
0
雪    币: 1475
活跃值: (14652)
能力值: ( LV12,RANK:380 )
在线值:
发帖
回帖
粉丝
3
TSS
2021-8-5 09:29
0
雪    币: 4738
活跃值: (4286)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4

cpu的源代码是用C语言开发的 还是汇编语言开发的

最后于 2021-8-5 09:53 被木志本柯编辑 ,原因:
2021-8-5 09:52
0
雪    币: 4738
活跃值: (4286)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
能不能对硬件进行逆向呢??
2021-8-5 09:54
0
雪    币: 405
活跃值: (2280)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
看INTEL和AMD的指令手册,32位下看SYSENTER,64位下看SYSCALLL
2021-8-5 10:20
0
雪    币: 858
活跃值: (643)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
SSH山水画 TSS
怎样通过TSS任务段进行的切换,是硬件行为么?是通过TR寄存器找到TSS描述符,通过硬件切换,还是通过当前线程的TSS进行的切换?如果是通过当前线程的TSS结构体应该会有进行堆栈的切换代码,但是我没有找到。所以这里有点疑惑。请大佬解惑。
2021-8-5 14:47
0
雪    币: 12848
活跃值: (9147)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
8
木志本柯 能不能对硬件进行逆向呢??
去找个x86模拟器,里面有你想要的一切具体实现
2021-8-5 16:04
0
雪    币: 1332
活跃值: (9481)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
9

可以参照Intel开发者手册Volume 2,Chapter 4——4.3中SYSENTER一节,加上Windbg调试以理解。



Windbg调试可以参阅该文——http://lmao123.com/index.php/40.html

最后于 2021-8-5 16:12 被erfze编辑 ,原因:
2021-8-5 16:09
0
雪    币: 14855
活跃值: (6083)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10

MSR?
不一定非要切换ss,可以继续用ring3。

最后于 2021-8-5 16:59 被tDasm编辑 ,原因:
2021-8-5 16:57
0
雪    币: 858
活跃值: (643)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
wowocock 看INTEL和AMD的指令手册,32位下看SYSENTER,64位下看SYSCALLL
感谢!
2021-8-5 18:03
0
雪    币: 858
活跃值: (643)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
感谢大佬解惑!
2021-8-5 18:03
0
雪    币: 858
活跃值: (643)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
感谢大佬解惑!
2021-8-5 18:05
0
游客
登录 | 注册 方可回帖
返回
//