Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ghidra-evm — Módulo de Ghidra para desensamblar, descompilar y analizar bytecode de contratos inteligentes de Ethereum. Detecta instrucciones inseguras, extrae métodos ocultos y genera gráficos de flujo de control para auditorías de seguridad. | Kitploit
Herramientas/GitHubGitHub/adelapie/ghidra-evm
Análisis EstáticoAnálisis de VulnerabilidadesIngeniería InversaAnálisis de Binarios
GitHubadelapie/ghidra-evm

ghidra-evm

Módulo de Ghidra para desensamblar, descompilar y analizar bytecode de contratos inteligentes de Ethereum. Detecta instrucciones inseguras, extrae métodos ocultos y genera gráficos de flujo de control para auditorías de seguridad.

Ver Repositorio
14929hace 5 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Módulo Ghidra EVM

front

En los últimos años, los ataques a contratos inteligentes desplegados en la cadena de bloques de Ethereum han resultado en una cantidad significativa de fondos robados debido a errores de programación. Dado que los contratos inteligentes, una vez compilados y desplegados, son complejos de modificar y actualizar, diferentes profesionales han sugerido la importancia de revisar su seguridad en la cadena de bloques donde solo está disponible el bytecode de la Máquina Virtual de Ethereum (EVM). En este sentido, la ingeniería inversa mediante desensamblado y descompilación puede ser efectiva.

ghidra-EVM es un módulo de Ghidra para la ingeniería inversa de contratos inteligentes. Se puede utilizar para descargar bytecode de la Máquina Virtual de Ethereum (EVM) de la cadena de bloques de Ethereum y desensamblar y descompilar el contrato inteligente. Además, puede analizar el código de creación, encontrar métodos del contrato y localizar instrucciones inseguras.

Comprende un módulo de procesador, un cargador personalizado y complemento(s) que desensamblan bytecode de la Máquina Virtual de Ethereum (EVM) y generan un gráfico de flujo de control (CFG) de un contrato inteligente.

La última versión usa la API de Ghidra 9.1.2. Se basa en la biblioteca crytic evm_cfg_builder (https://github.com/crytic/evm_cfg_builder) para ayudar a Ghidra en el proceso de generación de CFG.

Ghidra-evm consiste en:

  • Un cargador que lee código de bytes y hexadecimal de archivos .evm y .evm_h respectivamente (Vea ejemplos).
  • La definición SLEIGH del conjunto de instrucciones EVM teniendo en cuenta las limitaciones del núcleo de Ghidra (Vea Notas).
  • Un script auxiliar que utiliza evm_cfg_builder y ghidra_bridge para ayudar a Ghidra a generar el CFG y explorar las propiedades de las funciones de un contrato inteligente.
  • Una colección de scripts que ayudan a la ingeniería inversa de diferentes aspectos de un contrato inteligente:

Instrucciones de instalación

  • Instale ghidra_bridge, siguiendo las instrucciones en https://github.com/justfoxing/ghidra_bridge
  • Instale la biblioteca crytic evm_cfg_builder, siguiendo las instrucciones en https://github.com/crytic/evm_cfg_builder
  • Instale el último archivo de la versión de ghidra-evm en ghidra_evm/dist/:
    • Abra ghidra
    • File -> Install Extensions
    • Haga clic en '+' y seleccione el archivo zip, por ejemplo ghidra_9.1.2_PUBLIC_20201102_ghidra_evm.zip
    • Haga clic en OK
    • Reinicie Ghidra

Instrucciones de compilación

El contenido del directorio ghidra-evm se puede utilizar para crear un módulo de Ghidra en Eclipse con procesador y cargador con el fin de extender o depurar ghidra_evm.

Tutoriales

middle

Integración con herramientas externas de ejecución simbólica

ScriptDescripción
teetherMarca la ruta crítica en Ghidra antes de generar el exploit. Requiere teether.

Notas

  • El CFG se crea según evm_cfg_builder: se utilizan las instrucciones JUMP y JUMPI.
  • Se genera una tabla de saltos de 32x32 (evm_jump_table) en consecuencia para detectar y mostrar ramas en las ventanas de desensamblado y flujo de control.
  • Ghidra no ha sido diseñado para manejar arquitecturas y memorias de tamaño de palabra > 64 bits. Esto significa que instrucciones como PUSH32 no se muestran correctamente en la ventana de descompilación.

Licencia

Ghidra-evm está licenciado y distribuido bajo AGPLv3.

Agradecimientos

  • Este trabajo fue apoyado por la Comisión Europea a través del Proyecto M-Sec del Programa H2020 bajo la Subvención 814917.
  • Ghidra-EVM se presentó en la pista arsenal de Black Hat Asia 2021. Puede encontrar las diapositivas aquí.
Descargar herramienta
ScriptDescripción
search_codecopy.pyAl analizar el código de creación en un contrato inteligente, solo podemos ver la función _dispatcher que usa CODECOPY para escribir el código de tiempo de ejecución en la memoria. Este script busca instrucciones CODECOPY útiles y encuentra los métodos del contrato inteligente ocultos en la parte de tiempo de ejecución del contrato.
search_dangerous_instructions.pyInstrucciones como CALL, CALLCODE, SELFDESTRUCT y DELEGATECALL a veces pueden ser abusadas para transferir fondos a otro contrato. Este script las encuentra y crea una etiqueta para cada ocurrencia.
load_external_contract.pyDescarga el código de bytes de un contrato inteligente de la cadena de bloques a un archivo .evm_h que se puede cargar en ghidra-evm
TutorialDescripción
UtilizationInstrucciones simples de utilización con test.evm
Analyzing creation bytecodeUsando search_codecopy.py para analizar código de creación y encontrar métodos ocultos
Looking for dangerous instructionsUsando search_dangerous_instructions.py para analizar una ocurrencia de SELFDESTRUCT
Downloading smart contract bytecode from the blockchain into GhidraUsando load_external_contract.py para descargar código de bytes EVM de la cadena de bloques a un archivo .evm_h