000065QN2yCOVSHM.es.srt
Este video es la parte 2 del análisis estático del ejercicio 5, donde se completan las funciones type_stack y type_global después de haber terminado type_pointer en el video anterior.
Función type_stack:
Es casi idéntica a type_pointer, pero la estructura derived_example_1 no se crea con new sino que se aloca directamente en el stack (variable local de 0x20 bytes). Por eso al setear el tipo se eligió derived_example_1 sin asterisco (no es un puntero, es el objeto completo inline). El flujo es el mismo:
__AutoClassInit zeroea los 0x20 bytes.derived_example_1.function_counter con random como parámetro → los valores resultantes son random y random * (random - 1), igual que antes.case, get_random (retorna random), y get_valor_calculado (retorna el valor calculado por la función anterior).Nest incrustado: el valor 0x1337, hello, only_test.hello_from_derived caracter por caracter usando un puntero char* que avanza hasta encontrar el nulo.buffer_20.La función se renotó como type_stack.
Función type_global:
La estructura derived_example_1 en este caso está en la sección .data (objeto global/estático). Una diferencia clave es que su inicialización no ocurre dentro de main sino en una función de pre-main llamada init, que se ejecuta antes del entry point. Esa función hace el mismo proceso: __AutoClassInit + constructor de derived_example_1.
El resto del flujo dentro de type_global es idéntico a los otros dos: function_counter, imprimir_case, get_random, get_valor_calculado, impresión de campos de Nest, string caracter por caracter, y buffer_20. No tiene destructor ni cookie check porque la estructura está en .data y no necesita liberación.
Resumen de las tres funciones:
| Función | Ubicación del objeto | Tiene destructor | Tiene cookie check |
|---|---|---|---|
type_pointer |
Heap (new) |
Sí | Sí |
type_stack |
Stack (variable local) | Sí | Sí |
type_global |
.data (pre-main init) |
No | No |
Las tres reciben el mismo valor random como argumento y ejecutan exactamente las mismas operaciones sobre sus respectivos objetos.