使用中断门实现在Windows98操作系统中从应用级跳转到核.pdf

上传人:qwe****56 文档编号:74651474 上传时间:2023-02-27 格式:PDF 页数:4 大小:134.94KB
返回 下载 相关 举报
使用中断门实现在Windows98操作系统中从应用级跳转到核.pdf_第1页
第1页 / 共4页
使用中断门实现在Windows98操作系统中从应用级跳转到核.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《使用中断门实现在Windows98操作系统中从应用级跳转到核.pdf》由会员分享,可在线阅读,更多相关《使用中断门实现在Windows98操作系统中从应用级跳转到核.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、文章编号:!#$%&!(()%$(%$)使用中断门实现在*+,-./0#1操作系统中从应用级跳转到核心级施旭燕,张志,田凯(哈尔滨工程大学 自动化学院,黑龙江 哈尔滨!2 !)摘要:在*+,-./0#3操作系统下实现中断必须通过级别跳转,特别是软中断还要进行跳转前后的级别检查,如果不用专门工具是相当困难的。介绍了利用修改中断门描述符的办法来实现跳转,不需要专门工具,十分方便。!关键词:中断门;描述符表;特权等级中图分类号:4 5)!(文献标识码:6!#$%&#($)*+,-*./&,0 1-2 +)1 3/&,0 1*.4*.0 5 3#16$1&,-*.78 9 3-1#:9;1,.3%.-

2、1&$-/,-1 37 8 9:;8 6?A+,4 9 6?B=+(C.D D E F E.G6:H.I=H+.,,8=J K+,L,F+,E E J+,FM,+N E J 0+H,8=J K+,!2 !,C A+,=)(:3-&,+-:9 H+0N E J A=J-H.J E=D+O E+,H E J J:P H+.,/+H A.:H 0 P E Q+=D H.D 0+,*+,-./0#1R P E J=H+,F7 0 H E IK E SQ=:0 E,.H.,D I:0 H+H 0/+H Q AH.A+F A D E N E D,K:H=D 0.H A E 0.G H+,H E J J:P

3、 H+.,E E-H.K EQ A E Q T E-G.J H A E D E N E DG.J E=,-=G H H A E 0/+H Q AK I E=,0.G J E N+0+,F+,H E J J:P H+.,F=H E 0-E 0 Q J+P H.J U 9 H+0 Q.,N E,+E,H H.K E+I P D E I E,H SE-/+H A.:H:0+,F 0 P E Q+=D H.D 0 U=1 95&0 3:+,H E J J:P H F=H E;-E 0 Q J+P H.J H=K D E;P J E J.F=H+N EF J=-E引言C 9 8病毒是一种*+,-./0#

4、2#1系统下的)(位文件型病毒,它只是一个常见的5 L文件(扩展名为L L的文件)。C 9 8正是利用了*+,-./0#3系统的“漏洞”,使用9?4)中断门直接从应用级(V 9?))跳到核心级(V 9?),从而可以完全控制系统。而这一切又是如何实现的呢?!实现原理首先 明 确 几 个 概 念,W 4、W 4 V、9 W 4、9 W 4 V、X W 4、X W 4 VU从1 )1%开始重视对多任务操作系统的支持,1 )1%除了为任务的切换提供硬件上的支持,还支持容量极大的虚拟存储器U为了管理如此大的存储空间,1 )1%采用了片内两级存储管理,即每段容量高达Y Z的分段管理和每页YB Z的分页管理

5、。分段管理实现虚拟地址(或称逻辑地址)向线性地址转换;分页管理实现线性地址向物理地址转换。这里只讲述有关的分段管理。文献!1 )1%为了实现分段管理,把有关段的信息即段基地址、长度(又叫界限)、属性全部存放在一个称为段描述符(简称描述符)的1字节长的数据结构中,并把系统中所有的描述符编成表,以便硬件查找和识别。1 )1%共设置了)种描述符表,即全局描述符表 W 4、中断描述符表9 W 4、局部描述符表X W 4U W 4和X W 4定义了1 )1%系统中使用的所有段,9 W 4包含了多达(2%个中断处理程序的中断描述符。因为描述符表是位于存储器中的,为此,分别用一个寄存器来指出起位置。这)个寄

6、存器分别称为全局描述符表寄存器 W 4 V、中断描述符表寄存器9 W 4 V和局部描述符表寄存器X W 4 V,前两者均!收稿日期:(!$#$!作者简介:施旭燕(!#&1$),女,云南景谷人,哈尔滨工程大学自动化学院硕士研究生,主要研究方向:控制理论与控制工程。第(#卷第%期应用科技.D U(#,U%(年%月6 P P D+E-7 Q+E,Q E=,-4 E Q A,.D.F :,U,(万方数据为!字节,#$%为&字节。()!通过中断描述符表中的中断门描述符而不是中断向量来协助中断响应和处理。*#$中每一项包含个字节,称为门描述符。门描述符从功能上看类似中断向量,但中断向量只用+个字节提供中断

7、处理程序的入口地址,而门描述符包含了更多的信息。门描述符按种类分又属于系统描述符。*#$寄存器格式*#$基地址()&位)*#$界限(,!位)门描述符的格式(左边高字,右边低字)偏移量,!),保护属性(,-选择子,!),偏移量(,-保护属性格式.#.#$/.0(1 2 3 4$保护属性中最重要的一个是#.,访问该门的任务应具备的特权级,此数越大表明访问该门的任务特权级(1.)越低。我们正是利用这一点实现应用级向核心级的跳转。选择子段描述符索引$*%.什么是选择子?选择子的作用又是什么?这还得从()!的保护模式谈起。在(!下,每个段的大小都是固定的!+5 6,分段部件只要将段寄存器中的值左移+位,

8、就得到对应段的基地址,再加上偏移量就得到存储单元的线性地址。而保护模式下,每个段的大小是可以选择的,就不能从,!位的段寄存器中得到段的基地址。这样系统就利用前面介绍的描述符表,通过段寄存器的,!位地址从描述符表中选择一个描述符,利用这个描述符查到段的基地址。这时段寄存器的内容就称为选择子(7 8 9 8:;利用选择子的高,)位来指出所选项在描述符表中的位置,用$*指出描述符在当前哪个描述符表中,$*?(在#$中,$*?,在#$中。%.定义此段使用的特权级别。总之门描述符中选择子的作用就是找到代码段的基地址,再加上)&位的偏移量从而获得中断处理程序的入口的线性地址。为了更明确为什么在A B C

9、D ,保护属性,).?,;此描述符有效&)#.?);访问此门的任务应具备的优先级))#$?(;中断门描述符属于系统描述符+)$/.0?0;()!中断门&选择子选取(&I,为什么要选择(&I呢?用“1;=9J#”呼出7 2 K$*1 0,键入#$,对应(&I后结果如下。(&I1 )偏移量用L 1JJ!(创建一个A B C)&控制台程序,M&第!期施旭燕,等:使用中断门实现在A B C D E F G 操作系统中从应用级跳转到核心级万方数据来实现跳转。用“!#$%&”呼出()*+!,,键入-&*命令发现./位代码段对应选择子0 1 2 2 3,并有如下所示。0 1 2 2 3!4 5 6./0 0

10、 0 0 0 0 0 0 3)3.78,选择子./位代码段选择子段的基地址段的界限值描述 符 的 特权级此段 在 内 存中代码 段 可 读和执行现在可以非常清楚的看到0/9 3选择子和0 1 2 2 3选择子对应的段基地址相同,中断门中的偏移量实际就给出了中断处理程序的入口的线性地址。所以只要把中断处理程序入口的偏移量传递给门描述符的偏移量,就可以实现向核心级的跳转。具体代码和说明如下。!:;?6 A B C?6 A B C中 定 义 了&D(8&、&D(8&E-(F G、H I*,、D(8&等数据类型!:;$=5 6!A 5:4 B C&D(8&J#0;用来保存控制寄存器!8 0(./位双字

11、)的值K 4:5 J 5 6$A 6(;L M 6 5)#:;N 0:A#(K 4:5)J L A OO 4 K 6 L P,#0 9 0.9 Q中的控制寄存器的存储特权指令,只能在8+F G 0级运行O 4 K J#0,6 L PJ L A O:#6 5 中断返回K 4:5O L:;()&D(8&-(F G:5#,A L K 6:5;D(8&N L 6RS0 P 0 0 0 0,0 P 0 0/9,0 P 6 6 0 0,0 P 0 0 0 0;中断门描述符J L A OA:5 :5#读取+&*8寄存器,正是因为这条指令能够在8+F G.级下运行我们才能获得+&*的基地址,近而获得+F*.的

12、门描述符O 4 K 6 T P,&D(8&#:5#%/将+&*的基地址读入,H U(./位)寄存器L 5 5 6 T P,/R 因为使用+F*.,而每一个中断门描述符9个字节,这样获得+F*.的门描述符的起始地址O 4 K 6 A:,6 T P$6 L 6 5:,A L K 6:5 O 4 K A 5O 4 K A 5 这R条指令用来保存原来+F*.的门描述符$6 L 6 L P,#:;N 0:A#O 4 KN L 6,L P 将中断处理程序入口地址的偏移量低1 Q位移入门描述符中偏移量的低1 Q位A C#6 L P,1 Q 右移1 Q位O 4 KN L 6%Q,L P 将中断处理程序入口地址

13、的偏移量高1 Q位移入门描述符中偏移量的高1 Q位 以上R条指令在我们要创建的中断门描述符中添入中断处理程序入口的偏移量,使之指向中断处理程序$6 L 6 A:,N L 6O 4 K 6 5:,6 T PO 4 K A 5 以上R条指令将我们创建的中断门描述符替换+&*中+F*.对应的描述符O 4 K A 5:;.C 触发中断$6 L 6 A:,A L K 6:5 O 4 K 6 5:,6 T PO 4 K A 5O 4 K A 5 以上R条指令恢复+F*.原来的门描述符#:;V(”#0 S 0 P WP#;”,J#0);输出结果最后程序编译连接成功后执行输出结果#0S 0 P 9 0 0 0

14、 0 0 1 X,可以用()*+!,中的“!7 Y”命令查看!8 0控制寄存器的值,比较二者是否一致。.结语利用本文介绍的方法可以方便的实现级别跳转,为编程者实现自己的目的带来方便。但在自己编写的中断处理程序时要谨慎,避免出现意想不到的后果。另外介绍的例子简单明了、思路清晰,值得借鉴。参考文献1 戴梅萼,史嘉权B微型计算机技术及应用 从1 Q位到./位(第二版)ZB北京:清华大学出版社,1 X X Q B/彭礼孝B虚拟设备驱动程序开发起步与进阶 ZB北京:人民邮电出版社,/0 0 0 B9/应用科技第/X卷万方数据使用中断门实现在Windows98操作系统中从应用级跳转到核使用中断门实现在Windows98操作系统中从应用级跳转到核心级心级作者:施旭燕,张志,田凯作者单位:哈尔滨工程大学,自动化学院,黑龙江,哈尔滨,150001刊名:应用科技英文刊名:APPLIED SCIENCE AND TECHNOLOGY年,卷(期):2002,29(6)参考文献(2条)参考文献(2条)1.彭礼孝 虚拟设备驱动程序开发起步与进阶 20002.戴梅萼;史嘉权 微型计算机技术及应用-从16位到32位 1996 本文链接:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁