用VisualCCPU特权指令操作(doc 4页)
所属分类:管理知识
文件大小:55 KB
下载要求:10 学币或VIP
点击下载用VisualCCPU特权指令操作目录:
一、引言
二、基本思路
三、所用到的数据结构
四、具体实现
用VisualCCPU特权指令操作内容提要:
80x86系列cpu具有四级保护机制。在windows 9x操作系统只使用0级和3级,以便于移植到精简指令集的计算机上,如rs4000等,这些处理器一般只有两个特权级,即系统级和用户级。在windows 9x系统环境,应用程序运行在ring3(3级),如果要运行特权指令就必须进入ring0(0级)。在同一任务内,实现特权级从外层到内层变换的普通途径是使用段间调用指令call,通过调用门进行转移;实现特权级从内层向外层变换的普通途径是使用段间返回指令ret。注意,不能用jmp指令实现任务内不同特权级的变换。调用门描述符转移的入口点包含目标地址的段及偏移量的48位全指针。在执行通过任务门的段间转移指令jmp或段间调用指令call时,指令所含指针内的选择子用于确定调用门,而偏移被丢弃;把调用门内的48位全指针作为目标地址指针进行转移。
取得全局描述符表,搜索该表找到一个暂时为空的描述符,安装调用门,进行远程调用即可实现特权指令操作, 当type的低4位值为0xc时,这是一个386调用门(callgate)。在vc中定义"门"如下:struct gate{ //门结构类型定义 gdtr长48位,其中高32位为基地址,低16位为界限,gdtr中的段界限以字节为单位。在vc中定义,
使用mfc appwizard新建一个基于对话框的应用程序,工程名为myring0。在对话框中添加一个按钮,修改id为id_getcr0,修改caption为取cr0的值,同时添加该按钮的消息处理函数void cmyring0dlg::ongetcr0()。新建一个头文件ring0.h并添加到工程中,添加下面的代码到ring0.h中。
精品资料网 m.cnshu.cn
Copyright © 2004- 粤ICP备10098620号-1
风险管理 应急预案 研发管理 运营管理 内部管理 商业模式 执行力 连锁经营 公司治理 工厂管理 创新管理 家族企业 效率管理 名企案例 企业理念 价值管理 特许经营 瓶颈管理 调查问卷 策划方案 领导力 团队建设 企业变革 企业文化 战略管理 竞争策略 管理知识 危机管理 成本管理 项目管理 发展战略 年度计划 决策管理 企业上市 供应商 组织设计 产品管理 采购管理 品牌管理 企业诊断 企业咨询 商务谈判 物流管理 运作管理 管理制度 行业报告 经营管理 企划方案 MBA 流程管理 目标管理 招标投标 商务礼仪 管理表格 管理技能 管理案例 管理工具 管理手册 职业经理人 商业计划书 董事与股东 可行性报告