Cuando los piratas
informáticos crean un malware, además de ofuscar el código para complicar todo
lo posible deducir su funcionamiento, los virus, troyanos, exploits y demás
amenazas se suelen distribuir compiladas de manera que las víctimas, o los
investigadores, no puedan acceder al código fuente directamente, obligándoles a
recurrir a herramientas de seguridad forenses especialmente diseñadas para
descompilar este código fuente, como es el caso de RetDec.
Cada empresa de
seguridad trabaja con una serie de herramientas propias y totalmente privadas a
la hora de analizar código e investigar las distintas amenazas informáticas.
Normalmente ninguna firma de seguridad deja ver sus herramientas de análisis de
malware, especialmente los descompiladores que permiten generar el código
fuente de un software a partir de un binario, pero Avast ha querido ir más allá
no solo publicando su descompilador RetDec, sino incluso publicando su código
fuente completo.
RetDec es un
descompilador de código que permite a los investigadores y expertos de
seguridad (y ahora a todo el mundo) convertir código compilado, lo que conocemos
como un binario o una librería, en código fuente, pudiendo comprender mucho
mejor cómo funciona un determinado programa o una amenaza concreta.
Básicamente, esta
herramienta lo que hace es pedir un archivo cualquiera de entrada e intentar
devolver otro archivo diferente, el código fuente, de la forma más precisa
posible (aunque casi nunca tiene un 100% de precisión debido a múltiples
factores, como la ofuscación de código) de manera que se pueda entender muy
fácilmente cómo funciona un archivo, un programa o una amenaza.
Características de RetDec
Una de las
principales características de este descompilador es que no está limitado a una
arquitectura en concreto, sino que se puede utilizar con varias. Además,
funciona con un gran número de lenguajes de máquina (ELF, PE, Mach-O, COFF, AR,
HEX y RAW) y soporte múltiples arquitecturas, aunque eso sí, de 32 bits.
Otras características
principales de RetDec son:
·
Realiza
análisis estático de aplicaciones con información muy detallada.
·
Detecta
compilador y empaquetador utilizados.
·
Descodifica
las instrucciones y los cargadores, o loaders.
·
Elimina
las librerías de código enlazadas por una firma digital.
·
Extrae
la información de debug.
·
Reconstruye
las instrucciones en su lenguaje original.
·
Detecta
y reconstruye las clases C++.
·
Reconstruye
funciones, tipos y constructores de alto nivel.
·
Desensamblador
integrado.
·
Muestra
la salida en lenguajes de alto nivel, como C o Python.
·
Genera
gráficos con todo tipo de estadísticas útiles.
Si queremos probar
esta herramienta de Avast, podemos descargarla de forma totalmente gratuita
desde GitHub. Este programa ocupa 250 MB y está disponible tanto para los
usuarios de Windows de 32 y 64 bits. Los usuarios de Linux y macOS también
pueden utilizar esta herramienta, aunque la puesta en marcha es más manual.
Fuente: borncity.com