gpt4 book ai didi

cpu - 更改中断 vector 表

转载 作者:太空宇宙 更新时间:2023-11-04 00:35:50 25 4
gpt4 key购买 nike

在我的一次大学讲座中,我们讨论了 Hook 和更改中断 vector 表 (IVT) 的可能性。

我们的教授说,具有 root 权限的程序能够更改 IVT,并且可以使用此功能,例如作为每次按键的按键记录器。

这是否意味着我可以用例如C 程序我的 IVT?或者它是如何工作的?

最佳答案

中断 vector 表只是放置在内存中某处的项目1 的数组。如果你的程序有 root 权限,它可以写入 /dev/mem并更改 IVT 的内容。

无论如何调和,IVT 都不够均匀,不足以让 Hook 工作:您必须首先找到 IVT2然后计算放入其中的正确值3。虽然成为 root 通常不够,您可以使用 C 程序调整 IVT,但您可能需要编写一个内核模块来获得working hook .

挂接 IVT 的非常具体的方法取决于选择的体系结构,您可以引用特定的 CPU 手册 和平台数据表简单地谷歌搜索他们。

Hook IVT 实际上可能用作 escalation 的一部分而不是向 OS4 添加功能。


<子>1x86实模式 中使用远指针,在保护和长模式 中使用描述符ARMPowerPC 使用指令,MIPS 并没有真正的 IVT。

<子>2x86 中,它可以在任何地方,您需要使用特权指令 lidt。在 ARM 中,它可以位于固定位置,也可以通过使用 VTORVBAR 等寄存器移动。从中读取是特权操作。在 PowerPC 中,它可以位于由 MSR 寄存器确定的两个固定位置,这也是一个特权寄存器。在 MIPS 中确实没有 IVT 并且位置是固定的。 无论如何,为了执行特权指令,您需要制作一个内核模块,root 是不够的。

<子>3为了在这里准确,需要有点过于技术性,引入 MMU 的概念、地址转换、指令制作、蹦床和进程上下文(您的例程本质上是隔离的,因为它可以在任何其他进程上下文)。

<子>4值得注意的是,“与 OS* 作对通常是一个上坡,付出的代价很小或根本没有,与其改变精心打造的 OS 结构,还不如使用相关的 API。

关于cpu - 更改中断 vector 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37105785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com