
Comment écrire un CrackMe pour une compétition CTF. Code source, explication technique, astuces anti-débogage et anti-rétro-ingénierie.
Avec la popularité croissante des compétitions CTF (capture the flag), et l'excellente performance des équipes polonaises comme Dragon Sector dans ce domaine, j'ai pensé qu'il serait intéressant de démontrer la construction d'un simple CrackMe, en utilisant quelques techniques créatives qui le rendent difficile à craquer et à analyser.

Si vous vous êtes déjà intéressé au reverse engineering, avez participé à une compétition CTF, ou avez voulu créer votre propre CrackMe et rendre fous les autres concurrents, cet article est pour vous.
Vous pouvez trouver un article sur le crackme avec une description technique détaillée et des commentaires sur le code source (en anglais) à l'adresse :
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 vous avez déjà des compétences en reverse engineering, et que vous souhaitez vous essayer au CrackMe que je vais décrire en détail, mettez cet article de côté, récupérez l'exécutable compilé, et essayez de trouver le flag !

Une fois que vous aurez fait de votre mieux, vous pourrez revenir à l'article et comparer ce que vous avez découvert avec l'histoire complète. Ce CrackMe a un niveau de difficulté moyen.
Pour exécuter le CrackMe, vous aurez peut-être besoin des Visual C++ Redistributable Packages for Visual Studio 2013.
Vous avez le CrackMe ? Ne trichez pas en lisant la suite - au travail ! ;)
Sinon, si vous voulez apprendre à construire votre propre CrackMe, je vous invite à continuer la lecture...
Bartosz Wójcik