
Cómo escribir un CrackMe para una competición CTF. Código fuente, explicación técnica, trucos anti-debugging y anti-ingeniería inversa.
Con la creciente popularidad de las competiciones CTF (capture the flag), y el excelente rendimiento de los equipos polacos como Dragon Sector en este ámbito, pensé que sería interesante demostrar la construcción de un CrackMe sencillo, utilizando algunas técnicas creativas que dificultan su craqueo y análisis.

Si alguna vez has sentido curiosidad por la ingeniería inversa, has participado en una competición CTF, o querías crear tu propio CrackMe y volver locos a otros participantes, esto es para ti.
Puedes encontrar un artículo sobre el crackme con una descripción técnica detallada y comentarios sobre el código fuente (en inglés) en:
https://www.pelock.com/articles/how-to-write-a-crackme-for-a-ctf-competition
https://zaufanatrzeciastrona.pl/post/jak-napisac-ciekawe-crackme-na-ctf-instrukcja-krok-po-kroku/
Si ya tienes algunas habilidades de ingeniería inversa y te gustaría probar suerte con el CrackMe que voy a describir en detalle, deja este artículo a un lado, descarga el ejecutable compilado y ¡trata de encontrar la flag!

Una vez que hayas hecho tu mejor intento, puedes volver al artículo y comparar lo que descubriste con la historia completa. Este CrackMe tiene un nivel de dificultad medio.
Para ejecutar el ejecutable del CrackMe puede que necesites los paquetes redistribuibles de Visual C++ para Visual Studio 2013.
¿Ya tienes el CrackMe? No hagas trampa leyendo más adelante: ¡a por ello! ;)
Si no, y quieres aprender a construir tu propio CrackMe, te invito a seguir leyendo...
Bartosz Wójcik