IDTR限制大于256

发布于 2024-11-17 01:48:17 字数 183 浏览 2 评论 0原文

我一直在为 Windows 做一些黑客工作,并在做 SIDT 时发现了一个事实。当我读取SIDT时,我发现IDT限制的值为0xFFF(u4096)。

我很惊讶地发现了这一点。我的印象是描述符的最大数量是256。那么为什么IDTR限制是0xFFF呢?

我的系统是 I7,运行 64 位 Win 7。

谢谢。

I have been doing some hacking for windows and came across a fact when I did SIDT. When I read SIDT, I found that value of IDT limit is 0xFFF(u4096).

I was pretty surprised to find it out. I was under the impression that maximum number of descriptors are 256. Then how come IDTR limit is 0xFFF?

My system is I7 running Win 7 in 64 bit.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼眸印温柔 2024-11-24 01:48:17

两个事实:

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

256 * 16 = 4096。字节将从偏移量 0 开始,到 4095 结束。

(顺便说一句,0xFFF 等于 4095,而不是 4096。)

Two facts:

  • The limit is the highest legal address in the table, not the highest interrupt number.
  • An IDT entry takes up 8 bytes in x86-32. In x86-64, it doubles (to 16 bytes) in order to handle the larger addresses.

256 * 16 = 4096. Bytes would start at offset 0 and end at 4095.

(BTW, 0xFFF is equal to 4095, not 4096.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文