Blog. Just Blog

Исследование защиты скринсейвера Elastic Balls

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

Еще одна софтинка из запасников. На этот раз будем потрошить скринсейвер Elastic Balls. По экрану летают шарики разного цвета и размера, сталкиваются, разлетаются. Очень наглядно демонстрируют импульс из школьного курса физики. Скачать скринсейвер уже нигде нельзя, проект давно прекратил существование. Соответственно, платить тоже некуда, даже если по какому-то недоразумению вы захотели бы это сделать.

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

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

Исполняемый файл ничем не упакован, отправляем его на разбор в дизассемблер. Когда он закончит работу, найдем в листинге строку сообщения о неправильной регистрации и посмотрим, при каких условиях оно появляется.
  1. .text:00410D3A                 lea     eax, [ebp+var_C]
  2. .text:00410D3D                 mov     edx, 2
  3. .text:00410D42                 call    sub_4912C4
  4. ; Указатели на строки
  5. .text:00410D47                 lea     edx, [ebp+var_4]
  6. .text:00410D4A                 lea     eax, [ebp+var_8]
  7. ; Вызвать функцию сравнения строк
  8. .text:00410D4D                 call    sub_49137C
  9. .text:00410D52                 test    eax, eax
  10. ; Строки не совпадают, вывести сообщение о неправильной регистрации
  11. .text:00410D54                 jnz     loc_410EF6
  12. .text:00410D5A                 mov     [ebp+var_40], 44h
  13. ...
  14. ...
  15. ...
  16. .text:00410EE9                 call    sub_4912C4
  17. .text:00410EEE                 mov     [ebp+var_40], 8
  18. .text:00410EF4                 jmp     short loc_410F43
  19. .text:00410EF6 ; ---------------------------------------
  20. .text:00410EF6 loc_410EF6:
  21. .text:00410EF6                 push    0
  22. .text:00410EF8                 mov     edx, offset aInvalidRegistr
  23. ; "Invalid registration Name or Code."
  24. .text:00410EFD                 mov     [ebp+var_40], 8Ch
  25. .text:00410F03                 lea     eax, [ebp+var_2C]
  26. .text:00410F06                 call    sub_49120C
  27. .text:00410F0B                 inc     [ebp+var_34]
Характерная конструкция перед условным переходом - это не что иное, как функция сравнения двух строк. Если строки не совпадают, то выводится сообщение о неправильной регистрации. Открываем настройки скринсейвера, цепляемся к процессу отладчиком. Переходим на адрес 00410D4D и ставим там точку останова. Повторяем процесс регистрации с любыми левыми данными.

Правильный серийник на стеке
Правильный серийник на стеке

Когда сработает точка останова, на стеке обнаружатся две строки: одна из них является нашим левым серийником, а вот вторая очень похожа на правильный. То есть для регистрационного имени "ManHunter / PCL" серийник будет "26JRF-66TXB-0GQ2E-5543F". Проверим, так ли это.

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

Повторяем регистрацию с найденной строкой. Кнопка "Register" исчезает, в окне появляется надпись с благодарностью за регистрацию. Цель достигнута.

Поделиться ссылкой ВКонтакте
Просмотров: 1474 | Комментариев: 6

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

Комментарии

Отзывы посетителей сайта о статье
Iran (29.05.2020 в 07:28):
Ну вы, прямо кулхацкеры!
user (24.03.2020 в 23:56):
Цитатасразу же начинается "А где кейген/серийник"?

Это начинают другие люди, не те, которые предпочитают "хирургию".
Если программа может быть поправлена кардинальным образом и навсегда,
то почему бы и нет? Это лучший из вариантов.
ManHunter (24.03.2020 в 09:43):
Ну блин, выкладываешь вариант с патчем, сразу же начинается "А где кейген/серийник"? Тут же всей командой пропатчили вдоль и поперек. "Д" - "Логика" :))))
0101 (24.03.2020 в 09:24):
user - спасибо, интересная инфа! Так как скринсервер не имеет ограничений, то можно занопить один переход по адресу 0040219D, затем в редакторе ресурсов сделать нулевым размер кнопки "Register" удалить окно "About" и пожать/заменить битмапы шаров
https://files.dp.ua/NDykz7
user (24.03.2020 в 03:31):
Скринсейвер малость глючной. У меня работает через раз, другой раз падает.

Что касается скринсейверов для NT+,
то это обычный PE-EXE, принимающий из командной строки предопределённые параметры:

- Параметр /c - запуск окно настроек
- Параметр /p - запуск предпросмотра, через пробел идёт хэндл окна предпросмотра
- Параметр /s - запуск в полноэкранном режиме

В этом скринсейвере пустая командная строка по дефолту соответствует параметру "/c", то есть "Настройки".
и, соответственно, запустить его под отладчиком можно просто переименовав в .EXE и без параметров.

Если чисто для себя, то мне больше нравится патч

;----------------------------------------->8
The ElasticBalls ScreenSaver v.1.01

Register with any data
"The Elastic Balls.scr"
.004913EC: C3 31 ;000909EC:
.004913ED: 90 C0 ;000909ED:
.004913EE: 90 C3 ;000909EE:
;----------------------------------------->8

И в архив его
xussr (22.03.2020 в 14:12):
Не стал выделываться просто пропатчил= 
CPU Disasm
Address   Hex dump          Command                                  Comments
0049137B      90            NOP
0049137C      31C0          XOR EAX,EAX                              ; The_Elastic_Balls.0049137C(guessed void)
0049137E      C3            RETN
0049137F  |.  83C4 D4       ADD ESP,-2C
00491382  |.  53            PUSH EBX
00491383  |.  56            PUSH ESI
так как не смог запустить под Olli скринсейвер

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

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

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