
Come scrivere un CrackMe per una competizione CTF. Codice sorgente, spiegazione tecnica, trucchi anti-debugging e anti reverse-engineering.
Con la crescente popolarità delle competizioni CTF (capture the flag), e l'ottima performance di squadre polacche come Dragon Sector in questo ambito, ho pensato che sarebbe stato interessante dimostrare la costruzione di un semplice CrackMe, utilizzando alcune tecniche creative che lo rendono difficile da craccare e analizzare.

Se sei mai stato curioso riguardo al reverse engineering, hai partecipato a una competizione CTF, o hai voluto creare il tuo CrackMe e far impazzire gli altri concorrenti, questo articolo fa per te.
Puoi trovare un articolo sul crackme con una descrizione tecnica dettagliata e commenti sul codice sorgente (in inglese) all'indirizzo:
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/
Se hai già alcune competenze di reversing, e vorresti cimentarti con il CrackMe che sto per descrivere in dettaglio, metti da parte questo articolo, scarica l'eseguibile compilato, e prova a trovare la flag!

Una volta fatto il tuo miglior tentativo, puoi tornare all'articolo e confrontare ciò che hai scoperto con la storia completa. Questo CrackMe ha un livello di difficoltà medio.
Per eseguire l'eseguibile del CrackMe potresti aver bisogno dei Visual C++ Redistributable Packages for Visual Studio 2013.
Hai scaricato il CrackMe? Non barare leggendo oltre - mettiti all'opera! ;)
In caso contrario, se vuoi imparare come costruire il tuo CrackMe, ti invito a continuare a leggere...
Bartosz Wójcik