Blog. Just Blog

Исследование защиты программы Break Time

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Темная сторона Силы | Автор: ManHunter
Скриншот программы Break Time
Скриншот программы Break Time

При длительной, непрерывной работе на компьютере возникает утомление, которое приводит не только к снижению трудоспособности, но и может стать причиной возникновения так называемых "компьютерных" заболеваний. Но утомление можно предотвратить, если регулярно устраивать перерывы от работы на компьютере. Программа Break Time подскажет вам, когда необходимо сделать такие перерывы. Она работает в фоновом режиме, отслеживает работу с клавиатурой и мышью, и рекомендует делать перерывы именно тогда, когда это действительно необходимо. Я сам пользуюсь программой Break Time на рабочем компьютере и могу подтвердить ее эффективность.

Скачиваем дистрибутив, устанавливаем, запускаем. Сразу открывается триальное окно, из которого мы узнаем, что без регистрации жить программе осталось 30 дней. На попытку регистрации произвольными данными программа реагирует вот таким сообщением:

Сообщение о неправильной регистрации
Сообщение о неправильной регистрации

Исполняемый файл упакован ASPack, с этой навесной гадостью легко справляются автоматические распаковщики. Ну или можно потратить несколько минут и распаковать файл руками. Это уже как вам больше нравится. Попробуем поискать строку сообщения о неправильной регистрации в распакованном файле. Она находится легко, но пользы пока что от нее нет, так как она находится в ресурсах, да еще и внутри формы Дельфи. То есть прямых указателей на нее нет. Это не проблема, для Дельфи есть отличный декомпилятор - IDR, вот им и воспользуемся.

Строки в программе
Строки в программе

Первое, на что стоит обратить внимание после завершения декомпиляции, это список строк. Тут можно сразу узнать много интересного, а именно названия ключей реестра, вспомогательные строки типа названий лицензий, но особенно меня заинтересовала строка, отмеченная на скриншоте. По виду она очень напоминает пару "регистрационное имя - серийник", и скорее всего это так называемый "черный список". То есть это валидный серийник, который засветился где-то на варезных ресурсах и автор его забанил. Стоит проверить эту догадку.

Разбаниваем серийник
Разбаниваем серийник

Сохраним пару "имя-серийник" где-нибудь в сухом прохладном блокнотике, а затем пропатчим забаненный серийник в коде, чтобы при сравнении не было совпадений. После этого попробуем зарегистрировать программу.

Программа успешно зарегистрирована
Программа успешно зарегистрирована

Как видите, догадка подтвердилась. Это действительно серийник из "черного списка", и после разблокировки им можно запросто зарегистрировать программу. Кстати, если теперь вернуть обратно нераспакованный файл, то регистрация сохраняется.

А главное, что теперь мы знаем длину и формат серийного номера. Находим в коде место, где есть ссылка на строку и проверка на "черный список":
  1. CODE:004A2A39                 mov     fs:[eax], esp
  2. CODE:004A2A3C                 lea     eax, [ebp+var_14]
  3. CODE:004A2A3F                 mov     edx, offset aBk193994549485
  4. ; "bk|193994-549485-925349-959562"
  5. CODE:004A2A44                 call    sub_403DA8
  6. CODE:004A2A49                 mov     eax, [ebp+var_4]
  7. CODE:004A2A4C                 call    sub_403FA0
  8. CODE:004A2A51                 cmp     eax, 1Bh
  9. CODE:004A2A54                 jnz     short loc_4A2AA1
  10. CODE:004A2A56                 mov     edx, [ebp+var_14]
  11. CODE:004A2A59                 mov     eax, [ebp+var_4]
  12. CODE:004A2A5C                 call    sub_40428C
  13. CODE:004A2A61                 test    eax, eax
  14. CODE:004A2A63                 jnz     short loc_4A2AA1
  15. CODE:004A2A65                 lea     eax, [ebp+var_C]
  16. CODE:004A2A68                 push    eax
  17. CODE:004A2A69                 mov     ecx, 6
Загружаем программу в отладчик и ставим точку останова по адресу 004A2A39. После этого запускаем программу под отладчиком и пытаемся зарегистрировать любым именем, и левым серийником, который подходит под его формат.

Регистрируем левым серийником
Регистрируем левым серийником

Сработает точка останова, и теперь переходим на пошаговую трассировку. Сперва сработает проверка на "черный список", нашего серийника там, конечно же, нет. А вот при достижения адреса 004A2A92 в регистрах обнаружатся очень интересные вещи:

Сравнение серийников
Сравнение серийников

Это и есть функция сравнения введенного и правильного серийника. При первом заходе проверяется Site License, при втором - Single User License, так что выберите тот серийник, который вам больше нравится. Сохраняем новое значение в блокнотик, выходим из отладчика и снова запускаем программу, но теперь в обычном режиме.

Программа успешно зарегистрирована
Программа успешно зарегистрирована

Регистрируем программу тем же именем, но уже вместо левого серийника подставляем найденную в отладчике строку. Программа молча проглотит введенные данные и станет полностью работоспособной и зарегистрированной. Цель достигнута. Приятной работы за компьютером!

Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 3300 | Комментариев: 11

Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
ManHunter (13.05.2015 в 20:40):
ЦитатаАвтору это интересно? )

Мне АБСОЛЮТНО на это наплевать.
dew (13.05.2015 в 18:33):
Все это читать, безусловно, интересно...
Но я уверен, что могу написать crackme с кодовым названием antimanhunter )))
Автору это интересно? )
user (09.05.2015 в 01:01):
ЦитатаПедагог....

На самом деле нет. Не всем дано
vonMI (08.05.2015 в 22:46):
User"....Не пишу, где и какие байты - в педагогических целях."
Педагог....Все кто читает подобные обзоры,собственно говоря и учатся...И спасибо огромное хантеру,что тратит время разжёвывая белиберду единичек и ноликов.
user (07.05.2015 в 11:01):
Та да. Но всегда ограничиваюсь вечным триалом, если это возможно без потери функционала. Так получается ..автентичнее, что ли.
Ну, и при этом сохраняется возможность реальной регистрации.
Наименьшее и достаточное вмешательство.
ManHunter (07.05.2015 в 10:49):
Если уж патчить, то можно и сразу регистрацию сделать, без триалов и ввода серийников.
user (07.05.2015 в 03:37):
Цитатав педагогических целях.

)) имелось в виду - для читателей. Не подумайте.
user (07.05.2015 в 00:12):
Как на мой взгляд, юзабельнее пропатчить два байта для вечного триала.
Там один байт для автозакрытия нага при запуске, второй для игнорения перевода даты туда-сюда.
)) Не пишу, где и какие байты - в педагогических целях.
После этого можно при желании зарегистрироваться описанным способом,
а можно и не регистрироваться - будет работать нормально с 2-хсекундным нагом при запуске.

Оффтоп - насчёт полосатых ленточек - они во многих местах сейчас ассоциируются не с тем, с чем раньше. Изгадили символ, теперь уже навсегда.
Musika (06.05.2015 в 15:38):
Спасибо.
ManHunter (06.05.2015 в 07:46):
Не с той строчки скопировал. Поправил, спасибо!
user (06.05.2015 в 02:11):
ЦитатаА вот при достижения адреса 004A2A5C в регистрах обнаружатся очень интересные вещи:

)) На рисунке "Сравнение серийников" - обратите внимание на содержимое регистра EIP...

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2017
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.1 сек. / MySQL: 2 (0.0055 сек.) / Память: 4.5 Mb
Наверх