Ломать не строить. Иногда ломать — дело не менее сложное и благородное, чем строить.
В январе «Лаборатория Касперского» открывает свой сезон зимних айтишных видов спорта и запускает конкурс CrackMe. Скачайте три файла и разреверсите их, чтобы вычислить ключ, который генерируется в зависимости от введенного адреса email. Полученный ключ необходимо зарегистрировать на сайте.
Задания пронумерованы в порядке повышения сложности, поэтому советуем решать их в той же очередности.
Первых 15 человек, которые успешно взломают CrackMe, мы возьмем на экскурсию по антивирусной лаборатории. Вы познакомитесь с экспертами ЛК и узнаете, чем мы тут занимаемся. Лучших участников также ждут памятные сувениры.
Возможно, задания покажутся вам чересчур сложными и все три выполнить не удастся. Не беда (спойлер: они и правда неординарные): зарегистрируйте свой результат и дождитесь объявления итогов. Отслеживать рейтинг можно здесь.
Если тема реверс-инжиниринга вам интересна, но взломать CrackMe не получилось, не расстраивайтесь. Подробные решения будут опубликованы в нашем Хабраблоге, как только конкурс завершится.
В январе «Лаборатория Касперского» открывает свой сезон зимних айтишных видов спорта и запускает конкурс CrackMe. Скачайте три файла и разреверсите их, чтобы вычислить ключ, который генерируется в зависимости от введенного адреса email. Полученный ключ необходимо зарегистрировать на сайте.
Задания пронумерованы в порядке повышения сложности, поэтому советуем решать их в той же очередности.
Первых 15 человек, которые успешно взломают CrackMe, мы возьмем на экскурсию по антивирусной лаборатории. Вы познакомитесь с экспертами ЛК и узнаете, чем мы тут занимаемся. Лучших участников также ждут памятные сувениры.
Возможно, задания покажутся вам чересчур сложными и все три выполнить не удастся. Не беда (спойлер: они и правда неординарные): зарегистрируйте свой результат и дождитесь объявления итогов. Отслеживать рейтинг можно здесь.
Если тема реверс-инжиниринга вам интересна, но взломать CrackMe не получилось, не расстраивайтесь. Подробные решения будут опубликованы в нашем Хабраблоге, как только конкурс завершится.
Поделиться с друзьями
FancyMalware
Чет даже неинтересно как-то. Ожидал большего, антиотладок всяких, крипторов и т.д.
А на деле нужно просто придумать такую строку, которая успешно пройдет по всем параметрам. :(
В прошлый раз помнится со всякими трюками было интереснее, а сейчас даже желания проходить нет, разгребая тонны проверок…
TrueBers
Стажёров ищут же.
FancyMalware
Интересно, а как сразу попасть на позицию авера?)
Дайте мне малварку пореверсить, ISFB там, GOZI, отчет тестовый запилить ;)
BalinTomsk
лет надцать назад Касперский вещал что какой-то вирус написан на неизвестном языке, после громких заявлений выяснилось что их девелоперы не распознали что написано на С в VS6.
A теперь можно промахи прикрыть заранее через конкурс.
Maccimo
По тексту той статьи было совершенно очевидно, что ни о каких «не распознали» речи не идёт и всего лишь нужна задачка для привлечения внимания будущих сотрудников.
Veliant
В третьем крякми задача больше аналитическая. Надо опознать общеизвестные алгоритмы и реверснуть sub_4027c0.
Введенный KEY из 16 системы приводится к QWORD(как раз есть проверка на длину ключа в 16 символов — 16байт=64бит) и ксорится с полученным MD5-хэшом.
Функция sub_4027c0 является модифицированным CRC32/CRC64. Ей на вход подаются поксоренные данные и начальное значение 0xCB63A80F116216E2. На выходе должна получиться чексумма 0x5E251D8DA62708B1.
Соответственно вся задача — либо реверснуть CRC, либо сбрутить 64бит чтоб получить необходимую константу, которая будет одна для всех.
FancyMalware
Я и говорю, что тут интересного? Я правда смотрел только третью, ибо как сказали — она самая сложная. Если в первых двух интереснее ( что я сомневаюсь ), то извиняюсь.
Я мало понимаю, как подобные кряк ми связаны с анализом малвари. Точнее, совсем не понимаю. Если расшифровывать пошифрованные строки, то смысла нет, обычно нужно знать только куда стучит — это можно решить сниффером на другой машине, к которой зараженная подключается через проксю.
Декрипторы реверсить тоже не надо, достаточно поставить аппаратный бряк в середине где-нибудь NtProtectVirtualMemory/NtAllocateVirtualMemory, занопив все проверки на виртуалку/отладчик. Вот это было бы интересно реверсить и приближенно к реальности.
Если криптор RunPE, то на всем известные NtCreateThreadEx/NtCreateProcess, а там уже смотреть как инжект кода идет, на момент которого обычно все уже расшифрованно и достаточно тупо сдампить на диск.
А тут как будто им нужны крякеры софта, которые кейгены будут писать. И то кейгены устарели, уже тупо патчат проверку, при помощи чего их крякми будет принимать валид через 2 минуты работы реверсера.
Мое имхо, крякми не о чем.
Cadog
А чем такой красивый код, как на скриншоте получить?
pfemidi
IDA
FancyMalware
Точнее Hex-Rays
Maccimo
Сделали бы один из CrackMe под JVM или Android для разнообразия.
LexS007
Под байт-код JVM есть аналитические декомпиляторы (Fernflower даже в IntelliJ IDEA уже встроен), так что это будет совсем не интересно.
Maccimo
Для бинарников есть IDA и декомпилятор Hex Rays, однако же не всё так просто.
Аналитические декомпиляторы java-байткода спотыкаются, стоит лишь слегка отойти от шаблонов.
Сможет ли IDEA декомпилировать этот класс без посторонней помощи?
https://gist.github.com/Maccimo/fed9d46f1115f03f632d83c9b901b9fd
Класс-файл корректен с точки зрения JVM, запускается, выводит приветствие.
Veliant
CFR вполне себе справился
LexS007
Fernflower тоже почти справился, только main() не разобрал.
Да и в любом случае байт-код проще исследовать чем asm. Так что если и устраивать CrackMe для Android, то должны бить бинарники скомпилиные под arm для интереса и разнообразия.
Maccimo
Целью было показать, что не стоит надеяться получить корректный код просто открыв файл в IDEA.
Все методы, кроме
main()
такие же, как у javac, так что они ожидаемо декомпилируются без проблем.Стоит добавить запутывание графа потока управления, сделать вычисление целевых методов
invokedynamic
непрозрачными, приправить это большим объёмом кода и мусорных инструкций и времязатраты на анализ возрастут.FancyMalware
Вы уже говорите про морфинг, а морфить можно что угодно, хоть пых, хоть асм, хоть цэпэпэ, хоть вашу джавку. А вот декомпилить сишку не так то и просто, ибо оптимизатор добавляет свои огрехи.
Так что все же с джавкой все проще обстоит.
AndreyFr
Нормально