00007C1-yi7fgAjc.es.srt

Este video es una sesión de limpieza y reorganización de clases/estructuras en Ghidra después de haber hecho el análisis estático del ejercicio 5. El problema era que durante el análisis se habían creado estructuras con nombres incorrectos (ej: base_1, derived_1, nest_1) que no coincidían con los nombres originales detectados por RTTI (base, derived_example_1, derived_example_2, nest).


Export/Import del proyecto:

Se mostró el flujo de exportar un proyecto de Ghidra como archivo .gzf desde una instancia y importarlo en otra. Todo el análisis, renombramientos y estructuras se mantienen íntegros.


Proceso de corrección (se repitió para cada clase):

El flujo para cada clase fue idéntico:

  1. Abrir la estructura incorrecta (ej: base_1) y renombrarla al nombre original de la clase RTTI (ej: base).
  2. Ir al constructor y hacer Edit Function Signature → cambiar el tipo del this al nuevo nombre correcto (base*, derived_example_1*, etc.).
  3. Hacer Rename Function → pasar primero a namespace global, y después renombrar con el formato ClassName::ClassName para que Ghidra lo reconozca como constructor del namespace correcto.
  4. Repetir el mismo proceso para todos los métodos de la clase: cambiar el tipo del this y mover cada función al namespace correcto.
  5. Una vez que todas las funciones se movieron, borrar la estructura y namespace antigua (ej: base_1, derived_1).

Clases corregidas:

Nombre incorrecto Nombre correcto Métodos movidos
base_1 base Constructor
derived_1 derived_example_1 Constructor, function_counter, random, imprimir_case, destructor
derived_2 derived_example_2 Constructor, valor_calculado, destructor
nest_1 nest Constructor, imprimir_hello, only_test

Resultado final:

Todas las clases quedaron con sus nombres RTTI originales, sus métodos correctamente asociados dentro del namespace correspondiente, y sus vtables relacionadas. Los nombres de las vtables en sí (nest_1_btable, derived_1_btable) son decorativos y no afectan la funcionalidad, así que se dejaron para arreglarlos después.