首页
社区
课程
招聘
[求助]关于"中断门"的数据结构
发表于: 2008-4-14 13:31 6593

[求助]关于"中断门"的数据结构

2008-4-14 13:31
6593

在我印象当中,中断描述符是占八个字节的,然儿,今天看<<rootkit:windows内核安全防护>>时,它却给出这样的结构:

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;

我数了数,这应该是11个字节吧
然后我在google了下,网络上关于门数据结构是:

GATE     STRUC      ;门结构类型定义
    OFFSETL  DW      0  ;32位偏移的低16位
    SELECTOR DW      0  ;选择子
    DCOUNT   DB      0  ;双字计数字段
    GTYPE    DB      0  ;类型
    OFFSETH  DW      0  ;32位偏移的高16位
    GATE     ENDS

这个结构是占八个字节.

请大家帮帮忙,为什么?


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (2)
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
typedef struct _idtentry
{
  //中断执行代码偏移量的底16位;
  unsigned short  OffsetLow;  //2 bytes
  //选择器,也就是寄存器;
  unsigned short  Selector;  //2 bytes
  //保留位,始终为零;
  unsigned char    Reserved;  //1 byte
  //IDT中的门的类型:包括中断门,陷阱门和任务门;
  unsigned char    Type:4;  // 4 bit
  //段标识位;
  unsigned char    SegmentFlag:1; //1 bit
  //中断门的权限等级,0表示内核级,3表示用户级;
  unsigned char    DPL:2;  //2 bit
  //呈现标志位;
  unsigned char    Present:1; //1 bit
  //中断执行代码偏移量的高16位;
  unsigned short  OffsetHigh;  //2 bytes
}IDTENTRY,*PIDTENTRY;

total:8 bytes
2008-4-14 15:58
0
雪    币: 243
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
原来是这样啊,呵呵 谢啦
2008-4-14 21:45
0
游客
登录 | 注册 方可回帖
返回
//