|
发表于 2012-1-20 02:11:52
|
显示全部楼层
做个中断门,然后切换CS选择子,随意调用
http://www.x64asm.com/ASMBBS/thread-1380-1-1.html- ;切换为RING0
- mov eax,0FFFFFFFFH
- mov cx,8H
- int 21H
- in ax,92H
- bts ax,0
- out 92H,ax
- ;切换为RING3
- mov eax,0FFFFFFFFH
- mov cx,01BH
- int 21H
复制代码 IRETD切换CS后,将DS,ES,FS,GS都切换过去,然后设置ESP为内核堆栈
(从MSR读取),这样 应用程序就切入了内核模式,然后手脚做完后,切换CS为R3,恢复DS,ES,FS,GS,ESP。 |
|