Prepara el entorno y elige cómo seguir las prácticas: por tu cuenta o con el companion de Hermes.
Antes de empezar
El curso estudia programas a partir de sus instrucciones y de los datos que manejan. Durante las primeras lecciones tendrás también la fuente C: compilarla y compararla con el desensamblado permite reconocer cómo se representan condiciones, bucles, arrays y estructuras. En los casos de malware, el punto de partida será el binario o las evidencias documentadas del análisis.
Conviene conocer variables, funciones y punteros en C, y reconocer instrucciones sencillas como mov, call, push y ret. El glosario recoge los conceptos que se utilizan durante el recorrido. Puedes consultarlo sin interrumpir la lección.
Los ejemplos originales se publicaron entre 2020 y 2022. Esta edición conserva sus fragmentos de código y salidas como referencia. Un compilador o una versión de radare2 diferentes pueden cambiar las direcciones, el nombre de las variables y las instrucciones generadas. La comprobación consiste en reconocer la operación y sus datos, aunque tu pantalla tenga otros offsets.
Trabajo manual
Necesitas un compilador C/C++ y un desensamblador. El recorrido principal utiliza radare2 sobre Linux. Descarga la versión adecuada desde el proyecto radare2 o utiliza la instalación que prepara el companion.
Puedes descargar los 13 fuentes de las prácticas de fundamentos. El paquete incluye las versiones del companion que se han comprobado, sus comandos de compilación y el archivo de entrada de la práctica de lectura. Cada lección enlaza también su fuente correspondiente.
Para el primer ejemplo, guarda el programa C de la lección en hello.c y compílalo con símbolos, sin optimización y como ejecutable x86-64 no PIE:
gcc -g -O0 -fno-pie -no-pie hello.c -o hello
r2 hello
Dentro de radare2, un primer recorrido es:
aa
iI
afl
iz
pdf @ main
aa inicia el análisis; iI muestra propiedades del ejecutable; afl enumera funciones; iz lista cadenas y pdf @ main muestra el desensamblado de main. Consulta la ayuda de un comando añadiendo ?. Encontrarás análisis más amplios y comandos específicos a medida que avances.
Para comparar 32 y 64 bits necesitas también el compilador y las bibliotecas de 32 bits. En el companion se utiliza --bits 32 al preparar un laboratorio compatible. Guarda por separado las observaciones de cada compilación.
IDA o Ghidra. Puedes seguir el análisis buscando las mismas funciones, cadenas, referencias y llamadas. Las instrucciones de terminal de estas lecciones corresponden a radare2. La integración compartida con Hermes también utiliza radare2; el curso no presupone que Hermes controle tu sesión de IDA.
Con Hermes
RadarAI es el companion de reversing de Lobera. Reúne el curso, sus laboratorios y una sesión persistente de radare2. Hermes aporta la conversación y el acceso a herramientas.
Una skill describe cómo trabajar con las lecciones y conservar las evidencias. radare2-mcp conecta esas herramientas con el proceso de análisis. El lanzador coursectl prepara los ejemplos, selecciona la lección y organiza el cuaderno.
Puedes pedir una explicación, una pista o una comprobación concreta. También puedes solicitar ayuda para compilar un ejemplo, localizar un campo o comparar dos versiones del programa. El grado de ayuda lo decides en la conversación.
Estoy en el ejemplo Books. Ayúdame a localizar book_id. Primero dame una pista sobre el offset; después comprobamos el campo en el desensamblado y en memoria. Contrasta el tamaño y la alineación con el compilador.
El companion es un apoyo al análisis que puedes ampliar. Para abordar binarios complejos tendrás que ajustar el entorno, incorporar herramientas y revisar la skill. El modelo puede interpretar mal una instrucción o extraer una conclusión demasiado amplia: vuelve a los comandos, al estado del depurador y a los datos que la sostienen. Esa comprobación forma parte del trabajo de reversing.
Instalación del companion
Una vez descargado el repositorio, abre una terminal en su directorio. El entorno comprobado es Linux x86-64 con Python 3.11 o posterior, venv, Git, GCC, Make, pkg-config y dpkg-deb.
./coursectl bootstrap
./coursectl doctor
El bootstrap prepara las herramientas dentro de .runtime/ y utiliza las revisiones fijadas por el proyecto. Los ejercicios se compilan con el GCC del equipo y guardan las opciones utilizadas.
Repositorio del companion y de las muestras para trabajar con el curso.
Elegir el modelo
Las sesiones de esta edición se han realizado con Hermes, OpenRouter y el modelo configurado en el companion. Para usar OpenRouter, guarda tu clave en un archivo privado y configura su ruta:
./coursectl configure --provider openrouter \
--model anthropic/claude-sonnet-4.6 \
--key-file /ruta/privada/openrouter.txt
./coursectl doctor
El archivo debe contener una sola clave. No la incluyas en el código del curso ni en capturas. El consumo de API corresponde a tu proveedor y a las sesiones que abras.
También puedes configurar un servidor de modelos compatible con una API de chat y herramientas:
./coursectl configure --provider custom \
--model nombre-del-modelo-local \
--base-url http://127.0.0.1:1234/v1
La calidad y las herramientas disponibles dependen del modelo elegido. Cuando utilizas un proveedor remoto, los fragmentos que recibe el modelo salen hacia ese proveedor. Un endpoint local permite mantener ese procesamiento en tu entorno. Las sesiones mostradas en el curso corresponden a la configuración de OpenRouter; otros modelos requieren comprobar su funcionamiento.
Abrir una lección
./coursectl chat 1 --example hello
Para consultar las opciones de un capítulo:
./coursectl examples 6
./coursectl stop
./coursectl chat 6 --example books
El índice de la web usa una numeración continua del 01 al 33. Los identificadores de coursectl conservan los del material original; por eso la lección web 07 de estructuras utiliza chat 6. Cada página incluye su comando correspondiente.
Algunas lecciones incluyen una grabación de Hermes y la consola compartida de radare2 junto al ejemplo correspondiente. Los vídeos son breves, sin audio y con las esperas abreviadas. Puedes saltar a cada momento, ampliar el reproductor o consultar la explicación y los comandos en texto. Las direcciones corresponden a la compilación y a la sesión grabadas.
Intervenir en la misma sesión
Abre otra terminal en el directorio del companion:
./coursectl console
Desde ella puedes consultar pdf @ main, cambiar la dirección de análisis o revisar comentarios. Hermes ve ese mismo estado. Espera a que termine la operación del agente antes de cambiarlo tú: un desplazamiento o una continuación del depurador afecta a los dos clientes.
La consola compartida de esta versión trabaja con comandos de texto. Las vistas interactivas V, VV y los paneles nativos de radare2 se utilizan en una terminal propia; no se comparten a través de MCP.
El navegador sirve como referencia. El companion conoce la lección seleccionada en la terminal y su enlace; no observa automáticamente la pestaña que estás leyendo.
Conservar el trabajo
./coursectl status
./coursectl snapshot
./coursectl note 'He localizado book_id; quiero repetir la lectura en memoria'
./coursectl chat 6 --resume latest
Las notas, conversaciones y evidencias se guardan en work/. El proceso de depuración se mantiene mientras siga viva su sesión. Un snapshot conserva observaciones del estado; no restaura por sí solo la ejecución de un proceso.
En la web, Marcar como revisada guarda tu avance en este navegador. Es un registro de lectura independiente de las notas del companion.
Qué se ha comprobado
Esta edición incluye 54 comprobaciones de programas básicos con compilación, ejecución y breakpoints reales. También se han realizado 13 sesiones de Hermes sobre los laboratorios de fundamentos, con acceso a radare2, respuestas y evidencias guardadas. Las imágenes de acompañamiento muestran extractos de sus registros, maquetados para facilitar la lectura. Puedes abrirlas al tamaño original y consultar el mismo extracto como texto.
Estas comprobaciones cubren el funcionamiento de los ejemplos y de la integración utilizada. Un análisis extenso puede exigir varias sesiones, otra compilación o un entorno específico. Las prácticas de Windows requieren un laboratorio Windows; los casos de malware incluyen capturas y observaciones del autor que puedes estudiar aunque no dispongas de la muestra.
Para trabajar con malware ejecutable, utiliza una máquina virtual de análisis separada de tu entorno de trabajo. El curso distingue la lectura de una captura o un desensamblado de la ejecución de una muestra. Las sesiones básicas de Hermes mostradas aquí utilizan los programas didácticos del curso.
Ampliar el companion
La skill vive en skills/artik-reversing/SKILL.md. Puedes adaptar la forma de pedir evidencias, los pasos de una práctica y las referencias que consulta el agente. El catálogo y los manifiestos de laboratorio relacionan cada lección con sus fuentes y ejemplos. El perfil de Hermes organiza el modelo, las herramientas y la memoria de trabajo.
Empieza por una ampliación acotada: añade un ejemplo propio, escribe qué esperas observar y compruébalo manualmente. Después incorpora esas instrucciones al companion y compara su lectura con la tuya. Conserva una copia del entorno y de las versiones con las que obtienes el resultado.
La documentación de Hermes, su integración MCP y el libro de radare2 amplían la configuración y las herramientas utilizadas.