Ghidra 101: carga de símbolos de Windows (archivos PDB)

Ghidra: carga de símbolos de Windows (archivos PDB)

En esta serie de blogs, me centraré en los útiles ghidra características que puede haber pasado por alto. Cada publicación analizará una característica diferente y mostrará cómo lo ayuda a ahorrar tiempo y ser más efectivo en sus flujos de trabajo de ingeniería inversa. Ghidra es una herramienta increíblemente poderosa, pero gran parte de este poder proviene de saber cómo usarla de manera efectiva.

El proceso de transformación del código fuente en archivos binarios de aplicaciones es un proceso con pérdidas, pero al menos algunos de estos datos se pueden reincorporar a un análisis de Ghidra cargando información de depuración. De hecho, Microsoft mantiene un depósito de archivos de bases de datos de programas (PDB) con información de depuración sobre cada archivo ejecutable publicado. Los archivos PDB generados al vincular una aplicación se pueden usar para correlacionar instrucciones particulares con el nombre del archivo del código fuente y los números de línea, así como para etiquetar variables y funciones con nombres simbólicos de la fuente. Aunque no es estrictamente necesario para un análisis exitoso, cargar un archivo PDB puede acelerar en gran medida el proceso de reversión al dar una idea del proceso de pensamiento de los autores.

Ghidra brinda una funcionalidad útil para identificar y descargar archivos PDB desde un servidor de símbolos. Aunque los lanzamientos iniciales de Ghidra requerían Windows, el lanzamiento de la versión 9.2 en noviembre de 2020 introdujo un analizador PDB independiente de la plataforma, lo que abrió las puertas para que los usuarios de Linux y macOS analicen fácilmente los componentes de Windows completos con información de símbolos. En esta publicación, recapitularé brevemente los pasos para usar Ghidra para analizar un binario de Windows con detalles cargados desde el servidor de símbolos de Microsoft.

Ser capaz de hacer esto de forma nativa en Ghidra sin una computadora con Windows es un gran impulso de productividad para aquellos de nosotros que ocasionalmente debemos diseccionar los binarios de Windows pero que no usamos principalmente Windows como un sistema operativo nativo. Es realmente fantástico ver a los desarrolladores de Ghidra agregar funciones que mejoran directamente mi flujo de trabajo, y no puedo esperar para ver lo que está en camino para nuevas características.

Sin más introducción, estos son los pasos para identificar, descargar y aplicar archivos PDB de Windows desde el servidor de símbolos públicos de Microsoft. Los pasos se probaron en macOS con Ghidra 9.2.2 a través de Amazon Corretto para JDK 11:

Paso 1: Importe un ejecutable o una biblioteca de Windows en un proyecto de Ghidra.

Paso 2: Abra el programa en CodeBrowser y seleccione ‘No’ cuando se le solicite analizar el programa.

Paso 3: Seleccione ‘Descargar PDB’ en el menú Archivo

Seleccione 'Descargar PDB'

Etapa 4: Seleccione ‘PDB’ cuando se le solicite elegir entre PDB y XML

Seleccione 'PDB' cuando se le solicite elegir entre PDB y XML

Paso 5: El siguiente mensaje pregunta sobre el uso de una ruta de búsqueda especificada en el ejecutable. Seleccione ‘No’ y luego seleccione una carpeta local donde se deben descargar los archivos PDB.

Paso 6: Haga clic en «Elegir entre URL conocidas» para seleccionar una URL de descarga adecuada y haga clic en «Descargar desde URL».

  haga clic en 'Descargar desde URL'

Paso 7: Después de una ventana emergente que confirma el éxito de la descarga, seleccione ‘Sí’ para aplicar el PDB.

seleccione 'Sí' para aplicar el PDB.

Paso 8: Confirme las opciones de carga de PDB haciendo clic en ‘Aplicar’.

Confirme las opciones de carga de PDB haciendo clic en 'Aplicar'

Paso 9: Sea paciente mientras se cargan los símbolos. Esto puede tardar unos minutos.

Cargar PDB

Paso 10: Observe que el árbol de símbolos se ha rellenado con nombres de símbolos descriptivos.

El árbol de símbolos se ha rellenado con nombres de símbolos descriptivos.

Todas las vistas y complementos de Ghidra disponibles ahora deben integrarse con la información de depuración del PDB.

AVISO: Estas instrucciones fueron escritas para Ghidra 9.2.x. Próximamente se publicará una publicación actualizada para cargar símbolos en Ghidra 10.x.

Publicaciones Similares