
Как написать CrackMe для CTF-соревнования. Исходный код, техническое объяснение, приёмы анти-отладки и анти-реверс-инжиниринга.
С ростом популярности соревнований CTF (capture the flag) и отличными результатами польских команд, таких как Dragon Sector, в этой области, я подумал, что было бы интересно продемонстрировать создание простого CrackMe с использованием некоторых творческих техник, которые затрудняют его взлом и анализ.

Если вы когда-либо интересовались реверс-инжинирингом, участвовали в соревнованиях CTF или хотели создать собственный CrackMe и свести с ума других участников, — это для вас.
Вы можете найти статью о crackme с подробным техническим описанием и комментариями к исходному коду (на английском) по адресу:
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/
Если у вас уже есть некоторые навыки реверса и вы хотите попробовать свои силы в CrackMe, который я собираюсь подробно описать, отложите эту статью в сторону, скачайте скомпилированный исполняемый файл и попробуйте найти флаг!

После того как вы приложите максимум усилий, вы сможете вернуться к статье и сравнить то, что вы обнаружили, с полной историей. Этот CrackMe имеет средний уровень сложности.
Для запуска исполняемого файла CrackMe вам могут понадобиться Распространяемые пакеты Visual C++ для Visual Studio 2013.
Скачали CrackMe? Не жульничайте, не читайте дальше — приступайте к взлому! ;)
В противном случае, если вы хотите узнать, как создать собственный CrackMe, приглашаю вас читать дальше...
Bartosz Wójcik