WEB开发网
开发学院软件开发VC 解析Windows2000的IDT扩展机制 阅读

解析Windows2000的IDT扩展机制

 2006-07-20 11:40:19 来源:WEB开发网   
核心提示: 3、中断相关数据结构首先我们介绍一下前面我们提到的一条关键汇编指令sidt的相关数据结构,在执行指令sidt后,解析Windows2000的IDT扩展机制(3),系统将会把中断描述符表的基地址和限制(总共长六字节)保存在指令中指向的变量指针中,这就是我们进行IDT操作的入门口,始终为零;u

3、中断相关数据结构

首先我们介绍一下前面我们提到的一条关键汇编指令sidt的相关数据结构。在执行指令sidt后,系统将会把中断描述符表的基地址和限制(总共长六字节)保存在指令中指向的变量指针中,这就是我们进行IDT操作的入门口。 typedef struct _idtr
{
  //定义中断描述符表的限制,长度两字节;
  short    IDTLimit;
  //定义中断描述服表的基址,长度四字节;
  unsigned int  IDTBase;
}IDTR,*PIDTR;
当我们获得了IDT的入口后,就会在中断描述符表中检索我们需要处理的中断号对应的IDT单元,单元中包含了很多我们需要注意的数据结构,其中我们最为关心的是代码段选择器,中断代码执行的偏移量和特权等级等,那好我们先给出它的定义,在下文中我们将详细讨论它们的具体应用。 typedef struct _idtentry
{
  //中断执行代码偏移量的底16位;
  unsigned short  OffsetLow;
  //选择器,也就是寄存器;
  unsigned short  Selector;
  //保留位,始终为零;
  unsigned char    Reserved;
  //IDT中的门的类型:包括中断门,陷阱门和任务门;
  unsigned char    Type:4;
  //段标识位;
  unsigned char    SegmentFlag:1;
  //中断门的权限等级,0表示内核级,3表示用户级;
  unsigned char    DPL:2;
  //呈现标志位;
  unsigned char    Present:1;
  //中断执行代码偏移量的高16位;
  unsigned short  OffsetHigh;
}IDTENTRY,*PIDTENTRY;
4、创建软件中断钩子的作用

上一页  1 2 3 4 5  下一页

Tags:解析 Windows IDT

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接