¿Alguien puede explicar qué significa Ret2plt y cómo funciona?

2

Estoy leyendo sobre el mecanismo de protección de desbordamiento de pila como DEP, y está escrito que Ret2plt y system() pueden usarse para evitarlo.

¿Qué es Ret2plt y cómo funciona? No puedo encontrar una explicación única de este término en google.

    
pregunta palerna 30.03.2017 - 10:21
fuente

1 respuesta

1

En resumen, salta a la dirección de la entrada PLT para la función = llamar a la función.

Ret2plt es un concepto similar a Ret2libc con respecto a DEP. La protección de ejecución de datos / DEP funciona al hacer que la memoria no sea ejecutable (montón, pila ...). Esto funciona para evitar la ejecución del código si el código malicioso se introduce de contrabando en esas áreas no ejecutables. Pero si pudiéramos llamar código que tiene que ser ejecutable, como código libc, entonces será ejecutable. En el nivel de ensamblaje, incluso podríamos pasarle nuestros propios parámetros.

Descrito aquí: Rafal Wojtczuk, 1998 , volver a PLT usa la tabla de enlace de procedimientos para llamar indirectamente a las funciones libc.

El PLT es necesario porque el código de la biblioteca no se carga en la memoria en direcciones fijas, generalmente es un código independiente de la posición (PIC). Por lo tanto, las llamadas de procedimiento a bibliotecas compartidas se realizan a través del PLT. Si regresamos al PLT, estamos llamando efectivamente a las bibliotecas compartidas vinculadas por el PLT.

La principal limitación es que solo puede llamar a funciones que ya están siendo utilizadas por el programa, o de lo contrario no tendrán un enlace en el PLT.

    
respondido por el flerb 19.07.2017 - 19:47
fuente

Lea otras preguntas en las etiquetas