Введение в крэкинг с нуля, используя OllyDbg - Глава 17

Дата публикации 25 янв 2008

Введение в крэкинг с нуля, используя OllyDbg - Глава 17 — Архив WASM.RU

Хорошо, прежде всего мы решим крэкми MEXCRK1.ZIP. Он очень лёгкий. Откроем его в OllyDbg и окажемся в точке входа.

Смотрим строки, которые используются программой. Нажимаем правую кнопку мыши.

Видим среди строк следующие:

Можем кликнуть на той, которая сообщает об успехе, или сообщающей о неудаче, чтобы попасть в интересующую нас область программы.

Видим, что здесь есть call, после которого либо происходит управление передаётся на код либо с «WRONG CODE DUDE», либо c «THANKS YOU MADE IT».

Устанавливаем BPX на CALL в 42d534 и нажимаем RUN.

Введём неправильный серийный номер в поле, которое называется «Enter Serial #».

В моём случае печатаем Narvajita.

Если войдём в режиме трассировки в CALL, то увидим, что сравнивается введённый серийник «Narvajita» со строкой «Benadryl».

Ок, теперь мы оказываемся рядом со сравнением, так что правильным серийным номером является слово «Benadryl». Сделаем RUN по-новой, убрав предварительно все BPX.

Здесь видим, что нас поздравляют с нахождением правильного серийного номера .

Ок, теперь разберём последний случай подобного типа, а со следующей главы начнём новую тему. Это небольшая программка, являющееся игрой под названием canasta 5.0. Она приложена к статье.

Эта программа относится к той категории, где при кнопка OK в начале недоступна для нажатия, но когда пользователь заканчивает вводить свои данные, то если они верны, на неё становится возможным нажать.

Установим программу и зайдём в About.

Она стоит, друзья, 20 долларов, вернее 19.95.

Видим кнопку «ENTER LICENSE».

Здесь говорится, что кнопка OK станет доступна, когда будет введена правильная комбинация.

Запустим программу в OllyDbg.

Мы оказываемся в точке входа.

Уфф, список используемых API-функций велик, также как и список строк.

Среди этих строк нет никаких, которые подходили бы нам по смыслу, хех.

Запускаем программу в OllyDbg и оказываемся в окне регистрации. Попробуем применить какой-нибудь из методов взлома данного типа защит.

Вводим имя, предполагая, что оно может быть любым, поскольку узнать мы это можем только потом, затем вводим какой-нибудь редкий License Key, состоящий из 6 символов, например, WMYXSZ.

Теперь нажимаем M.

Поищем, нет ли в памяти строки «WM», соответствующей двум уже введённым буквам.

Нажимаем клавишу M, чтобы перейти в VIEW-MEMORY, и начать поиск вышеуказанной строки.

В данном случае отмечаем опцию CASE SENSITIVE, чтобы не выдавались аналоги WM в других регистрах.

После двух или трёх раз, когда встретятся слова, начинающиеся с WM, и которые можно пропустить, нажав CTRL+L, и после того, как пройдём одну секцию и будем искать ниже в окне M, нам встретится WM, не входящая в состав других слов, и ещё ниже находится текст, говорящий о том, что на кнопку OK можно будет нажать после введения правильного серийного номера.

Поищем это место через DUMP.

Вспомним, что адрес, который начинается с буквы (как в данном случае), должен начинаться с нуля, иначе OllyDbg его не признает.

Чтобы быть уверенными, что это именно та область, где сохраняется серийный номер, введём следующую букву в поле серийного номера.

После этого смотрим в DUMP, символ был добавлен, а значит это и есть область, где сохраняется серийный номер, поэтому ставим сюда BREAKPOINT MEMORY ON ACCESS, охватывающий 6 цифр (так как мы знаем, что их будет ровно шесть).

Теперь делаем RUN.

Появляется окно, в котором вводим следующий символ – “X”.

Останавливаемся на том месте, где происходит сохранение.

Здесь по нажатию на F8 происходит копирование ESI в EDI.

Здесь происходит копирование четырёх байтов, введённых нами ранее.

По нажатию на F8 они копируются в 12E79C.

Так как мы уже используем BREAKPOINT MEMORY ON ACCESS, то можем установить HARDWARE BPX ON ACCESS.

Если оттрассируем немного, увидим моё имя также перемещается в стек.

Точно перед именем находится 0E, которое является его длиной, и она сравнивается с нулём.

Так как не равно нулю, выполнение программы продолжается.

Затем происходит сравнение имени с теми, кто находится в чёрном списке, то есть оно не должно быть TNO, afdad и т.п.

Снова делаем RUN.

Останавливаемся на сравнении с серийным номером.

И можем посмотреть, действительно ли это правильный серийный номер. Убираем все точки останова.

После его введения становится доступной кнопка “OK”, после её нажатия мы регистрируемся, хе-хе. Другим способом, на объяснении которого я не буду задерживаться, но который не слишком сложен, является использование WM_KEYUP каждый раз, когда нажимаем клавишу, чтобы останавливать OllyDbg и отслеживать, что происходит с введенным нами символом, но это довольно скучно, и способ, который мы применили, гораздо более простой.

Ок, давайте отдохнём немного. В следующей части мы изучим немного теории и рассмотрим несколько примеров по новой теме. © Рикардо Нарваха, пер. Aquila


5 4.348
archive

archive
New Member

Регистрация:
27 фев 2017
Публикаций:
532

Комментарии


      1. ture 6 апр 2017
        DrochNaNoch и BagArt нравится это.
      2. virtuha 23 май 2017
        Оглавление
        Введение в крэкинг с нуля, используя OllyDbg - Глава 1
        Введение в крэкинг с нуля, используя OllyDbg - Глава 2
        Введение в крэкинг с нуля, используя OllyDbg - Глава 3
        Введение в крэкинг с нуля, используя OllyDbg - Глава 4
        Введение в крэкинг с нуля, используя OllyDbg - Глава 5
        Введение в крэкинг с нуля, используя OllyDbg - Глава 6
        Введение в крэкинг с нуля, используя OllyDbg - Глава 7
        Введение в крэкинг с нуля, используя OllyDbg - Глава 8
        Введение в крэкинг с нуля, используя OllyDbg - Глава 9
        Введение в крэкинг с нуля, используя OllyDbg - Глава 10
        Введение в крэкинг с нуля, используя OllyDbg - Глава 11
        Введение в крэкинг с нуля, используя OllyDbg - Глава 12
        Введение в крэкинг с нуля, используя OllyDbg - Глава 13
        Введение в крэкинг с нуля, используя OllyDbg - Глава 14
        Введение в крэкинг с нуля, используя OllyDbg - Глава 15
        Введение в крэкинг с нуля, используя OllyDbg - Глава 16
        Введение в крэкинг с нуля, используя OllyDbg - Глава 17
        Введение в крэкинг с нуля, используя OllyDbg - Глава 18
        Введение в крэкинг с нуля, используя OllyDbg - Глава 19
        Введение в крэкинг с нуля, используя OllyDbg - Глава 20
        Введение в крэкинг с нуля, используя OllyDbg - Глава 21
        Введение в крэкинг с нуля, используя OllyDbg - Глава 22
        Введение в крэкинг с нуля, используя OllyDbg - Глава 23
        Введение в крэкинг с нуля, используя OllyDbg - Глава 24
        Введение в крэкинг с нуля, используя OllyDbg - Глава 25
        Введение в крэкинг с нуля, используя OllyDbg - Глава 26
        Введение в крэкинг с нуля, используя OllyDbg - Глава 27
        Введение в крэкинг с нуля, используя OllyDbg - Глава 28
        Введение в крэкинг с нуля, используя OllyDbg - Глава 29
        Введение в крэкинг с нуля, используя OllyDbg - Глава 30
        Введение в крэкинг с нуля, используя OllyDbg - Глава 31
        Введение в крэкинг с нуля, используя OllyDbg - Глава 32
        Введение в крэкинг с нуля, используя OllyDbg - Глава 33
        Введение в крэкинг с нуля, используя OllyDbg - Глава 34
        Введение в крэкинг с нуля, используя OllyDbg - Глава 35
        Введение в крэкинг с нуля, используя OllyDbg - Глава 36
        Введение в крэкинг с нуля, используя OllyDbg - Глава 37
        Введение в крэкинг с нуля, используя OllyDbg - Глава 38
        Введение в крэкинг с нуля, используя OllyDbg - Глава 39
        Введение в крэкинг с нуля, используя OllyDbg - Глава 40
        Введение в крэкинг с нуля, используя OllyDbg - Глава 41
        Введение в крэкинг с нуля, используя OllyDbg - Глава 42
        Введение в крэкинг с нуля, используя OllyDbg - Глава 43
        Введение в крэкинг с нуля, используя OllyDbg - Глава 44
        Введение в крэкинг с нуля, используя OllyDbg - Глава 45
        Дополнение к 45-ой главе «Введения в крэкинг, используя OllyDbg»
        Введение в крэкинг с нуля, используя OllyDbg - Глава 46
        Введение в крэкинг с нуля, используя OllyDbg - Глава 47
        Введение в крэкинг с нуля, используя OllyDbg - Глава 48
        Введение в крэкинг с нуля, используя OllyDbg - Глава 49
        Введение в крэкинг с нуля, используя OllyDbg - Глава 50
        Введение в крэкинг с нуля, используя OllyDbg - Глава 51
        Введение в крэкинг с нуля, используя OllyDbg - Глава 52
        Введение в крэкинг с нуля, используя OllyDbg - Глава 53
        DrochNaNoch нравится это.
      3. ture 7 апр 2017
        Пришлось игрулю сохранить, чтоб не забывала регистрацию.
        BagArt нравится это.
      4. ture 7 апр 2017
        Ваще-ваще задолбался здесь. Пробовал имена из "черного списка", открывается окошко с просьбой ввести мыло. Но, т.к. хром и гекон дружно повалились, то регать себе анонимную почту не стал. Пробовал вникнуть в алгоритм получения номера, но аналогично не врубился.
        BagArt нравится это.
      5. DrochNaNoch 16 дек 2022
        ture
        при анализе программы выдается 2 пароля: 1 верный (регистрирует без всякого гемора с указанием email), 2 "устаревший", где она просит указать email для его обновления