Blog. Just Blog

Исследование защиты скринсейвера Wow Beautiful Screensaver

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

Wow Beautiful Screensaver - старый скринсейвер-слайдшоу, который на самом деле далеко не Beautiful, и уж тем более не Wow. Так, собранное в каком-то конструкторе скринсейверов недоразумение из набора невнятных картинок. И за это еще требовалось выложить какие-то деньги. Офсайт благополучно сдох, туда ему и дорога. А скринсейверу дорога на разделочный стол.

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

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

Главный файл упакован UPX, который благополучно снимается самим собой. Распакованный файл отправляем в дизассемблер, а когда он закончит работу, поиском по листингу выходим на следующий код.
  1. CODE:004ED015                 mov     eax, [eax]
  2. CODE:004ED017                 mov     eax, [eax+304h]
  3. CODE:004ED01D                 call    sub_44BBEC
  4. CODE:004ED022                 mov     edx, [ebp-14h]
  5. CODE:004ED025                 pop     eax
  6. ; Функция сравнения строк
  7. CODE:004ED026                 call    sub_404C70
  8. ; Если строки равны, то регистрация прошла успешно
  9. CODE:004ED02B                 jz      short loc_4ED070
  10. CODE:004ED02D                 push    30h
  11. CODE:004ED02F                 lea     edx, [ebp-18h]
  12. CODE:004ED032                 mov     eax, ds:off_5078F0
  13. CODE:004ED037                 mov     eax, [eax]
  14. CODE:004ED039                 call    sub_46C998
  15. CODE:004ED03E                 mov     eax, [ebp-18h]
  16. CODE:004ED041                 call    sub_404D24
  17. CODE:004ED046                 push    eax
  18. CODE:004ED047                 lea     edx, [ebp-1Ch]
  19. CODE:004ED04A                 mov     eax, offset aInvalidRegistr
  20. ; "Invalid registration key."
  21. CODE:004ED04F                 call    sub_4817EC
  22. CODE:004ED054                 mov     eax, [ebp-1Ch]
  23. CODE:004ED057                 call    sub_404D24
  24. CODE:004ED05C                 mov     edx, eax
  25. CODE:004ED05E                 mov     eax, ds:off_5078F0
  26. CODE:004ED063                 mov     eax, [eax]
  27. CODE:004ED065                 pop     ecx
  28. CODE:004ED066                 call    sub_46D014
  29. CODE:004ED06B                 jmp     loc_4ED1FA
  30. CODE:004ED070 ; --------------------------------------
  31. CODE:004ED070 loc_4ED070:
  32. CODE:004ED070                 push    30h
  33. CODE:004ED072                 lea     edx, [ebp-20h]
  34. CODE:004ED075                 mov     eax, ds:off_5078F0
  35. CODE:004ED07A                 mov     eax, [eax]
  36. CODE:004ED07C                 call    sub_46C998
  37. CODE:004ED081                 mov     eax, [ebp-20h]
  38. CODE:004ED084                 call    sub_404D24
  39. CODE:004ED089                 push    eax
  40. CODE:004ED08A                 lea     edx, [ebp-24h]
  41. CODE:004ED08D                 mov     eax, offset aRegistration_0
  42. ; "Registration key accepted."
  43. CODE:004ED092                 call    sub_4817EC
  44. CODE:004ED097                 mov     eax, [ebp-24h]
  45. CODE:004ED09A                 call    sub_404D24
Выполняется функция сравнения двух строк, по ее результатам выводится или сообщение о неправильной регистрации, или благодарочка за правильную. С чего я взял, что это функция сравнения? Достаточно перейти и посмотреть на нее, все станет ясно.

Открываем настройки еще раз, отладчиком цепляемся к процессу. Ставим точку останова по адресу 004ED026, отпускаем программу на выполнение и снова пытаемся зарегистрироваться с левыми данными.

Указатели на строки в регистрах
Указатели на строки в регистрах

Когда сработает точка останова, в регистрах будут ссылки на введенный левый серийник и на строку "2E05E0A3". Именно эти две строки сравниваются при проверке регистрации. Закрываем отладчик, открываем настройки и повторяем регистрацию с именем "ManHunter / PCL", но теперь уже в качестве серийного номера будем использовать найденную строку.

Повторяем регистрацию
Повторяем регистрацию

Скринсейвер благодарит нас за регистрацию.

Скринсейвер успешно зарегистрирован
Скринсейвер успешно зарегистрирован

Кнопка регистрации исчезает, при переводе времени на месяц вперед ничего плохого не происходит, цель достигнута. Можно удалять это убожество с компьютера.

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

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

Комментарии

Отзывы посетителей сайта о статье
DiPrm (07.07.2020 в 15:43):
Wow!)
xussr (06.07.2020 в 10:30):
xussr
1548D9B7

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

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

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