system onlinepath: /guias/hacking/ghidra-desde-cero-para-analizar-ejecutables/mode: knowledge_baselocal:
Hacking ético · Nivel avanzado

Ghidra desde cero para analizar archivos ejecutables

Un ejecutable es código máquina: ilegible para las personas. Ghidra, la herramienta de ingeniería inversa que la NSA liberó como código abierto, lo traduce de vuelta a algo parecido a código fuente, para entender qué hace un programa cuando no tenés su código. La base del análisis de malware moderno.

17 min de lectura▣ Actualizada el ◇ Por Underc0de
Respuesta rápida

Ghidra es una herramienta de ingeniería inversa de software, desarrollada por la NSA (la agencia de seguridad de Estados Unidos) y liberada como código abierto y gratuita en 2019. Resuelve un problema concreto: un archivo ejecutable es código máquina —ceros y unos que el procesador entiende pero que para una persona son ilegibles—, y muchas veces necesitás saber qué hace un programa sin tener su código fuente. Ghidra hace el camino inverso al de un compilador: toma el binario y lo traduce de vuelta hacia algo que una persona puede leer. Trabaja en dos niveles. El desensamblador convierte el código máquina en ensamblador (instrucciones legibles pero de muy bajo nivel). Y el descompilador —la joya de Ghidra— va un paso más allá y reconstruye un pseudocódigo parecido a C, mucho más fácil de entender, que muestra la lógica del programa: sus funciones, sus condiciones, sus bucles. Con eso, un analista puede entender qué hace un ejecutable: qué archivos toca, con qué servidores se comunica, qué cifra, qué oculta. Sus usos son fundamentalmente defensivos y de investigación: análisis de malware (entender qué hace un binario malicioso para poder detectarlo y neutralizarlo), búsqueda de vulnerabilidades en software propio o autorizado, análisis forense y verificación de seguridad. Marco legal: la ingeniería inversa se hace sobre malware (para defenderse), sobre software propio, o con autorización; aplicarla a software de terceros puede chocar con licencias y leyes, según el caso y la jurisdicción. Ghidra suele ser el último eslabón: un binario que Volatility extrajo de la memoria se analiza aquí para saber qué hacía.

Ver índice de contenidos
  1. 01Qué es Ghidra
  2. 02Cómo descompila
  3. 03Para qué sirve
  4. 04Errores frecuentes
  5. 05Preguntas frecuentes
  6. 06Fuentes

Qué es Ghidra

Ghidra es una plataforma de ingeniería inversa de software (reverse engineering). La ingeniería inversa consiste en partir de un producto terminado —en este caso un archivo ejecutable— y trabajar hacia atrás para entender cómo está hecho y qué hace. Lo notable de Ghidra es su origen y su precio: la desarrolló la NSA para su trabajo interno y en 2019 la liberó como código abierto y gratuita, poniendo en manos de cualquiera una herramienta de nivel profesional que antes solo estaba al alcance de agencias y empresas con licencias caras. Eso democratizó el análisis de binarios y la convirtió en una de las herramientas de referencia del sector.

!
La ingeniería inversa tiene un marco legal que respetar

Ghidra en sí es neutra: analiza binarios. Lo que hay que enmarcar es sobre qué se aplica. Los usos claramente legítimos: analizar malware —entender un binario malicioso para defenderse de él es una actividad defensiva esencial—; analizar software propio —por ejemplo para encontrar vulnerabilidades en tus propios productos—; y analizar software de terceros con autorización, en el marco de una auditoría o investigación pactada. En cambio, aplicar ingeniería inversa a software de terceros sin permiso puede chocar con los términos de licencia del software y con la legislación de propiedad intelectual, y su legalidad depende del caso, del propósito y de la jurisdicción. La regla práctica: reversing sobre malware, sobre lo propio o con autorización, y conociendo el marco legal aplicable.

Cómo descompila

Cómo funciona Ghidra para analizar archivos ejecutables mediante ingeniería inversa, desensamblando y descompilando el código máquina para hacerlo legible. En la parte superior se plantea el problema que resuelve Ghidra: un archivo ejecutable está formado por código máquina, es decir, ceros y unos que el procesador entiende pero que para una persona resultan completamente ilegibles, y a menudo se necesita saber qué hace un programa sin disponer de su código fuente original. Se explica que Ghidra es una herramienta de ingeniería inversa desarrollada por la agencia de seguridad nacional de Estados Unidos y liberada como código abierto y gratuita, que hace el camino inverso al de un compilador, tomando el binario y traduciéndolo de vuelta hacia algo que una persona puede leer y entender. En el centro se ilustra el proceso en dos niveles mediante una progresión de izquierda a derecha. A la izquierda, el archivo ejecutable como código máquina en bruto, ilegible. En el medio, el resultado del desensamblador, que convierte el código máquina en lenguaje ensamblador, formado por instrucciones que ya son legibles pero de muy bajo nivel y difíciles de seguir. A la derecha, el resultado del descompilador, que es la característica más valiosa de Ghidra, y que va un paso más allá reconstruyendo un pseudocódigo parecido al lenguaje C, mucho más fácil de entender, que muestra la lógica del programa con sus funciones, sus condiciones y sus bucles. Se destaca que gracias a esta reconstrucción un analista puede entender qué hace un ejecutable, como qué archivos toca, con qué servidores se comunica, qué información cifra y qué oculta. En la parte inferior se enumeran los usos fundamentalmente defensivos y de investigación de Ghidra: el análisis de malware, que consiste en entender qué hace un binario malicioso para poder detectarlo y neutralizarlo; la búsqueda de vulnerabilidades en software propio o autorizado; y el análisis forense y la verificación de seguridad. También se subraya el marco legal, indicando que la ingeniería inversa se realiza sobre malware para defenderse, sobre software propio o con autorización, ya que aplicarla a software de terceros puede chocar con las licencias y las leyes según el caso y la jurisdicción. Estilo oscuro de hacking ético, con el problema del código máquina ilegible arriba, la progresión de código máquina a ensamblador y a pseudocódigo en el centro, y los usos y el marco legal destacados abajo.
Ghidra hace el camino inverso al de un compilador. El desensamblador convierte el código máquina en ensamblador (legible pero de bajo nivel); el descompilador va más allá y reconstruye un pseudocódigo parecido a C que muestra la lógica del programa: funciones, condiciones y bucles. Así se entiende qué hace un binario sin su código fuente.

Para entender Ghidra hay que ver primero el problema. Cuando se compila un programa, su código fuente legible se traduce a código máquina: instrucciones binarias para el procesador, ilegibles para las personas y sin los nombres ni comentarios del original. Ghidra hace el camino inverso, en dos niveles:

NivelQué produceLegibilidad
Código máquinaEl binario tal cual: ceros y unosIlegible para personas
DesensambladorEnsamblador: instrucciones del procesadorLegible pero de muy bajo nivel
DescompiladorPseudocódigo parecido a CMucho más fácil de entender

El descompilador: por qué Ghidra brilla

El desensamblador ya existía en muchas herramientas: te da el ensamblador, que es legible pero exige seguir el programa instrucción a instrucción, un trabajo lento y arduo. La joya de Ghidra es su descompilador, que da un salto cualitativo: reconstruye un pseudocódigo parecido a C, con funciones, variables, condiciones (if) y bucles (for, while). No es el código fuente original —se pierden nombres y comentarios—, pero muestra la lógica del programa de una forma que una persona puede leer y entender en una fracción del tiempo. Ese salto es lo que hizo tan popular a Ghidra cuando la NSA la liberó: puso un descompilador profesional al alcance de todos. El binario que se analiza a menudo llega de un paso previo, como la extracción de memoria con Volatility.

Para qué sirve

Ghidra es una herramienta central del análisis de seguridad. Sus usos principales, todos defensivos o de investigación:

UsoPara qué
Análisis de malwareEntender qué hace un binario malicioso para detectarlo y neutralizarlo
Búsqueda de vulnerabilidadesEncontrar fallos en software propio o autorizado a nivel binario
Análisis forenseInvestigar un ejecutable hallado en un sistema comprometido
Verificación de seguridadComprobar qué hace realmente un programa, más allá de lo que declara
i
Por qué el análisis de malware necesita reversing

El uso estrella de Ghidra es el análisis de malware, y la razón es directa: el malware llega como un ejecutable, sin código fuente y a menudo diseñado para ocultar lo que hace. Para defenderse de él hay que entenderlo: qué archivos modifica, con qué servidor de control se comunica, cómo se propaga, qué cifra (en el caso del ransomware), cómo persiste. Todo eso está en su código, y Ghidra es lo que permite leerlo. De ese análisis salen los indicadores de compromiso que alimentan las defensas y la respuesta a incidentes. Es un flujo completo: Volatility extrae el binario de la memoria, Ghidra revela qué hace, y ese conocimiento se convierte en detección y remediación. Todo dentro de un marco defensivo, legal y autorizado.

Errores frecuentes

  • Hacer reversing de software ajeno sin permiso. Puede chocar con licencias y leyes de propiedad intelectual; hacerlo sobre malware, lo propio o con autorización.
  • Confundir el pseudocódigo con el fuente original. El descompilador reconstruye la lógica, pero pierde nombres y comentarios; no es el código real.
  • Ejecutar el malware sin aislamiento. El análisis estático con Ghidra es seguro; ejecutar el binario exige un entorno aislado.
  • Fiarse solo del descompilador. A veces hay que bajar al ensamblador para entender detalles que el pseudocódigo simplifica.
  • Ignorar la ofuscación. El malware suele ofuscarse para dificultar el análisis; interpretar el resultado con cautela.
  • Analizar sin objetivo. Un binario grande es inabarcable entero; conviene partir de una hipótesis o de una función concreta.
  • Olvidar la cadena de custodia en forense. Si el análisis tiene fines legales, hay que preservar la evidencia correctamente.

Preguntas frecuentes

¿Qué es Ghidra?

Ghidra es una plataforma de ingeniería inversa de software desarrollada por la agencia de seguridad nacional de Estados Unidos y liberada como código abierto y gratuita en el año 2019, que sirve para analizar archivos ejecutables y entender qué hacen sin disponer de su código fuente. La ingeniería inversa es la disciplina que consiste en partir de un producto terminado, en este caso un programa ejecutable, y trabajar hacia atrás para comprender cómo está hecho y qué hace, y Ghidra es una de las herramientas de referencia para aplicarla al software. El problema que resuelve Ghidra tiene su origen en que un archivo ejecutable está compuesto por código máquina, es decir, instrucciones binarias formadas por ceros y unos que el procesador del ordenador entiende y ejecuta, pero que para una persona son completamente ilegibles, ya que carecen de los nombres, la estructura clara y los comentarios que tenía el código fuente original antes de ser compilado. En muchas situaciones, sin embargo, es necesario saber qué hace un programa sin tener acceso a su código fuente, por ejemplo cuando se analiza un binario sospechoso de ser malicioso. Ghidra hace el camino inverso al de un compilador, que es el programa que traduce el código fuente legible a código máquina: toma el binario y lo traduce de vuelta hacia representaciones que una persona puede leer y entender. Lo hace en dos niveles, el desensamblador, que convierte el código máquina en lenguaje ensamblador legible pero de muy bajo nivel, y el descompilador, que va más allá y reconstruye un pseudocódigo parecido al lenguaje C, mucho más fácil de comprender, mostrando la lógica del programa. Lo especialmente notable de Ghidra es que, al haber sido desarrollada por una agencia gubernamental para su trabajo interno y liberada después de forma gratuita y abierta, puso al alcance de cualquier persona una herramienta de ingeniería inversa de nivel profesional que antes solo estaba disponible mediante licencias muy costosas, lo que democratizó el análisis de binarios. Sus usos son fundamentalmente defensivos y de investigación, destacando el análisis de malware, la búsqueda de vulnerabilidades en software propio o autorizado y el análisis forense, siempre dentro de un marco legal apropiado.

¿Cuál es la diferencia entre desensamblar y descompilar?

La diferencia entre desensamblar y descompilar está en el nivel al que traducen el código máquina de un ejecutable y, por tanto, en lo fácil que resulta entender el resultado, siendo la descompilación un paso más avanzado y de mayor nivel que la desensambladura. Cuando se desensambla un binario, se convierte el código máquina, formado por ceros y unos ilegibles, en lenguaje ensamblador, que es una representación textual de las instrucciones concretas que ejecuta el procesador. El ensamblador ya es legible para una persona en el sentido de que se puede leer instrucción por instrucción, pero es de muy bajo nivel, lo que significa que refleja operaciones elementales del procesador como mover datos entre registros, realizar operaciones aritméticas simples o saltar a otra posición, y entender qué hace globalmente un programa a partir de su ensamblador exige seguir muchísimas de estas instrucciones elementales una a una, lo que resulta un trabajo lento, arduo y que requiere gran experiencia. La descompilación, en cambio, va un paso más allá y reconstruye a partir del binario un pseudocódigo de alto nivel parecido al lenguaje de programación C, que muestra la lógica del programa de una forma mucho más cercana a como pensaría un programador, con funciones, variables, estructuras de control como condiciones y bucles, y expresiones más comprensibles. Esta representación de alto nivel permite entender qué hace el programa en una fracción del tiempo que costaría analizando el ensamblador, porque agrupa las innumerables instrucciones elementales en construcciones lógicas comprensibles. El descompilador es precisamente la característica más valiosa y distintiva de Ghidra, y su calidad fue una de las razones por las que la herramienta tuvo tanto impacto cuando se liberó. Es importante tener presente, no obstante, que el pseudocódigo que produce el descompilador no es el código fuente original del programa, ya que en el proceso de compilación se perdieron los nombres significativos de variables y funciones, los comentarios y parte de la estructura, por lo que el resultado es una reconstrucción de la lógica, no una recuperación exacta del original. En la práctica, los analistas suelen trabajar principalmente con la vista del descompilador por su comodidad, pero recurren a la vista del desensamblador cuando necesitan entender con precisión detalles que el pseudocódigo simplifica u oculta, de modo que ambos niveles se complementan.

¿Para qué se usa Ghidra en el análisis de malware?

Ghidra se usa en el análisis de malware para entender en profundidad qué hace un programa malicioso a partir de su ejecutable, lo cual es imprescindible para poder detectarlo, neutralizarlo y defenderse de él, y constituye uno de los usos más importantes y habituales de la herramienta. La razón por la que el análisis de malware necesita ingeniería inversa es que el malware llega en forma de archivo ejecutable, sin código fuente, y a menudo está diseñado deliberadamente para ocultar lo que hace y dificultar su análisis. Para poder defenderse eficazmente de una amenaza, los equipos de seguridad necesitan comprender su funcionamiento, y ahí es donde Ghidra resulta decisivo, ya que permite descompilar el binario malicioso y analizar su lógica para responder a preguntas fundamentales sobre su comportamiento. Mediante el análisis con Ghidra, un analista puede descubrir qué archivos crea, modifica o borra el malware en el sistema; con qué servidores externos se comunica, lo que revela la infraestructura de mando y control que utiliza el atacante; cómo se propaga a otros sistemas; qué información roba o cifra, algo especialmente relevante en el caso del ransomware, que cifra los archivos de la víctima; cómo consigue persistir en el sistema para sobrevivir a los reinicios; y qué técnicas de evasión emplea para no ser detectado. Toda esta información está contenida en el código del malware, y Ghidra es la herramienta que permite leerlo y comprenderlo. Del análisis de un binario malicioso con Ghidra se extraen los llamados indicadores de compromiso, que son señales concretas de la presencia del malware, como nombres de archivos, direcciones de servidores o patrones de comportamiento, que después se utilizan para detectar la amenaza en otros sistemas y para reforzar las defensas. De este modo, el análisis con Ghidra alimenta directamente la respuesta a incidentes y la mejora de la protección. Es habitual que el análisis con Ghidra forme parte de un flujo de trabajo más amplio, en el que primero se obtiene el binario malicioso, por ejemplo extrayéndolo de la memoria de un sistema comprometido con una herramienta de análisis forense de memoria, y después se analiza a fondo con Ghidra para entender qué hace. Todo este trabajo se enmarca en actividades defensivas y de investigación legítimas, orientadas a proteger los sistemas frente a las amenazas.

¿Es legal usar Ghidra?

El uso de Ghidra como herramienta es completamente legal, ya que se trata de un software de código abierto y gratuito de libre disposición, pero la legalidad de la actividad de ingeniería inversa que se realiza con él depende de sobre qué software se aplique y con qué propósito, por lo que es necesario conocer y respetar el marco legal correspondiente. La propia herramienta Ghidra es neutra, del mismo modo que lo son otras herramientas de análisis, y lo que determina la legalidad es el uso concreto que se le da. Existen usos claramente legítimos y legales de la ingeniería inversa con Ghidra. El primero es el análisis de malware, es decir, aplicar ingeniería inversa a programas maliciosos para entender qué hacen y poder defenderse de ellos, lo cual es una actividad defensiva esencial y perfectamente legítima. El segundo es el análisis de software propio, por ejemplo cuando una organización aplica ingeniería inversa a sus propios productos para buscar vulnerabilidades o verificar su seguridad, algo que está plenamente dentro de sus derechos. El tercero es el análisis de software de terceros contando con autorización expresa, en el marco de una auditoría de seguridad, una investigación o un acuerdo que lo permita. En estos contextos, la ingeniería inversa con Ghidra es legal y legítima. Sin embargo, aplicar ingeniería inversa a software de terceros sin autorización puede plantear problemas legales, ya que puede entrar en conflicto con los términos de la licencia del software, que a menudo prohíben expresamente la ingeniería inversa, y con la legislación de propiedad intelectual y de protección de programas de ordenador. La legalidad de estos casos depende de factores como el propósito de la ingeniería inversa, la jurisdicción en la que se realice y las excepciones legales que puedan aplicarse, como las relativas a la interoperabilidad o a la investigación de seguridad, que varían según el país. Por ello, la regla práctica y prudente al usar Ghidra es aplicar la ingeniería inversa sobre malware, sobre software propio o con autorización explícita, y en cualquier caso conocer el marco legal aplicable en la jurisdicción correspondiente antes de analizar software de terceros, para asegurarse de actuar dentro de la legalidad. Como en toda actividad relacionada con la seguridad, la responsabilidad de usar la herramienta de forma legal y ética recae en quien la utiliza.

¿El pseudocódigo de Ghidra es igual al código fuente original?

No, el pseudocódigo que genera el descompilador de Ghidra no es igual al código fuente original del programa, sino una reconstrucción aproximada de su lógica, porque durante el proceso de compilación se pierde de forma irreversible parte de la información que contenía el código fuente. Cuando un programa se escribe, su código fuente contiene mucha información pensada para que las personas lo entiendan, como nombres significativos de variables y funciones que describen su propósito, comentarios explicativos, una estructura organizada y un formato legible. Al compilar el programa para convertirlo en un ejecutable de código máquina, el compilador traduce la lógica del programa a instrucciones para el procesador, pero en ese proceso descarta toda la información que no es necesaria para la ejecución, como los nombres de las variables, los comentarios y buena parte de la estructura original, ya que al procesador no le hacen falta para ejecutar el programa. Por eso, cuando Ghidra descompila el binario, puede reconstruir la lógica del programa, es decir, qué operaciones realiza, qué decisiones toma y cómo fluye la ejecución, presentándola en forma de pseudocódigo parecido a C con funciones, condiciones y bucles, pero no puede recuperar la información que se perdió en la compilación. Como consecuencia, el pseudocódigo resultante suele mostrar nombres genéricos y automáticos para las variables y funciones en lugar de los nombres descriptivos originales, carece de los comentarios que tenía el código fuente, y puede presentar una estructura algo distinta a la original, ya que refleja cómo quedó el programa tras la compilación y no necesariamente cómo lo escribió el programador. A pesar de estas limitaciones, el pseudocódigo de Ghidra es extraordinariamente útil, porque muestra fielmente lo que el programa hace en la práctica, que es precisamente lo que interesa en un análisis de seguridad, y lo hace de una forma mucho más comprensible que el ensamblador. Además, los analistas suelen mejorar progresivamente la legibilidad del resultado renombrando manualmente las variables y funciones a medida que van entendiendo su propósito y añadiendo sus propios comentarios, con lo que van reconstruyendo una comprensión cada vez más clara del programa. En definitiva, el pseudocódigo es una herramienta de análisis muy potente para entender qué hace un binario, pero debe entenderse como una reconstrucción de su comportamiento y no como una copia exacta del código fuente original.

¿Por qué es importante que Ghidra sea gratuita y de código abierto?

Que Ghidra sea gratuita y de código abierto es importante porque ha democratizado el acceso a una herramienta de ingeniería inversa de nivel profesional que antes solo estaba al alcance de agencias gubernamentales y de empresas capaces de pagar licencias muy costosas, ampliando enormemente el número de personas y organizaciones que pueden dedicarse al análisis de binarios y a la defensa frente a amenazas. Antes de la liberación de Ghidra, las herramientas de descompilación de calidad profesional eran caras y suponían una barrera de entrada considerable para estudiantes, investigadores independientes, pequeñas empresas y profesionales que querían aprender o trabajar en ingeniería inversa y análisis de malware. El hecho de que la agencia de seguridad nacional de Estados Unidos desarrollara Ghidra para su trabajo interno y decidiera después liberarla de forma gratuita y con su código fuente abierto en el año 2019 cambió sustancialmente este panorama, al poner en manos de cualquier persona interesada una herramienta con un descompilador de gran calidad y numerosas capacidades avanzadas, sin coste alguno. Esto tiene varias consecuencias positivas. En primer lugar, facilita el aprendizaje, ya que estudiantes y aficionados pueden practicar ingeniería inversa sin necesidad de una inversión económica, lo que contribuye a formar a más profesionales de la seguridad. En segundo lugar, potencia la defensa colectiva frente a las amenazas, porque más analistas pueden estudiar el malware, compartir sus hallazgos y contribuir a proteger a la comunidad. En tercer lugar, al ser de código abierto, la herramienta puede ser examinada, verificada y mejorada por la comunidad, lo que aumenta la confianza en ella y permite que evolucione con las aportaciones de muchas personas, así como la creación de extensiones y complementos que amplían sus capacidades. Además, el carácter abierto y gratuito de Ghidra la ha consolidado como una de las herramientas de referencia del sector y ha fomentado el desarrollo de una comunidad activa a su alrededor, con recursos formativos, documentación y ampliaciones. En conjunto, la liberación de Ghidra ha supuesto un impulso significativo para el campo de la ingeniería inversa y la seguridad, al eliminar barreras económicas y facilitar que el conocimiento y las capacidades de análisis se distribuyan de forma mucho más amplia.

Fuentes

Documentación oficial y material de la comunidad consultados para esta guía. Fecha de consulta: 28 de julio de 2026.

Aportes de la comunidad Underc0de

  1. Underc0de, foro. Sección Hacking. Ingeniería inversa y análisis de malware.
  2. Underc0de, foro. Dudas y pedidos generales. Análisis de binarios.

Documentación oficial

  1. NSA. Ghidra. Sitio oficial de la herramienta de ingeniería inversa.
  2. NSA. Ghidra (GitHub). Código fuente, documentación y descargas.
  3. NIST. SP 800-86. Guía de análisis forense de código y datos.
  4. OWASP. Web Security Testing Guide. Análisis de aplicaciones autorizado.