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
retdec — RetDec es un descompilador de código máquina reorientable basado en LLVM. | Kitploit
Herramientas/GitHubGitHub/avast/retdec
Análisis EstáticoIngeniería InversaAnálisis de MalwareAnálisis de Binarios
GitHubavast/retdec

retdec

RetDec es un descompilador de código máquina reorientable basado en LLVM.

Ver RepositorioSitio web
8.6k99739hace 3 mesesRevisado 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

Advertencia

El proyecto RetDec se encuentra actualmente en un modo de mantenimiento limitado debido a la falta de recursos:

  • Se aceptan Pull Requests. Se revisan con prioridad, si es posible sin demoras.
  • Los Issues se atienden con demoras de hasta un trimestre. Los Issues no se resuelven activamente a menos que estén relacionados con el mantenimiento básico del proyecto.
  • El mantenimiento básico del proyecto continúa.
  • Solo se lleva a cabo un desarrollo muy limitado.

RetDec

Estado de la compilación en Travis CI Estado de la compilación en TeamCity))/statusIcon) CI de RetDec

RetDec es un descompilador de código máquina reorientable basado en LLVM.

El descompilador no se limita a ninguna arquitectura de destino, sistema operativo o formato de archivo ejecutable en particular:

  • Formatos de archivo admitidos: ELF, PE, Mach-O, COFF, AR (archivo), Intel HEX y código máquina sin procesar.
  • Arquitecturas admitidas:
    • 32 bits: Intel x86, ARM, MIPS, PIC32 y PowerPC
    • 64 bits: x86-64, ARM64 (AArch64)

Características:

  • Análisis estático de archivos ejecutables con información detallada.
  • Detección de compiladores y empaquetadores.
Descargar herramienta
  • Carga y decodificación de instrucciones.
  • Eliminación basada en firmas de código de biblioteca enlazado estáticamente.
  • Extracción y utilización de información de depuración (DWARF, PDB).
  • Reconstrucción de modismos de instrucciones.
  • Detección y reconstrucción de jerarquías de clases de C++ (RTTI, tablas virtuales).
  • Desmangling de símbolos de binarios C++ (GCC, MSVC, Borland).
  • Reconstrucción de funciones, tipos y constructos de alto nivel.
  • Desensamblador integrado.
  • Salida en dos lenguajes de alto nivel: C y un lenguaje similar a Python.
  • Generación de grafos de llamadas, grafos de flujo de control y varias estadísticas.
  • Para obtener más información, consulte:

    • Wiki (en progreso)
    • Charla en Botconf 2017: diapositivas, video
    • Charla en REcon Montreal 2018: diapositivas
    • Publicaciones

    Instalación

    Hay dos formas de obtener e instalar RetDec:

    1. Descargar y descomprimir un paquete precompilado estable o en desarrollo (bleeding-edge) y seguir las instrucciones en la sección Uso de su archivo retdec/share/retdec/README.md después de descomprimirlo.
    2. Compilar RetDec usted mismo a partir del código fuente siguiendo la sección Compilación e instalación. Después de la instalación, siga las instrucciones a continuación.

    Actualmente soportamos Windows (7 o posterior), Linux, macOS y (experimentalmente) FreeBSD. Una versión instalada de RetDec requiere aproximadamente 5 a 6 GB de espacio libre en disco.

    Uso

    Asegúrese de leer las instrucciones correspondientes a la versión de RetDec que utiliza. En caso de duda, consulte el archivo retdec/share/retdec/README.md en la instalación.

    Windows

    1. Después de instalar RetDec, instale Microsoft Visual C++ Redistributable para Visual Studio 2017.

    2. Instale los siguientes programas:

      • UPX (Opcional: si desea usar el desempacador UPX en la etapa de preprocesamiento)
      • Graphviz (Opcional: si desea generar grafos de llamadas o de flujo de control)
    3. Para descompilar un archivo binario llamado test.exe, ejecute

      root@kitploit:~
      $RETDEC_INSTALL_DIR\bin\retdec-decompiler.exe test.exe
      

      Para más información, ejecute retdec-decompiler.exe con --help.

    Linux

    1. Después de instalar RetDec, instale los siguientes paquetes mediante el administrador de paquetes de su distribución:

      • UPX (Opcional: si desea usar el desempacador UPX en la etapa de preprocesamiento)
      • Graphviz (Opcional: si desea generar grafos de llamadas o de flujo de control)
    2. Para descompilar un archivo binario llamado test.exe, ejecute

      root@kitploit:~
      $RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
      

      Para más información, ejecute retdec-decompiler con --help.

    macOS

    1. Después de instalar RetDec, instale los siguientes paquetes:

      • UPX (Opcional: si desea usar el desempacador UPX en la etapa de preprocesamiento)
      • Graphviz (Opcional: si desea generar grafos de llamadas o de flujo de control)
    2. Para descompilar un archivo binario llamado test.exe, ejecute

      root@kitploit:~
      $RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
      

      Para más información, ejecute retdec-decompiler con --help.

    FreeBSD (Experimental)

    1. Actualmente no hay paquetes "ports" precompilados para FreeBSD. Tendrá que compilar e instalar el descompilador por su cuenta. El proceso se describe a continuación.

    2. Para descompilar un archivo binario llamado test.exe, ejecute

      root@kitploit:~
      $RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
      

      Para más información, ejecute retdec-decompiler con --help.

    Uso de las bibliotecas de RetDec

    Puede usar fácilmente varias bibliotecas de RetDec en sus proyectos, siempre que estén compiladas con CMake. La instalación de RetDec contiene todos los encabezados, bibliotecas y scripts de CMake necesarios.

    Si instaló RetDec en una ubicación de instalación estándar de su sistema (por ejemplo, /usr, /usr/local), todo lo que necesita hacer para usar sus componentes es:```cmake find_package(retdec 5.0 REQUIRED COMPONENTS [...] ) target_link_libraries(your-project PUBLIC retdec:: [...] )

    root@kitploit:~
    Si no instaló RetDec en algún lugar donde pueda ser descubierto automáticamente, necesita ayudar a CMake a encontrarlo antes de usar `find_package()`. Generalmente hay dos formas de hacerlo (elija y use solo una):
    
    1. Agregue el directorio de instalación de RetDec a [`CMAKE_PREFIX_PATH`](https://cmake.org/cmake/help/latest/variable/CMAKE_PREFIX_PATH.html):
        ```cmake
        list(APPEND CMAKE_PREFIX_PATH ${RETDEC_INSTALL_DIR})
        ```
    
    2. Establezca la ruta a los scripts CMake de RetDec instalados en `retdec_DIR`:
        ```cmake
        set(retdec_DIR ${RETDEC_INSTALL_DIR}/share/retdec/cmake)
        ```
    
    Vea la página wiki de [Resumen del Repositorio](https://github.com/avast/retdec/wiki/Repository-Overview) para la lista de componentes disponibles de RetDec, o [retdec-build-system-tests](https://github.com/avast/retdec-build-system-tests) para demostraciones sobre cómo usarlos.
    
    ## Compilación e Instalación
    
    Esta sección describe la compilación e instalación local de RetDec. Las instrucciones para Docker se dan en la siguiente sección.
    
    ### Requisitos
    
    #### Linux
    
    * Un compilador de C++ y una biblioteca estándar de C++ que admitan C++17 (por ejemplo, GCC >= 7)
    * [CMake](https://cmake.org/) (versión >= 3.6)
    * [Git](https://git-scm.com/)
    * [OpenSSL](https://www.openssl.org/) (versión >= 1.1.1)
    * [Python](https://www.python.org/) (versión >= 3.4)
    * [autotools](https://en.wikipedia.org/wiki/GNU_Build_System) ([autoconf](https://www.gnu.org/software/autoconf/autoconf.html), [automake](https://www.gnu.org/software/automake/) y [libtool](https://www.gnu.org/software/libtool/))
    * [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/)
    * [m4](https://www.gnu.org/software/m4/m4.html)
    * [zlib](http://zlib.net/)
    * Opcional: [Doxygen](http://www.stack.nl/~dimitri/doxygen/) y [Graphviz](http://www.graphviz.org/) para generar documentación de la API
    
    En distribuciones basadas en Debian (por ejemplo, Ubuntu), los paquetes requeridos se pueden instalar con `apt-get`:```sh
    sudo apt-get install build-essential cmake git openssl libssl-dev python3 autoconf automake libtool pkg-config m4 zlib1g-dev upx doxygen graphviz
    

    En distribuciones basadas en RPM (por ejemplo, Fedora), los paquetes requeridos se pueden instalar con dnf:```sh sudo dnf install gcc gcc-c++ cmake make git openssl openssl-devel python3 autoconf automake libtool pkg-config m4 zlib-devel upx doxygen graphviz

    root@kitploit:~
    En Arch Linux, los paquetes necesarios se pueden instalar con `pacman`:```sh
    sudo pacman --needed -S base-devel cmake git openssl python3 autoconf automake libtool pkg-config m4 zlib upx doxygen graphviz
    

    Windows

    • Microsoft Visual C++ (version >= Visual Studio 2017 version 15.7)
    • CMake (version >= 3.6)
    • Git
    • OpenSSL (version >= 1.1.1)
    • Python (version >= 3.4)
    • Opcional: Doxygen y Graphviz para generar documentación de API

    macOS

    Los paquetes deberían instalarse preferiblemente mediante Homebrew.

    • macOS >= 10.15
    • Instalación completa de Xcode (incluyendo herramientas de línea de comandos, consulte #425 y #433)
    • CMake (version >= 3.6)
    • Git
    • OpenSSL (version >= 1.1.1)
    • Python (version >= 3.4)
    • autotools (autoconf, automake, y libtool)
    • Opcional: Doxygen y Graphviz para generar documentación de API

    FreeBSD (Experimental)

    Los paquetes deben instalarse a través del repositorio de paquetes precompilados de FreeBSD usando el comando pkg o compilados desde cero usando el método de base de datos ports.

    • Instrucciones completas de la herramienta "pkg": handbook pkg method
      • pkg install cmake python37 git autotools OR
    • Instrucciones completas del método "ports": handbook ports method
      • portsnap fetch
      • portsnap extract
    • Por ejemplo, cmake sería
      • whereis cmake
      • cd /usr/ports/devel/cmake
      • make install clean

    Proceso

    Nota: Aunque RetDec ahora soporta una instalación a nivel de sistema (#94), a menos que uses el gestor de paquetes de tu distribución para instalarlo, recomendamos instalar RetDec localmente en un directorio designado. La razón es que la desinstalación será más fácil ya que solo necesitarás eliminar un único directorio. Para realizar una instalación local, ejecuta cmake con el parámetro -DCMAKE_INSTALL_PREFIX=<path>, donde <path> es el directorio en el que se instalará RetDec (ej. $HOME/projects/retdec-install en Linux y macOS, y C:\projects\retdec-install en Windows).

    • Clonar el repositorio:
      • git clone https://github.com/avast/retdec
    • Linux:
      • cd retdec
      • mkdir build && cd build
      • cmake .. -DCMAKE_INSTALL_PREFIX=<path>
      • make -jN (N es el número de procesos a usar para la compilación en paralelo; típicamente número de núcleos + 1 da el tiempo de compilación más rápido)
      • make install
    • Windows:
      • Abrir un símbolo del sistema (ej. cmd.exe)
      • cd retdec
      • mkdir build && cd build
      • cmake .. -DCMAKE_INSTALL_PREFIX=<path> -G<generator>
      • cmake --build . --config Release -- -m
      • cmake --build . --config Release --target install
      • Alternativamente, puedes abrir retdec.sln generado por cmake en el IDE de Visual Studio
    • macOS:
      • cd retdec
      • mkdir build && cd build
      • cmake .. -DCMAKE_INSTALL_PREFIX=<path>
      • make -jN (N es el número de procesos a usar para la compilación en paralelo; típicamente número de núcleos + 1 da el tiempo de compilación más rápido)
      • make install
    • FreeBSD:
      • sudo pkg install git cmake
      • git clone https://github.com/avast/retdec
      • cd retdec
      • mkdir build && cd build
      • root@kitploit:~
        # FreeBSD (and other BSDs) do need cmake, python3, git, autotools. OpenSSL is pre-installed in the OS but check its version.
        # Later versions may be available for each of the packages.
        # See what is installed:
        sudo pkg info cmake python37 autotools
        # Install/upgrade them:
        sudo pkg install cmake python37 autotools
        
      • cmake .. -DCMAKE_INSTALL_PREFIX=<path>
      • make -jN (N es el número de procesos a usar para la compilación en paralelo; típicamente número de núcleos + 1 da el tiempo de compilación más rápido)
      • make install

    Debes pasar los siguientes parámetros a cmake:

    • -DCMAKE_INSTALL_PREFIX=<path> para establecer la ruta de instalación a <path>. Pon la ruta entre comillas si usas barras invertidas en Windows (ej. -DCMAKE_INSTALL_PREFIX="C:\retdec").
    • (Solo Windows) -G<generator> es -G"Visual Studio 15 2017" para compilación de 32 bits usando Visual Studio 2017, o -G"Visual Studio 15 2017 Win64" para compilación de 64 bits usando Visual Studio 2017. Se pueden usar versiones posteriores de Visual Studio.

    Puedes pasar los siguientes parámetros adicionales a cmake:

    • -DRETDEC_DOC=ON para compilar con documentación de API (requiere Doxygen y Graphviz, desactivado por defecto).
    • -DRETDEC_TESTS=ON para compilar con pruebas (desactivado por defecto).
    • -DRETDEC_DEV_TOOLS=ON para compilar con herramientas de desarrollo (desactivado por defecto).
    • -DRETDEC_COMPILE_YARA=OFF para desactivar la compilación de reglas YARA en el paso de instalación (activado por defecto).
    • -DCMAKE_BUILD_TYPE=Debug para compilar con información de depuración, útil durante el desarrollo. Por defecto, el proyecto se compila en modo Release. Esto no tiene efecto en Windows, pero se puede lograr lo mismo ejecutando cmake --build . con el parámetro --config Debug.
    • -D<dep>_LOCAL_DIR=<path> donde <dep> es de {CAPSTONE, GOOGLETEST, KEYSTONE, LLVM, YARA, YARAMOD} (ej. -DCAPSTONE_LOCAL_DIR=<path>), para usar el clon del repositorio local en <path> para la dependencia de RetDec en lugar de descargar una copia nueva en tiempo de compilación. Se pueden usar varias opciones de este tipo al mismo tiempo.
    • -DRETDEC_ENABLE_<component>=ON para compilar solo el/los componente(s) especificado(s) (se pueden usar varias opciones a la vez), y sus dependencias. Por defecto, se compilan todos los componentes. Si al menos un componente se habilita mediante este mecanismo, todos los demás componentes que no se hayan habilitado explícitamente (y no sean necesarios como dependencias de los componentes habilitados) no se compilan. Consulta cmake/options.cmake para todas las opciones de componentes disponibles.
      • -DRETDEC_ENABLE_ALL=ON se puede usar para (re)habilitar todos los componentes.
      • Alternativamente, se puede usar -DRETDEC_ENABLE=<lista de componentes separados por comas> en lugar de -DRETDEC_ENABLE_<component>=ON (ej. -DRETDEC_ENABLE=fileformat,loader,ctypesparser es equivalente a -DRETDEC_ENABLE_FILEFORMAT=ON -DRETDEC_ENABLE_LOADER=ON -DRETDEC_ENABLE_CTYPESPARSER=ON).

    Compilar en Docker

    El soporte para Docker es mantenido por la comunidad. Si algo no funciona o tienes sugerencias de mejora, abre un issue o PR.

    Crear la imagen

    Compilar en Docker no requiere la instalación de las bibliotecas necesarias localmente. Esta es una buena opción para probar RetDec sin tener que configurar todo el toolchain de compilación.

    Para compilar la imagen Docker de RetDec, ejecuta``` docker build -t retdec - < Dockerfile

    root@kitploit:~
    Esto construye la imagen desde la rama master de este repositorio.
    
    Para construir la imagen usando la copia local del repositorio, utiliza el Dockerfile de desarrollo, `Dockerfile.dev`:```
    docker build -t retdec:dev . -f Dockerfile.dev
    

    Run Container

    Si su uid no es 1000, asegúrese de que el directorio que contiene sus archivos binarios de entrada sea accesible para RetDec:``` chmod 0777 /path/to/local/directory

    root@kitploit:~
    Ahora, puedes ejecutar el descompilador dentro de un contenedor:```
    docker run --rm -v /path/to/local/directory:/destination retdec retdec-decompiler /destination/binary
    

    Nota: No modifique la parte /destination. Solo necesita cambiar /path/to/local/directory. Los archivos de salida se generarán en /path/to/local/directory.

    Compilaciones Nocturnas

    Generamos paquetes actualizados de RetDec a partir del último commit en la rama master de dos maneras:

    • Usando nuestros servidores TeamCity
    • Usando Github Actions.

    Las compilaciones están destinadas principalmente para ser utilizadas por desarrolladores de RetDec, contribuyentes y otras personas que experimentan con el producto (por ejemplo, probando si un problema presente en la versión oficial aún existe en el master actual).

    Puede usarlas como desee, pero tenga en cuenta que no hay garantías de que funcionen en su sistema (especialmente la versión de Linux), y que las regresiones son una posibilidad. Para obtener una versión estable de RetDec, descargue el último paquete precompilado oficial o compile la etiqueta de la última versión de RetDec.

    TeamCity

    • Windows Server 2016, versión 10.0
    • Ubuntu Bionic Linux, versión 18.04
    • Mac OS X, versión 10.14.6

    Github Actions

    Puede encontrar compilaciones para macOS, Linux y Windows en la última ejecución del flujo de trabajo CI de RetDec.

    Documentación del Proyecto

    Consulte la documentación del proyecto para obtener una referencia de software generada por Doxygen actualizada correspondiente al último commit en la rama master.

    Repositorios Relacionados

    • retdec-idaplugin -- Integra RetDec en IDA (Interactive Disassembler) y hace que su uso sea mucho más fácil.
    • retdec-r2plugin -- Integra RetDec en Radare2 y hace que su uso sea mucho más fácil.
    • retdec-regression-tests-framework -- Un marco de trabajo para escribir y ejecutar pruebas de regresión para RetDec y herramientas relacionadas. Esto es imprescindible si planea contribuir al proyecto RetDec.
    • retdec-regression-tests -- Un conjunto de pruebas de regresión para RetDec y herramientas relacionadas.
    • retdec-build-system-tests -- Un conjunto de pruebas para el sistema de compilación de RetDec. Esto también puede servir como una colección de demostraciones sobre cómo usar las librerías de RetDec.
    • vim-syntax-retdecdsm -- Archivo de resaltado de sintaxis de Vim para la salida del desensamblador de RetDec (archivos .dsm).

    Licencia

    Copyright (c) 2017 Avast Software, licenciado bajo la licencia MIT. Consulte el archivo LICENSE para más detalles.

    RetDec incorpora una biblioteca PeLib modificada. Los nuevos módulos añadidos por Avast Software están licenciados bajo la licencia MIT. Las fuentes originales están licenciadas bajo la siguiente licencia:

    • Copyright (c) 2004 - 2005 Sebastian Porst ([email protected]), licenciado bajo la Licencia zlib/libpng. Consulte el archivo LICENSE-PELIB para más detalles.

    RetDec utiliza bibliotecas de terceros u otros recursos enumerados, junto con sus licencias, en el archivo LICENSE-THIRD-PARTY.

    Cómo Contribuir

    Consulte las directrices de contribución de RetDec.

    Agradecimientos

    Este software fue apoyado por la financiación de investigación TACR (Agencia de Tecnología de la República Checa), Programa ALFA No. TA01010667.