Únete al equipo de Lobera

Consulta nuestra Política de Privacidad sobre el tratamiento de esta información.

Contacta con el equipo de Lobera

Consulta nuestra Política de Privacidad sobre el tratamiento de esta información.

Reversing / Curso

Reversing y análisis de malware.

LoberaFormación técnica33 lecciones · x86 / x86-64 · Español
En este curso

Del código C al comportamiento del binario. Un curso de Lobera para estudiar ensamblador, estructuras de datos, sistemas y malware.

Puedes seguir las prácticas con radare2, IDA o Ghidra y apoyarte en Hermes para consultar instrucciones, contrastar hipótesis y documentar el análisis.

01 / FUENTEC
struct Books {
  char title[50];
  char author[50];
  char subject[100];
  int  book_id;
};
02 / ACCESO A UN CAMPOx86-64
; rax apunta al objeto
mov edx, dword [rax + 0xc8]

; 0xc8 = 200 bytes
; edx contiene book_id

Ejemplo esquemático de acceso al campo.

03 / MEMORIAoffset
+0
title[50]
+50
author[50]
+100
subject[100]
+200
book_id · 4 bytes

01 / Forma de trabajo

Trabajo manual y
asistencia con Hermes.

La fuente, el desensamblado y la memoria permiten contrastar una interpretación. Puedes recorrer cada ejemplo por tu cuenta o compartir ese trabajo con un agente.

Recorrido manual

radare2, IDA o Ghidra.

Compila los ejemplos, localiza las funciones y comprueba sus datos. El curso utiliza principalmente radare2; puedes seguir el razonamiento en IDA, Ghidra u otro desensamblador. Las prácticas de Windows incorporan sus herramientas de análisis.

Preparar las herramientas
Con Hermes

Hermes y radare2.

Pregunta por una instrucción, pide una pista o contrasta una hipótesis. Hermes consulta el curso y trabaja sobre la misma sesión de radare2 que puedes manejar desde la consola. Los comandos y las evidencias quedan disponibles para revisarlos.

Cómo funciona el companion

Tú diriges el análisis y validas las conclusiones. El companion ayuda a realizar y documentar tareas concretas sobre el binario. Los casos complejos requieren criterio técnico, herramientas adicionales y ajustes en las instrucciones y el entorno. Puedes ampliar la skill y el flujo de trabajo a medida que avanzas.

02 / Programa

Programa del curso.

Cuatro módulos. Los fundamentos parten de programas C y C++; después se estudian APIs, comunicaciones, seguridad de memoria y casos de malware. Las lecciones enlazan los conceptos y las prácticas que necesitas para avanzar.

0 de 33 lecciones revisadas
01

Fundamentos de reversing

Del primer ejecutable a las estructuras de datos.
01Primer análisis con radare2Reconocer el formato del ejecutable, localizar main y seguir una llamada a la biblioteca de C.Práctica y vídeo02La pila y los límites de un bufferReconocer la capacidad de un buffer y la organización de las llamadas en la pila.Análisis técnico03Funciones, switch y buclesSeguir llamadas, distinguir ramas de un switch e identificar el retorno de un bucle.Práctica y vídeo04Arrays y cadenasLeer datos contiguos y relacionar el índice con la dirección de cada elemento.Práctica y vídeo05Entrada de texto y terminaciónDistinguir la capacidad de un buffer, la longitud de una cadena y su terminador nulo.Práctica y vídeo06Tipos y conversionesIdentificar promociones de enteros y conversiones entre enteros y coma flotante.Lectura y práctica07Matrices y estructurasReconstruir campos, offsets y alineación a partir de la fuente, el ensamblador y la memoria.Práctica y vídeo08Arrays de estructuras y parchesSeguir el acceso a registros consecutivos y comprobar cambios sobre una copia del binario.Lectura y práctica09Lectura y escritura de archivosLocalizar buffers y llamadas de apertura, lectura, escritura y desplazamiento.Práctica y vídeo10Práctica con crackmes IOLIAplicar el análisis de cadenas, referencias y condiciones a binarios didácticos.Lectura y práctica11Punteros y memoria dinámicaDistinguir una dirección de su contenido y reconocer las reservas de pila y heap.Práctica y vídeo12Aritmética de punteros y estructuras dinámicasSeguir el paso de direcciones a funciones y la construcción de estructuras en el heap.Lectura y práctica13Listas enlazadas, enums y operaciones de bitsReconocer nodos y enlaces, interpretar máscaras y automatizar consultas de análisis.Práctica y vídeo14Macros, uniones y campos de bitsDistinguir lo que resuelve el preprocesador de lo que existe en el ejecutable.Lectura y práctica
02

Sistemas y comunicaciones

APIs, archivos y comportamiento de red.
15Linux: llamadas al sistema y ESILRelacionar libc con syscalls y seguir operaciones de archivos y emulación de expresiones.Lectura y práctica16Windows: API y operaciones de archivosLeer un PE y reconstruir llamadas a la API de Windows a partir de sus argumentos.Lectura y práctica17Sockets en UnixReconocer estructuras de direcciones, orden de bytes y el ciclo de vida de una conexión TCP.Práctica y vídeo18HTTP y código generadoAnalizar la recepción de datos HTTP y distinguir datos, código y permisos de memoria.Análisis técnico19Winsock, UDP y DNSReconocer comunicaciones de red en un PE y describir los campos y destinos observados.Análisis técnico20Análisis de shells remotasIdentificar la relación entre sockets, procesos e interfaces de entrada y salida.Análisis técnico21Comunicaciones TLSSeguir la inicialización de una sesión TLS y sus operaciones de lectura y escritura.Análisis técnico
03

Memoria y mitigaciones

Cómo reconocer la corrupción y las protecciones del binario.
22Desbordamientos y seguridad de memoriaComprender los límites de un objeto, la corrupción de memoria y las evidencias que deja.Análisis técnico23DEP, NX y reutilización de códigoRelacionar permisos de memoria, transferencias de control y mitigaciones de ejecución.Análisis técnico24Permisos de memoria y pila ejecutableInterpretar los permisos de las regiones de memoria y los cambios que solicita un programa.Análisis técnico25Canarios de pilaReconocer el guardado y la comprobación de un canario en el prólogo y el epílogo.Análisis técnico26ASLR, PIE y enlace dinámicoDistinguir offsets y direcciones de carga y reconocer las estructuras del enlazado.Análisis técnico
04

Análisis de malware

Estudios de caso con IDA, radare2 y evidencias de ejecución.
27Ziraat: análisis de malware .NETSeguir recursos, métodos y llamadas de un binario administrado para describir su comportamiento.Práctica y vídeo28Emotet: análisis de un documento maliciosoReconstruir las macros y capas de codificación del documento sin activar su contenido.Análisis técnico29Dridex: primera etapa de unpackingRelacionar reservas de memoria, copias y transferencias de control entre etapas.Análisis técnico30Ramnit: varias etapas de unpackingOrganizar los cambios de etapa y los volcados que permiten reconstruir el binario.Análisis técnico31IcedID: extracción de configuraciónSeguir las rutinas de descifrado y separar la configuración de la lógica del loader.Análisis técnico32Análisis de inyección de DLLReconocer acceso a procesos, reservas remotas, escritura de memoria y carga de módulos.Análisis técnico33Análisis de carga e inyección de PEComprender secciones, relocaciones e importaciones al examinar un PE cargado en memoria.Análisis técnico

03 / Reutilización

Reutilización y código abierto.

El material original de este curso se publica con licencias copyleft. Puedes estudiarlo, adaptarlo y compartirlo, conservando la autoría y las condiciones de reutilización.

Código original · GNU AGPLv3. Si incorporas código propio del curso a una herramienta que constituye una obra derivada y la distribuyes, debes ofrecerla bajo AGPLv3 y facilitar el código fuente completo correspondiente a sus destinatarios. Si una versión modificada permite interactuar con ella por red, sus usuarios deben poder obtener ese código sin coste. Conserva los avisos de autoría y licencia e indica las modificaciones.

Textos y diagramas originales · CC BY-SA 4.0. Al compartir una adaptación, reconoce la autoría, enlaza la licencia, indica los cambios y conserva la misma licencia o una compatible admitida por ella.

Alcance de estas condiciones

Estas licencias se conceden únicamente sobre las aportaciones originales cuyos derechos corresponden a Pau Muñoz o a Lobera. El material de terceros, los proyectos enlazados, las marcas y los logotipos conservan sus propias condiciones.

Los conocimientos y las técnicas explicadas pueden aplicarse libremente. Crear una herramienta independiente sin reutilizar material protegido del curso no genera una obligación de publicar su código. Tampoco se exige publicar una modificación que se mantenga en privado sin distribuirla ni ofrecer interacción remota en los términos de la AGPLv3.

Las licencias completas determinan los derechos y las obligaciones; este resumen no añade restricciones.

Condiciones y alcance ↓ · AGPLv3 completa ↓ · CC BY-SA 4.0 completa ↓

Creado por Pau Muñoz (artikblue). Edición y material complementario de Lobera.

Lobera

Conceptos de reversing

Consulta una definición y continúa donde estabas.