Reversing Center
Дистанционный центр по исследованию защитного ПО.

Взлом простого CrackMe

King

Форумчанин
Сообщения
37
Реакции
29
Предисловие.
Добрый день, дорогие пользователи данного форума.
Решил написать небольшую статейку по анализу и взлому простенького CrackMe, если вам понравятся статьи в подобном стиле, то я сделаю ещё несколько серий. Поехали! ;)
Введение в суть дела.
Не так давно на одном я форуме нарвался на тему в которой пользователям предлагалось решить простой CrackMe, для тех, кто не в курсе, CrackMe - это программа на которой можно попробовать свои силы в реверсинге.
Автор данного CrackMe поставил перед нами следующую задачу: "Пропатчить файл так, что бы подходил любой пароль.", также в теме было указано, что данный файл не накрыт каким-либо протектором. (Протектор - специальная программа, который затрудняет анализ файла).
Подготовительная часть.
Настало самое время поговорить на тему, а что же нам потребуется для решения данного CrackMe.
Для взлома нам потребуется следующий арсенал программ:
1)Отладчик. В данном случае я выбрал x32dbg
2)Декомпилятор исполняемых файлов (EXE) и динамических библиотек (DLL), написанных на языке Delphi и выполняемых в среде 32х-разрядных операционных систем Windows. IDR (Interactive Delphi Reconstructor)
4) Анализаторов исполняемых файлов. Peid
3)Сам CrackMe файл.
Все вышеперечисленные будет размещено в конце статьи. :)
Основная часть.
Первый делом загоним наш файл в анализатор Peid и посмотрим, какую информацию он нам может дать о данном файле.
422dce265a1f4c25bcefd28eb1f4c2bf.png

Можем сделать вывод, что программа действительно не накрыта протектором и написано она на Delphi.
Теперь давайте начнем анализ данного файла через IDR.
Сразу хочу заметить, что для работы вам потребуется не только сам IDR, но и база знаний для Delphi (Все файлы Вы сможете скачать в конце статьи).
После загрузки файла переходите на вкладку "Forms" и переставляем флажок в состояние "Form".
7223766e201d42cfbac152fc01dcac0c.png

После чего кликаем на TForm1 два раза.
Видим, что на форме размещен один Edit (текстовое поле) и одна Button (кнопка).
Следующим шагом давайте посмотрим, что происходит при нажатии данной кнопки.
99e4fd9126234998b49d09b7a29d7978.png

Сразу можем заметить пару интересных моментов.
По адресу 0044F70D можем заметить команду JNZ (Данная команда выполняем условных переход на адрес 0044F714)
Теперь давайте обратим внимание на команду call (Команда call передает управление ближней или дальней процедуре) находящуюся по адресу 0044F70F.
Хм, вполне возможно, что если мы сделаем переход на данный вызов, то сможем добиться желаемого результата.
Теперь перейдем в программу x32dbg и откроем наш файл после чего нажмем Ctrl+G И введем адрес нашего условного перехода (0044F70D), после чего нажмем кнопку "OK".
После чего нажмем кнопку "Пробел" и изменим условный переход на адрес нашего call.
b0ca6e4c6455491ea01899c3e0543454.png

После чего давайте сохраним файл и проверим его работоспособность.
Для сохранения кликаем правой кнопкой мыши - Patches - Patch File.
После чего сохраняем его в удобное для Вас место.
После чего пробуем ввести любые значения в поле и будем получать всегда один результат.
edec14557de44d9089e6a12181657741.png

На этом моя первая статья подошла к концу всем спасибо за внимание.
Очень буду рад вашему мнению.
Скрытый контент для зарегистрированных пользователей
 
telderi.ru
Сверху