Buenas noticias para los apasionados de la ingeniería inversa, ya que la compañía Avast ha liberado RetDec (Retargetable Decompiler), un decompilador basado LLVM. Dicho de otra forma, esta herramienta es capaz de reconstruir el código fuente de un ejecutable.
RetDec se ha liberado bajo licencia MIT, lo que nos permite dar a esta herramienta un uso libre. Para conocer más a fondo el proyecto, podemos pasarnos por la web oficial https://retdec.com/ donde podemos probar el decompilador directamente desde nuestro navegador (lo han deshabilitado por un exceso de carga del servidor).
También podemos obtener el código fuente en https://github.com/avast-tl/retdec y compilarlo para ejecutar el programa en nuestro sistema operativo. Los que usen IDA también puede optar por usar RetDec en forma de plugin para IDA https://github.com/avast-tl/retdec-idaplugin .
Funcionalidades del decompilador RetDec.
RetDec soporta diferentes arquitecturas (ARM, Intel x86, MIPS, PowerPC y PIC32), pero por el momento sólo en 32bit, aunque ya están trabajando para dar soporte a arquitecturas de 64bit.
Soporta diferentes formatos de archivo: código máquina, PE, Intel HEX, ELF, Mach-O, COFF y AR (archive).
Otras características importantes de RetDec:
- Permite el análisis estático de código.
- Genera gráficas del control de flujo, gráficas de llamadas, etc.
- Detecta compiladores y empaquetadores (packers).
- Permite la carga y decodificación de instrucciones.
- Podemos eliminar (en base a firmas) librerías enlazadas estáticamente.
- Podemos usar información de depuración (archivos warp, pdb, etc).
- Es capaz de detectar y reconstruir jerarquías de clases en C++.
- Reconstruye funciones, tipos y constructores de alto nivel.
- Desensamblador integrado.
Como podemos ver se trata de un decompilador muy completo que servirá a más de uno para realizar análisis forenses de malware, encontrar vulnerabilidades, etc.