Рубрика «crackme»

В первой части статьи мы при помощи Ghidra провели автоматический анализ простой программы-крякми (которую мы скачали с сайта crackmes.one). Мы разобрались с тем, как переименовывать «непонятные» функции прямо в листинге декомпилятора, а также поняли алгоритм программы «верхнего уровня», т.е. что выполняется функцией main().

В этой части мы, как я и обещал, возьмемся за анализ функции _construct_key(), которая, как мы выяснили, как раз и отвечает за чтение переданного в программу двоичного файла и проверку прочитанных данных.
Читать полностью »

О том, что это за зверь такой — Ghidra («Гидра») — и с чем его едят она ест программки, многие уже, наверняка, знают не понаслышке, хотя в открытый доступ сей инструмент попал совсем недавно — в марте этого года. Не буду докучать читателям описанием Гидры, ее функциональности и т.д. Те, кто в теме, уже, уверен, всё это сами изучили, а кто еще не в теме — могут это сделать в любое время, благо на просторах веба сейчас найти подробную информацию не составит труда. Я же дам только основные ссылки:

Итак, Гидра — это бесплатный кроссплатформенный интерактивный дизассемблер и декомпилятор с модульной структурой, с поддержкой почти всех основных архитектур ЦПУ и гибким графическим интерфейсом для работы с дизассемблированным кодом, памятью, восстановленным (декомпилированным) кодом, отладочными символами и многое-многое другое.

Давайте попробуем уже что-нибудь сломать этой Гидрой!
Читать полностью »

Triton vs Kao’s Toy Project. Продолжаем хорошую традицию - 1

В данной статье речь пойдет про SMT-решатели. Так сложилось, что в исследовательских материалах, посвященных данной теме, появилась хорошая традиция. Уже несколько раз в качестве подопытного алгоритма для SMT-решателей разные исследователи выбирали один и тот же пример – крякми, придуманное некогда человеком с ником kao. Что ж, продолжим эту традицию и попробуем использовать для решения этого крякми еще один инструмент для символьных вычислений – Triton.

Читать полностью »

Взлом ядерного Crackme - 1

Привет, Читатели!

Сам процесс решения задачек на взломы особенно приятен, а когда есть решение – приятно вдвойне. Сегодня мы решили разобрать крякми, который попался нам на конференции ZeroNights в ноябре, где наша команда из школы кибербеза и ИТ HackerU дебютировала и сразу выдебютировала заняла первое место в hardware challenge. Решение crackme «SHADOW» пригодится тем, кто увлекается реверс-инжинирингом.

Для крякми этого уровня достаточно знать ассемблер и иметь базовое представление об устройстве драйверов под Windows.
Читать полностью »

Открываем зимний конкурс CrackMe: ломай-ревёрсь - 1

На недавно прошедшей конференции ZeroNights, мы предлагали присутствующим решить несколько CrackMe-задач, но удалось это лишь единицам. Мы решили, что незачем хорошим головоломкам пропадать и предлагаем решить их в рамках зимнего конкурса CrackMe, который, таким образом, получается гораздо масштабнее прошлогоднего. 15 участников, первыми решивших максимальное количество CrackMe, и попавших в топ рейтинга, ждут призы (от экскурсии по ЛК до action-камеры).
Читать полностью »

Данная статья рассчитана на начинающих, интересующихся обратной разработкой, и имеющих базовые представления о работе ЦП, языке ассемблера. Этот crackme относительно старый и простой, но при его решении применяются в основном те же приемы, что и при решении более сложных. На просторах Сети можно найти несколько статей с его разбором такие как эта, а еще он здесь упоминается(crackme то с историей), однако те решения не такие подробные как это. В свое время мне сильно не хватало такого построчного разбора, куда можно было бы заглянуть, когда запутался и не понимаешь что делает тот или иной участок кода. Если этот пост окажется полезным хотя бы для одного человека, значит я не зря старался. Все скрины(кроме первого) кликабельны. Приятного прочтения.

Итак, перед нами простой crackme, запустим его и посмотрим как он работает.

Подробный разбор решения crackme01_x64 - 1

Ага, все довольно просто, мы должны ввести правильный серийник. Теперь откроем программу в дизассемблере. Как правило дизассемблерные листинги, даже относительно простых программ, довольно объемны. Для определения той части кода, которая проверяет ввод серийника, найдем где в памяти программы хранится строка с сообщением об ошибке «Fail, Serial is invalid !!!» и какой код к этой строке обращается.
Читать полностью »

Вступление

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

image
Читать полностью »

В продолжение моего предыдущего разбора «Reverse engineering тестового crackme от Лаборатории Касперского». Нашел на просторах интернета ещё один вариант crackme от Лаборатории Касперского. Автор применил брутфорс для его решения. Этот грубый «крякерский» метод нам тут не подойдёт. Нас интересует разбор алгоритма проверки лицензионного ключа. Можно, конечно, сделать огромную выборку правильных ключей и попробовать найти закономерность, но мне кажется, что лучше немного пореверсить. И так начнем. Начало у crackme такое же, как и в предыдущей статье: ключ должен содержать 19 символов, каждый 5-ый символ должен быть "-" и все символы должны быть цифрами. Перейдем к интересному. Используем в качестве пробного ключа 1234-5678-9012-3456.

image

Читать полностью »

Приветствую сообщество! Давным давно, в 2013 году на Хабре был опубликован пост. В нём был предложен тестовый crackme для претендентов на позицию вирусного аналитика. Убедившись, что полного разбора тестового файла в интернете нет, я решил написать свой разбор. И так, приступим. Crackme 64-разрядный. Запустим его в IDA Pro.

image

Читать полностью »

Недавно закончился конкурс обратной разработки ZeroNight2015, проводимый «Лабораторией Касперского». Сама организация конкурса, с моей точки зрения, хромала, но статья не об этом. На конкурсе была представлена интересная задача под названием «Смартфон», разбору которой и будет посвящена данная серия статей. Эта статья будет посвящена описанию условия задачи и поиску защитного механизма. Вторая статья затронет оптимизацию скорости работы взламываемой программы посредством внедрения X-кода. В третьей статье будет описан процесс поиска ошибок во внедренном коде с использованием юнит-тестирования.
Читать полностью »