Лаборатория ASIS CTF quals 2016 - Catch me!

acid
, 10 May 2016

Catch_me if you can!

Ух, лишь взглянув на мэйн уже в дрожжь бросает, куча всяческих преобразований, которые не охото обращать

Немного изучив бинарь, видим  что флаг получается в результате последовательного ксора с 8 байтами строки из 32 байт, ну ок.  

так же немного поизучав находим функцию где инициализируется значение dword_6012B4:
 

значит значения dword не будут совпадать в случае, если процесс не отлаживается и иначе.

глянем в гдб чему же равен флаг после ксор (пока на всякие getenv не смотрим):
 

О круто, часть флага уже виднеется, значит чтобы собрать флаг нужно, пользоваться отладчиком, ок, но как собрать оставшуюся часть, ведь мы не знаем еще 4 байта?
Теперь вернемся к проверке переменных окружения, уж больно подозрительной кажется проверка переменной "CTF", находим ее значение, чтобы условие выполнилось поксорить 0xfeebfeeb со значением v3 не особо сложно, узнав значение v3 в отладчике, пробуем подставить нужное значение и в CTF и в ASIS открываем гдб, брякаемся на уже знакомый адрес и что же видим?