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:
base_1) y renombrarla al nombre original de la clase RTTI (ej: base).Edit Function Signature → cambiar el tipo del this al nuevo nombre correcto (base*, derived_example_1*, etc.).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.this y mover cada función al namespace correcto.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.