在Book Rootkits:Subverting Windows Kernel 第5章:运行时修补页面120-125(Greg Hoglund,James Butler,2006)
他说的那样JMP FAR 0x08:0xAAAAAAAA
会跳转到0xAAAAAAAA
但是,Wiki说
0x08:0xAAAAAAAA = (0x08 * 0x10) + 0xAAAAAAAA
什么是真的。
答案 0 :(得分:5)
在保护模式下,选择器值(示例中地址的段部分)不使用“shift by 4”计算。相反,该值用作Local或Global描述符表的索引,并使用表中的基址。
链接代码似乎是为Windows制作的。 Windows使用简单的平面内存模型,其中大多数选择器以0为基数映射整个4BG地址空间。这就是为什么选择器8将映射到0并且跳转将(尝试)转到地址0xAAAAAAAA。
我不确定使用远跳是什么意思,我认为正常跳转(不重新加载选择器)也可以正常工作。