Решение xxdepelxx - basic crackme

Сложность: 1 – Very easy, for newbies
Платформа: Windows
Язык: (Visual) Basic
Дано: basic crackme

Easy to crack

Решение (автор juza)
опубликовано 28.02.2012

Инструменты: OllyDbg

Открываем crackme в OllyDbg, идем по адресу 00402506, который находится в обработчике onLoad (функция по адресу 004024В0). Чуть ниже идет неявный вызов (CALL DWORD PTR [EDX+0x1C]) функции 00402550. В ней остановимся по адресу 00402606.

image00.jpg

В этом куске кода, видим, что сравнивается настоящее имя crackme с “Crackme.exe”. Если они различаются, то мы не идем дальше. Так что, не переименовываем crackme. Еще одна проверка на отладку основана на использовании функции “IsDebuggerPresent”

image01.jpg

По адресу 004026D9 (CALL 00401FF4) происходит вызов функции IsDebuggerPresent.



Функция IsDebuggerPresent возвращает 1, если процесс находится под отладкой. Проверка единички лежит чуть ниже по адресу 004026F1 -> патчим ее (JNE заменяем на JMP). Запускаем процесс.

Вводим наши данные такие, как указанные на рисунке.

image02.jpg

Теперь, обработчик кнопки “Yes” находится по адресу 00402410. Вызов функции проверки ключа (ключ состоит из 2 частей: “123456” и “0987”) находится по адресу 004027С0. Ставим здесь точку останова и жмем “Yes”.

Псевдокод проверки ключа:
1. Адрес 0040297D - берем первые 3 символа от имени (с помощью функции rtcLeftCharVar). В нашем случае - это “abc
2. Адрес 004029В8 - берем последние 3 символа от имени (с помощью функции rtcRightCharVar). В нашем случае - это “cde
3. Адрес 004029DF - конкатенация строк: константа “SCT-” и символов, полученных на шаге 2. В нашем случае - это “SCT-cde”.
4. Адрес 00402А02 - конкатенация строк: строка на шаге 3 + длина имени. Получили “SCT-cde5”.
5. Адрес 00402А10 - конкатенация строк: строка на шаге 4 + строка на шаге 1. Получили “SCT-cde5abc”. Это и есть 1-я часть ключа.
6. Адрес 00402А37 - тупо сравниваем 2-ю часть ключа с “Shooter

Username: abcde
Serial1: SCT-cde5abc
Serial2: Shooter

Пока не указано иное, содержимое этой страницы распространяется по лицензии Creative Commons Attribution-ShareAlike 3.0 License