2011-05-16 63 views
0

在书中的rootkit不清楚用法:颠覆Windows内核第5章:运行修补页120-125(格雷格·霍隆德,詹姆斯·巴特勒,2006)JMP FAR

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

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

什么是真的。

+0

我不知道你在问什么? – 2011-05-16 18:35:34

回答

5

在保护模式下,选择器值(在本例中是地址的段部分)不使用“shift by 4”计算。而是将该值用作本地或全局描述符表中的索引,并使用表中的基地址。

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

我不知道什么是使用远跳,我认为正常跳跃(无需重新加载选择器)也可以。