1. Вы находитесь в архивной версии форума xaker.name. Здесь собраны темы с 2007 по 2012 год, большинство инструкций и мануалов уже неактуальны.
    Скрыть объявление

Исследование защиты GetDataBack

Тема в разделе "Исследование софта на уязвимости, crackme", создана пользователем Dr. MefistO, 12 июн 2011.

  1. Dr. MefistO

    Dr. MefistO Крывіч Глобальный модератор

    Регистрация:
    3 авг 2008
    Сообщения:
    152
    Симпатии:
    254
    Баллы:
    0
    Доброго времени суток, товарищ!
    Сегодня у нас на операционном столе интересный пациент: лучшая программа для восстановления утерянных данных - GetDataBack от компании Runtime Software. Взломать ее хотел уже давно, но никак не получалось. А тут БАЦ - и все получилось. Поэтому встречайте статью!=)

    Для взлома нам понадобится:

    ПЕРВАЯ ЧАСТЬ: Распаковка

    Для начала определим, чем упакована наша программа:
    Для этого запустим PEiD и откроем в нем нашу программу. Мы получим следующее:
    Код:
    [B]ASProtect 1.2x - 1.3x [Registered] -> Alexey Solodovnikov[/B]
    ASProtect - серьезный протектор исполняемых файлов и вручную его распаковывать мне было сложно. Поэтому я воспользовался скриптом (смотрите необходимый инструментарий).

    [+] Как установить плагин, и настроить скрипт - >
    Скачайте архив с ODbgScript, найдите в нем файл ODbgScript.dll (остальные файлы здесь нам не нужны) и распакуйте в папку с плагинами Olly Debugger (по-умолчанию это папка plugins - можно изменять в настройках Olly);

    Скачайте архив со скриптом распаковки, откройте его. Здесь нам нужны только два файла:
    • Aspr2.XX_unpacker_v1.15E.osc (скопируйте в любое место);
    • Asprvm8s.bin (по-умолчанию его нужно скопировать в корень диска D:, но это меняется в предыдущем файле - откройте его блокнотом и ищите по названию файла).

    [свернуть]


    Теперь запускаем дебагер, и перетаскиваем на него нашу программу (файл: gdbnt.exe). Появится окно, в котором нужно нажать Нет:
    [​IMG]

    Теперь выбираем меню как на рисунке:
    [​IMG]

    Ищем файл Aspr2.XX_unpacker_v1.15E.osc и открываем его. Ждем завершения распаковки... Будут появляться информационные сообщения "This API is not emulated" и "There are stolen code, check IAT data in log window". В обоих окнах нужно нажать ОК.

    Жмем меню, как показано на рисунке:
    [​IMG]

    В появившемся окне нас интересует только следующий блок (точнее строки 2, 3 и 5):
    [​IMG]

    Не закрывайте пока дебагер. Откройте PETools и произведите настройку согласно скриншоту и нажмите ОК:
    [​IMG]

    В верхнем списке выберите процесс, имя которого совпадает с именем взламываемой программы, нажмите на нем правой кнопкой мыши, и выберите меню Dump Full:
    [​IMG]

    PETools уведомит нас, что процесс сохранен. Закройте PETools.

    Открываем ImpRec и производим настройку согласно скриншоту:
    [​IMG]

    Теперь в верхнем списке выбираем процесс программы, которая отлаживается в Olly Debugger, и вводим значения в поля 1, 2 и 3 (рисунок слева) согласно строкам 2, 3 и 5 (рисунок справа):
    [​IMG][​IMG]

    Жмем Get Imports и Show Invalid:
    [​IMG]

    На выделенном программой адресе жмем правой кнопкой мыши и жмем Delete Thunk:
    [​IMG]

    Осталось исправить ранее полученный дамп процесса. Для этого жмем кнопку Fix Dump и выбираем файл Dumped.exe, полученный ранее. Программа сообщит нам, что все хорошо. Теперь ImpRec можно закрывать. Первая часть статьи окончена...

    ВТОРАЯ ЧАСТЬ: Исследование программы и снятие защиты

    Открываем IDR, а в нем полученный в конце первого этапа файл Dumped_.exe. Ждем завершения анализа... Пока IDR анализирует, откроем этот же файл еще и в Olly Debugger.

    До написания статьи я уже исследовал эту программу, поэтому буду сразу писать: что, где и куда.

    На вкладке Units ищем юнит license. В нем находятся основные функции и процедуры защиты программы. Жмем по этой строке двойным щелчком мыши. Снизу в списке вы увидите ранее заблокированные ключи (нашелся даже ключ от TSRh-Team). Чуть ниже появятся строковые ресурсы этого модуля. По ним и будем ориентироваться:
    [​IMG]

    Переключаемся на вкладку Strings (клавиша F8), жмем правой кнопкой мыши и ищем первую строку про пиратскую версию:
    Код:
    [B]This might be a pirated version. Press OK to report to [email protected][/B]
    При выделении данной строки справа в столбце XRefs будет отображен зеленый адрес, который нам говорит, откуда вызывается данная строка. Щелкнем два раза по этому адресу:
    [​IMG]

    Желтым я выделил переход, который, в случае верного сравнения чего-то с чем-то, перебрасывает нас за вызов сообщения о пиратской версии и последующего сообщения "Thank you!". Чтобы вас не смущало это сообщение благодарности, скажу, что благодарят здесь именно за возможное ваше сообщение саппорту о том, что вам попалась пиратская версия.

    Сделаем так, чтобы при любом раскладе переход осуществлялся. Для этого в Olly Debugger заменим этот переход с условного на безусловный, т.е. на JMP. Для этого, в столбце слева от данной команды, запоминаем адрес, обозначенный серым, и переходим по нему в дебагере (комбинация Ctrl+G). Два раза щелкаем по строке с командой, и вместо JE вводим JMP. Жмем ОК.

    Возвращаемся в IDR.
    Следующие строки: статусы Licensed и Not Licensed.
    Опять ищем их на вкладке Strings и переходим по адресу в XRefs. Сначала разберемся с Licensed:
    [​IMG]

    Синим на картинке выделена строка с загрузкой "хорошей фразы". Ищем какие-нибудь переходы мимо этого куска... Ага, видим чуть выше переход, который нас перебрасывает через загрузку нужной фразы, на загрузку "плохой фразы" - Not Licensed. Значит что нам нужно сделать? Правильно - исправить переход JE АДРЕС на противоположный - JNZ АДРЕС в отладчике.

    Теперь программа зарегистрирована. Но это не все! Ведь при нажатии About... в меню программы, высвечивается красная надпись "Unlicensed evaluation copy". От нее и будем плясать...

    Ищем эту строку на вкладке Strings и переходим по адресу вызова данной строки:
    [​IMG]

    Нам, как оказалось, интересна только выделенная желтым процедура. Раз переходов нет, одни вызовы, значит смотрим, что она делает. Для этого жмем правой кнопкой мыши по этому вызову, и выбираем GoTo Adress, а затем ОК.
    [​IMG]

    Чтобы вы не мучились, я выделил для вас искомую процедуру сравнения. Меняем ее на противоположную - JE.

    Теперь сохраняем все изменения. Для этого жмем правой кнопкой мыши, Copy to Executable -> All modifications, и сохраняем под новым именем.

    Можете запустить, проверить. Круто, не правда ли?! Осталось дело за малым...
    Уберем пункт меню Registration, и припишем регистрацию на себя.

    Для этого: открываем Restorator, выбираем в нем нашу модифицированную программу. Заходим в раздел RCData, ищем в списке TMAINFORM (окно главной формы), переключаемся в режим редактирования (читайте в указанной в самом начале статье), и ищем (клавиши Ctrl+F) текст "Register". Видим следующий текст:
    [​IMG]

    Теперь просто берем и удаляем выделенные желтым строки. Далее...
    Ищем снова, но уже текст "Licensed to". Находим, и вместо %s пишем свой ник.

    Сохраняем изменения (клавиша F8) и сохраняем файл.

    Наслаждаемся проделанной работой:
    [​IMG]

    Подобным образом ломается и FAT32-версия программы.

    Это все! Спасибо за внимание...

    Автор: Dr. MefistO
     
    3 пользователям это понравилось.
  2. onthar

    onthar Команда форума Админ

    Регистрация:
    8 янв 2008
    Сообщения:
    0
    Симпатии:
    609
    Баллы:
    0
    Шикарно)
     
  3. NightWolf

    NightWolf Guest

    Dr. MefistO
    Ты разве крякер?Оо
     
  4. Dr. MefistO

    Dr. MefistO Крывіч Глобальный модератор

    Регистрация:
    3 авг 2008
    Сообщения:
    152
    Симпатии:
    254
    Баллы:
    0
    Статью писал я) Делай выводы...
     
    1 человеку нравится это.
  5. NightWolf

    NightWolf Guest

    А сие CommView® for WiFi чудо не крякал?
     
  6. Dr. MefistO

    Dr. MefistO Крывіч Глобальный модератор

    Регистрация:
    3 авг 2008
    Сообщения:
    152
    Симпатии:
    254
    Баллы:
    0
    Я что, похож на тру-крякера?) Я попробую ее взломать, но ничего не обещаю!) Я ведь только крякер-любитель...
     
  7. NightWolf

    NightWolf Guest

    А статья реально круто расписана....
    у меня старая версия не хочет дружить с картой Oo
     
  8. Dr. MefistO

    Dr. MefistO Крывіч Глобальный модератор

    Регистрация:
    3 авг 2008
    Сообщения:
    152
    Симпатии:
    254
    Баллы:
    0
    Увы, неизвестный мне упаковщик...
     

Поделиться этой страницей