
Como escrever um CrackMe para uma competição de CTF. Código-fonte, explicação técnica, truques de anti-debugging e anti engenharia reversa.
Com a crescente popularidade das competições de CTF (capture the flag), e o excelente desempenho de equipes polonesas como a Dragon Sector nessa área, pensei que seria interessante demonstrar a construção de um CrackMe simples, usando algumas técnicas criativas que dificultam sua quebra e análise.

Se você já teve curiosidade sobre engenharia reversa, participou de uma competição de CTF, ou quis criar seu próprio CrackMe e enlouquecer outros competidores, isto é para você.
Você pode encontrar um artigo sobre o crackme com descrição técnica detalhada e comentários sobre o código-fonte (em inglês) em:
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 você já tem algumas habilidades em engenharia reversa e gostaria de testar suas capacidades no CrackMe que estou prestes a descrever em detalhes, deixe este artigo de lado, baixe o executável compilado e tente encontrar a flag!

Depois de fazer sua melhor tentativa, você pode voltar ao artigo e comparar o que descobriu com a história completa. Este CrackMe tem um nível médio de dificuldade.
Para executar o CrackMe, você pode precisar dos Pacotes Redistribuíveis do Visual C++ para Visual Studio 2013.
Pegou o CrackMe? Não trapaceie lendo mais adiante — mãos à obra! ;)
Caso contrário, se você quiser aprender como construir seu próprio CrackMe, convido você a continuar lendo...
Bartosz Wójcik