/var/log/life.log
Блог программиста из солнечной Бурятии

Neoquest 2015

В прошлом году я хотел поучаствовать в этом квэсте, но сначала не сообразил как там и что, а потом не было времени. В этом же году удалось.По результатам квэста понял, что я полный 0 в криптографии. В первом задании сообразил, что там RSA, но что конкретно нужно найти для ответа не сообразил. В задании с DES, даже сообразить не смог как там применить подсказку, хотя в теории всё было понятно – берём алгоритм и дифференциальным криптоанализом пытаемся подобрать ключ. В задании с ssl шифрованием в андроид приложении было ещё интереснее, после неудачной попытки отснифать трафик через fiddler решил просто перекомпилить приложение, чтобы оно игнорировало валидность сертификата, понаставил jdk, ndk, новую android studio, обновил sdk разобрался как подключать shared скомпиленные библиотеки. Всё собралось и заработало, но почему то не так, как я хотел. А трафик удалось отснифать другой программой. В задании с переполнением буфера было ещё интереснее, на локальной машине скомпилировал программу использующую библиотеку, что была в задании, разобрался в её дизассемблированном коде так, что мог уже на C написать аналогичную библиотеку. Но подвёл php. Локально я уже получал нужный результат, а сервер на аналогичный запрос не хотел отдавать нужный ответ, по какой то причине socket_read в php не полностью возвращал ответ сервера и я целый день пробовал различные варианты строк для переполнения, гадая, от чего не срабатывает. Зато gdb вдоволь по пользовался, был бы ещё гуй к нему нормальный, для таких случаев, когда нет исходников.

Не ожидал, что окажусь на 11 месте. Хорошо провёл время, теперь осталось дождаться разбора заданий на хабре.