永发信息网

如何用windbg观察ring3进ring0的过程

答案:1  悬赏:40  手机版
解决时间 2021-11-24 22:58
如何用windbg观察ring3进ring0的过程
最佳答案
SYSENTER 指令是在 Inter Pentium(R) Ⅱ 处理器上作为“快速系统调用”功能的一部分被首次引用的。
SYSENTER 指令进行过专门的优化,能够以最佳性能由 Ring3 层切换到 Ring0 层。
微软首次引用 SYSENTER 指令是在 Windows 2000 的系统上,再次之前微软的系统是通过自陷指令 int 0x2E 进入 Ring0 层的系统空间的。
在 Windows 2000 及以后的系统中,如果想要从 Ring3 层进入 Ring0 层,系统首先会将要调用的系统调用号(SSDT调用号)放入 EAX 中,然后将当前栈指针 ESP 的内容放入 EDX 中后执行SYSENTER 指令;
SYSENTER 被执行后会将控制权传递给特殊模块寄存器 IA32_SYSENTER_EIP 所指向的函数中,完成后续操作。

特殊模块寄存器组(Model-Specific registers,MSRs)是 CPU 中负责执行一些特定的、与计算逻辑相关性不大的、且操作较复杂的功能的一组寄存器。
特殊模块寄存器可通过使用 rdmsr/wrmsr 指令读写其位于 MSRs 指定偏移处的某个寄存器的信息。
MSRs 共包含上百种具有不同功能的寄存器。每个寄存器所在的偏移与所占用的空间都不尽相同,目前 MSRs 的可用偏移范围是 0x00000000 ~ 0xC0000103。

与 SYSENTER 相配合的 MSRs 共有3个,其详细信息如下所示:

名称 偏移 说明
SYSENTER_CS_MSR 0x174 切换到 Ring0 层之后的 CS 选择器
SYSENTER_ESP_MSR 0x175 切换到 Ring0 层之后的 ESP
SYSENTER_EIP_MSR 0x176 切换到 Ring0 层之后的 EIP
SYSENTER 被执行时,这 3 个寄存器会执行以下操作配合.
SYSENTER 完成的切换操作:

装载 SYSENTER_CS_MSR 到 CS 寄存器,设置目标代码段;
装载 SYSENTER_EIP_MSR 到 EIP 寄存器,设置目标指令;
将 SYSENTER_CS_MSR + 8 装载到 SS 寄存器,设置栈段;
装载 SYSENTER_ESP_MSR 到 ESP 寄存器,设置栈帧;
切换 Ring0;
清除 EFLAGS 的 VM 标志;(虚拟8086方式标志)
执行位于 EIP 处的 RING0 例程。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
电视机2k和4k的区别
'c54x dsp的总线结构有哪些特点
爽肤水被加了护手霜还能用吗
华益慰的人物语录
java后台怎样规定上传的图片的大小格式,
第一声的piao流piao到底是哪个
反像和正像投影仪有什么本质的区别
最大最小原则为什么叫悲观主义原则
这是什么高达
大家帮我看我看看下面的差分输入是什么意思?
求 hp追逐by顾寒衣 的完整有肉的。附了邮箱,
种碗豆方法
从榆林火车站到西北春服装批发市场怎么走
我的世界工厂收割机
小狗死掉后会去哪,好舍不得它
推荐资讯
设标有a b c d e的五盏灯,顺次排成一行,每
东方汽修厂(沧州泊头市)地址在什么地方,想过
赫基集团主要做什么人群的服装?
十月一日起,持真实退伍征〉、转业征〉在全国
电摩。我想用自喷漆喷哑光黑,用光油还是用哑
还收藏双旗币吗?
咸鱼上卖全新的未拆封的盒装CPU,拆开了还能
什么歌适合表白?
英语翻译1)"您乘坐的航班已经取消了"用英文
怎样跨越与父母之间的代沟?
豪门蜜爱,独宠天后小萌妻百度云txt下载
我想变成我妈,因为我觉得我妈最伟大
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?