JMP FAR的使用不明确

Nod*_*m66 0 x86 assembly intel

在Book Rootkits中:颠覆Windows内核第5章:运行时修补第120-125页(Greg Hoglund,James Butler,2006)

他说 JMP FAR 0x08:0xAAAAAAAA会跳到0xAAAAAAAA

但是,维基说 0x08:0xAAAAAAAA = (0x08 * 0x10) + 0xAAAAAAAA

什么是真的.

Igo*_*sky 5

在保护模式下,选择器值(示例中地址的段部分)不使用"按4移位"计算.相反,该值用作Local或Global描述符表的索引,并使用表中的基址.

链接的代码似乎是针对Windows.Windows使用简单的平面内存模型,其中大多数选择器以0为基数映射整个4BG地址空间.这就是为什么选择器8将映射到0并且跳转将(尝试)转到地址0xAAAAAAAA.

我不确定使用远跳是什么意思,我认为正常跳转(没有重新加载选择器)也会起作用.