IDTR限制超过256

age*_*ith 0 x86 kernel x86-64 windows-7

我一直在为Windows做一些黑客攻击,当我做SIDT时遇到了一个事实.当我读SIDT时,我发现IDT限制的值是0xFFF(u4096).

我很惊讶地发现它.我的印象是最大描述符数是256.那么IDTR限制为何是0xFFF?

我的系统是I7在64位运行Win 7.

谢谢.

cHa*_*Hao 5

两个事实:

  • 限制是表中最高的合法地址,而不是最高的中断号.
  • IDT条目在x86-32中占用8个字节.在x86-64中,为了处理更大的地址,它加倍(到16个字节).

256*16 = 4096.字节将从偏移0开始并在4095结束.

(BTW,0xFFF等于4095,而不是4096.)