00008clAATT2k9UU.es.srt

Este video es un tutorial corto (“apéndice”) donde se muestra el método correcto para crear estructuras asociadas a clases que ya existen como símbolos RTTI en Ghidra, sin crear una clase duplicada.


El problema original:

Cuando se usa Autocreate Class Structure en Ghidra, se crea una clase con un nombre automático (ej: AutoClass). Al intentar renombrarla al nombre de la clase RTTI original (ej: derived_example_1), Ghidra la rechaza porque ese nombre ya existe como símbolo detectado por RTTI, aunque no tenga estructura asociada. Esto resultaba en dos clases paralelas con el mismo contenido.


El método correcto (paso a paso):

  1. No usar Autocreate Class Structure. Ese es el paso clave que hay que evitar.
  2. Crear una estructura manual (New Structure) con exactamente el mismo nombre que la clase RTTI (ej: derived_example_1). El nombre tiene que coincidir carácter por carácter, incluyendo guiones bajos.
  3. Ir al constructor, hacer Edit Function Signature, habilitar Use Custom Storage, setear el this como tipo derived_example_1*, y eliminar los argumentos no utilizados.
  4. Hacer Rename Function y ponerle el nombre en formato derived_example_1::derived_example_1 para que Ghidra lo reconozca como constructor dentro del namespace de esa clase.
  5. Sacar la tilde de Use Custom Storage. Esto es crítico: con la tilde puesta solo aparece Autofill Structure, pero sin ella aparece Autofill Class Structure, que es la opción que llena la estructura correctamente asociada a la clase existente.
  6. Hacer Autofill Class Structure → Ghidra llena los campos de la estructura automáticamente.

Resultado:

La estructura, la vtable, y todos los métodos queda asociados a la misma clase RTTI original sin crear duplicados. Todo queda centralizado en un solo namespace dentro de Ghidra.