Saltar al contenido
Lectura6 minPreview

Qué es reversing en un CTF

Bienvenida

Bienvenido a CTF de reversing: leer un programa al revés. Al terminar va a poder tomar un programa que valida una clave, entender qué le hace a lo que usted escribe y construir la operación inversa hasta recuperar la clave aceptada. Es para quien ya juega retos de nivel inicial y se topa con la categoría rev sin saber por dónde entrarle. Necesita una máquina virtual con Linux (o Windows con Python 3 instalado) y saber leer un for en Python; no hace falta saber ensamblador.

Son cinco lecciones: esta, una de herramientas, una práctica guiada con un crackme pequeño, el reto con su flag y el writeup. Cierra un quiz de 4 preguntas. Calcule unos 50 minutos.

Qué es reversing en un CTF

Reversing viene de reverse engineering, ingeniería inversa: partir del programa terminado y deducir cómo funciona, sin el código fuente original ni la documentación. En un CTF el formato típico es el crackme: un programa le pide una clave, responde "correcta" o "incorrecta" y la clave buena es la flag. Su trabajo no es adivinar, es leer la lógica de validación y deshacerla.

El programa puede venir de varias formas. En los retos más fáciles es un script de Python o JavaScript, apenas ofuscado. Luego aparecen archivos .pyc (Python compilado a bytecode), ejecutables ELF de Linux, .exe de Windows y aplicaciones Android. La técnica de fondo es la misma; cambia cuánto trabajo cuesta llegar a una versión legible del código.

Cómo se reconoce

Un reto es de reversing cuando la descripción dice algo como "encuentre la contraseña que acepta este programa" y le entregan un archivo que se ejecuta. Otras pistas: nombres de funciones sin sentido (_a, sub_401136), listas largas de números que se comparan contra algo y operaciones sobre bytes: ^ (XOR), << y >> (desplazamientos), % 256.

Lo que yo hago primero, siempre, es buscar la comparación final. Todo programa que valida una clave termina en un == o en un if que decide entre "sí" y "no". Desde ahí se lee hacia arriba. La lección 3 practica ese método paso a paso.

Lo que se aprende de verdad

Fuera del CTF, esto es lo que hace un analista cuando le llega un adjunto sospechoso: un "activador" de software, una macro, un script que alguien bajó de un foro. La pregunta del equipo de respuesta no es "cuál es la flag" sino "qué hace esto si alguien lo ejecuta": si se conecta a internet, si lee archivos, si lanza otros procesos. Se responde igual que un crackme, leyendo antes de ejecutar.

El reto final de esta píldora está montado así. Un cliente de Cafetal Digital recibió un supuesto activador de una aplicación contable y usted tiene que decir qué hace y qué clave acepta. Todo es ficticio y el script es inofensivo, pero lo va a tratar como si no lo fuera.