Uso poco claro de JMP FAR

En el libro Rootkits: subvertir el kernel de Windows Capítulo 5: Aplicación de parches en tiempo de ejecución Páginas 120-125 (Greg Hoglund, James Butler, 2006)

el dijo que JMP FAR 0x08:0xAAAAAAAA saltará a 0xAAAAAAAA

pero Wiki dice 0x08:0xAAAAAAAA = (0x08 * 0x10) + 0xAAAAAAAA

lo que es verdad.

preguntado el 16 de mayo de 11 a las 18:05

No tengo ni idea de lo que pides -

1 Respuestas

En el modo protegido, los valores del selector (la parte del segmento de la dirección en su ejemplo) no utilizan el cálculo de "desplazamiento en 4". En su lugar, el valor se usa como un índice en la tabla de descriptores local o global, y se usa la dirección base de la tabla.

El código vinculado parece estar hecho para Windows. Windows usa un modelo de memoria plano simple, donde la mayoría de los selectores mapean todo el espacio de direcciones 4BG con la base 0. Es por eso que el selector 8 se mapeará a 0 y el salto (intentará) ir a la dirección 0xAAAAAAAA.

No estoy seguro de cuál es el punto de usar un salto lejano, creo que un salto normal (sin recargar el selector) funcionaría igual de bien.

contestado el 16 de mayo de 11 a las 22:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.