Уроки Очень простой крякинг в IDA (часть 2)


0b170xor

Уважаемый пользователь
Форумчанин
Регистрация
13.01.2020
Сообщения
70
Репутация
27
Я решил продолжить серию статей по изучению "утиного языка".
Прошлый урок находится здесь на этом же форуме.

Смотря глазами настоящего "Дональда Дака" наш кряк . Пользователь должен просто запустить кряк и сразу пользоваться лицензионной версией. А не бегать по нашему readme и выполнять подозрительные действия (типа "5. Выключите , а лучше его.", "7 шаг - Дайте свой емайл и пароль, а мы дадим вам пиратский ключ")

Приступим к работе снова

Demo mode программы


Примечание 1 - Вы чувствуете запах коммерции?
Ричард Мэттью Столлман

Запускаем софт, нажимаем “Continue”, выходим на основное окно. В прошлой статье я не сообщил, что открывает Registered версия программы. Она открывает просто уже готовые конфиги настроек справа в списке “Extra Settings” и настройку значений “ Optimization”. . Вы хотели большего за 40 евро?

Internet Cyclone

Смотрим на заголовок окна, давайте подумаем как оно создается. Обычный при написании программы, сделал бы сначала проверку на лицензию, а потом уже вывод текста UNREGISTERED, если лицензия неверна. Из прошлой статьи мы убедились что после пациента и регистрации левых ключей, текст в заголовке менялся на анологичный из выше , но с текстом Registered (не капсом).

Значит идем по своим же следам, но свернем раньше. Ищем текст Registered как в прошлом уроке.

IDA поиск совпадений

Наша Ида нашла 3 совпадения надо просмотреть все.

Не лезь. Она тебя сожрет.

сложно сложно

Первый вариант явно принадлежит окну регистрации из прошлого урока, нас интересует именно первый запуск и выставление заголовка главному окну с финти-плюшками.

вот это по нашему

А вот второй вариант как раз очень похож, поскольку всего один текст и содержится в данном участке. Давайте поинтересуемся куда передается этот массив байтов размером 58 байт [Internet Cyclone 2.28 (Win9x/ME/NT/XP/7/8/10) - Registered]

P.S. Я понимаю что мои истории достали вас, но по ходу явно забыл обновить строчку до конца в первом варианте.
Сравнивая два скрина, он обновил только версию ПО, но забыл дописать версии
7/8/10. Время предыдущего обновления когда “возможно” была актуальной.

ассемблер-хуясемблер

Ищем по названию переменной которую IDA сама назначила, эта переменная у меня называлась aInternetCyclon_2. И находим только 1 инструкцию для перемещения в регистр edx. У нас только один путь, .

работа со стеком ассемблер

Нихрена не понятно, но очень интересно. Давайте предположим что call sub_446A24 это функция смены заголовка окна (в WinApi это функция SetWindowText). Можно еще предположить что следующие функции это просто вызовы функций для работы с окнами. Мы должны искать ветвление инструкций где лицензия найдена и нет. Или послать это все на... и быть проституткой. Давайте посмотрим где и сколько раз вызывается эта наша функция.

поиск функций ассемблер

И нам снова повезло что всего один путь куда рыться. Если брать серьезный софт, то на самом деле не все так просто. Смотрим где вызывается и при каких условиях.

условия ассемблер

Желтым выделено где вызывается. Как видим мы наконец увидели ветвление. Видим веселую строчку “\\SOFTWARE” сразу понимаем что в блоке loc_4C375D происходят манипуляции с реестром (Понятное дело что это уже чтение из реестра. Пример: Ключ FirstUse в каталоге Internet Cyclone по названию определяет зашли ли мы впервые. Справа блок кода определяет первый заход и вывод окна (см. Примечание 1)

В блок loc_4C375D идет два пути условий, если левое тело условия ведет к выводу заголовка Registered (будет выделен зеленым который нам необходим), то мы должны понять что loc_4C374D или выше блок должен выводить UNREGISTERED. Смотрим выше.

ida cracking

Опять работа с реестром, но тут еще больше полей. лезет по пути “\\SOFTWARE\Internet Cyclone” скорее всего записывает статичное значение “nonreg” (non registration) в зависимости от полей SerialNumber или Registration. Заголовок UNREGISTERED устанавливается в этом блоке. Значит тут и началась заварка .

ида взлом программ

С цветами понятнее как нам надо будет направить алгоритм чтобы обойти валидацию. Функция sub_4B9948 производит валидацию и скачет на определенный участок. Нам важно быстро сделать и пользоваться версией. Давайте снова сделаем тупой трюк и сменим в инструкции jnz short loc_4C3715 на jz short loc_4C3715. Надеемся что более длительных не будет. Делаем все тоже самое как в прошлом уроке. Патчим и запускаем.

товарищ майор этот варез не мой


Примечание 2 - Люблю запах коммерции поутру

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

Вопрос: "Какой во второй статье?"
Ответ: Я попробую найти в следующих статьях другой метод обхода.


Автор не несет ответственности за нанесенный ущерб кому либо этим способом взлома программ. Перечисленные действия в статье являются законными, поскольку с разработчиком программы было согласовано разрешение на проверку защиты менеджера лицензий. Меня заставили лезь в робота.
 
Автор темы Похожие темы Форум Ответы Дата
0b170xor КРЯКИНГ ДЛЯ НОВИЧКОВ 2
Верх Низ