问题描述
|
我一直在为Windows进行黑客攻击,并在进行SIDT时遇到了
一个事实。读取SIDT时,我发现IDT限制的值为0xFFF(u4096)。
我很惊讶地发现了它。我的印象是描述符的最大
数量为256。那么IDTR限制为何为0xFFF?
我的系统是I7,以64位运行Win 7。
谢谢。
解决方法
两个事实:
该限制是表中的最高合法地址,而不是最高中断号。
IDT条目在x86-32中占用8个字节。在x86-64中,它加倍(至16个字节)以处理更大的地址。
256 * 16 =4096。字节将从偏移量0开始,到4095结束。
(顺便说一句,0xFFF等于4095,而不是4096。)