| 分类: 操作系统 |
我用c语言写一个程序,需要直接操纵硬件,如何进入ring0??
2K/XP下:
http://www.xfocus.net/articles/200306/562.html
9x下:
令Win32应用程序跳入系统零层
东南大学卢威(luwei@126.com)
周昊理(moses@263.net)
---众 所 周
知, 在Windows95/98
的Win32 on
Intel x86 体
系 中 利
用 了 处
理 器 的
三 环 保
护 模 型
中 的 零
环(Ring0, 最
高 权 限
级 别) 和
三 环(Ring3,
最 低 权
限 级 别)。
一 般 应
用 程 序
都 运 行
在Ring3 下,
受 到 严
格 的" 保
护", 只 能
规 矩 地
使 用Win32API。
如 果 我
们 想 进
行 一 些
系 统 级
的 操 作,
例 如 在
嵌 入 汇
编 中 使
用 诸 如"Mov
EAX,CR0", 或
像 在DOS 下
那 样 调
用 一 些
必 不 可
少 的 系
统 服 务(
如BIOS,DPMI 服
务) 而
用"Int xx",
都 会 导
致" 非 法
操 作"。 但
这 种 能
力 有 时
是 必 不
可 少 的,
一 到 这
种 时
候Microsoft 就
" 建 议
编 写 一
个VxD"。VxD 大
家 早 有
所 闻 了,
在VxD 里, 不
但 可 以
执 行CPU 的
所 有 指
令, 而 且
可 以 调
用VMM( 虚 拟
机 管 理
器) 和 其
他VxD 提 供
的 上 千
个 系 统
级 服 务。
获 得 这
一 能 力
的 最 本
质 原 因
在 于 它
运 行
在Ring0, 与
系 统 内
核 同 一
级 别。 但
2K/XP下:
http://www.xfocus.net/articles/200306/562.html
9x下:
令Win32应用程序跳入系统零层
东南大学卢威(luwei@126.com)
---

加载中…