# AWS2Exec - .dtors & .fini_array {{#include ../../../banners/hacktricks-training.md}} ## .dtors > [!CAUTION] > Hoy en día es muy **raro encontrar un binario con una sección .dtors**. Los destructores son funciones que se **ejecutan antes de que el programa termine** (después de que la función `main` retorna).\ Las direcciones de estas funciones se almacenan dentro de la sección **`.dtors`** del binario y, por lo tanto, si logras **escribir** la **dirección** en un **shellcode** en **`__DTOR_END__`**, eso será **ejecutado** antes de que el programa termine. Obtén la dirección de esta sección con: ```bash objdump -s -j .dtors /exec rabin -s /exec | grep “__DTOR” ``` Usualmente encontrarás los marcadores **DTOR** **entre** los valores `ffffffff` y `00000000`. Así que si solo ves esos valores, significa que **no hay ninguna función registrada**. Así que **sobrescribe** el **`00000000`** con la **dirección** al **shellcode** para ejecutarlo. > [!WARNING] > Por supuesto, primero necesitas encontrar un **lugar para almacenar el shellcode** para poder llamarlo más tarde. ## **.fini_array** Esencialmente, esta es una estructura con **funciones que serán llamadas** antes de que el programa termine, como **`.dtors`**. Esto es interesante si puedes llamar a tu **shellcode simplemente saltando a una dirección**, o en casos donde necesitas volver a **`main`** nuevamente para **explotar la vulnerabilidad una segunda vez**. ```bash objdump -s -j .fini_array ./greeting ./greeting: file format elf32-i386 Contents of section .fini_array: 8049934 a0850408 #Put your address in 0x8049934 ``` Ten en cuenta que esto **no** **creará** un **bucle eterno** porque cuando regreses a main, el canario lo notará, el final de la pila podría estar corrupto y la función no se volverá a llamar. Así que con esto podrás **tener 1 ejecución más** de la vulnerabilidad. > [!CAUTION] > Ten en cuenta que con [Full RELRO](../common-binary-protections-and-bypasses/relro.md), la sección `.fini_array` se vuelve **de solo lectura**. {{#include ../../../banners/hacktricks-training.md}}