Я решил продолжить серию статей по изучению "утиного языка".Прошлый урок находится здесь на этом же форуме.
Смотря глазами настоящего "Дональда Дака" наш кряк
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
. Пользователь
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
должен просто запустить кряк и сразу пользоваться лицензионной версией. А не бегать по нашему readme и выполнять подозрительные действия (типа "5. Выключите
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
, а лучше
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
его.", "7 шаг - Дайте
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
свой емайл и пароль, а мы дадим вам пиратский ключ")Приступим к работе снова
Примечание 1 - Вы чувствуете запах коммерции?
Примечание 1 - Вы чувствуете запах коммерции?
Запускаем софт, нажимаем “Continue”, выходим на основное окно. В прошлой статье я не сообщил, что открывает Registered версия программы. Она открывает просто уже готовые конфиги настроек справа в списке “Extra Settings” и настройку значений “
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
Optimization”.
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
. Вы хотели большего за 40 евро?Смотрим на заголовок окна, давайте подумаем как оно создается. Обычный
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
при написании программы, сделал бы сначала проверку на лицензию, а потом уже вывод текста UNREGISTERED, если лицензия неверна. Из прошлой статьи мы убедились что после
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
пациента и регистрации левых ключей, текст в заголовке менялся на анологичный из выше
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
, но с текстом Registered (не капсом).Значит идем по своим же следам, но свернем раньше. Ищем текст Registered как в прошлом уроке.
Наша Ида нашла 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. Смотрим выше.Опять работа с реестром, но тут еще больше полей.
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
лезет по пути “\\SOFTWARE\Internet Cyclone”
скорее всего записывает статичное значение “nonreg”
(non registration) в зависимости от полей SerialNumber
или Registration
. Заголовок UNREGISTERED устанавливается в этом блоке. Значит тут и началась заварка
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
.С цветами понятнее как нам надо будет направить алгоритм чтобы обойти валидацию. Функция
sub_4B9948
производит валидацию и скачет на определенный участок. Нам важно быстро сделать
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
и пользоваться
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
версией. Давайте снова сделаем тупой трюк и сменим
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
в инструкции jnz short loc_4C3715
на jz short loc_4C3715
. Надеемся что более длительных
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
не будет. Делаем все тоже самое как в прошлом уроке. Патчим и запускаем.Примечание 2 - Люблю запах коммерции поутру
Нас сразу перестали приветствовать и требовать купить софт (ну да ведь наивного
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
, уже обчистили) и сразу показали главное окно с красивым заголовком Registered, а закрытые справа пункты стали активными, ведь мы теперь можем разговаривать с
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
. Но настоящие даки ликуют, ведь мы использовали во второй статье тот же самый метод обхода валидации.Вопрос: "Какой
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
во второй статье?"Ответ:
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
Я попробую найти в следующих статьях другой метод обхода.
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
Автор не несет ответственности за нанесенный ущерб кому либо этим способом взлома программ. Перечисленные действия в статье являются законными, поскольку с разработчиком программы было согласовано разрешение на проверку защиты менеджера лицензий. Меня заставили лезь в робота.