Исследование защиты Photo Mishmash Screensaver
Скриншот программы Photo Mishmash Screensaver
Софт из старых запасов. Photo Mishmash Screensaver - простенький хранитель экрана, который накидывает на рабочий стол изображения из выбранной папки, а затем всячески их деформирует. Не шедевр, конечно, но для разнообразия сойдет. Офсайта давно уже нет, скачать дистрибутив негде, поэтому ковыряться во внутренностях можно со спокойной совестью.
Забираем с файлобменника дистрибутив, устанавливаем, смотрим что и как. В окне настроек отображается информация об оставшемся пробном периоде. Но вот ни полей ввода регистрационных данных, ни чего-то подобного в интерфейсе нет.
Окно настроек
Больше ничего интересного нет. Исполняемый файл ничем не упакован, отправляем его в дизассемблер. У меня он разобрал файл быстрее, чем я напечатал этот абзац. Поищем в листинге строчку сообщения о триальном периоде, а также условие, при котором она появляется.
Code (Assembler) : Убрать нумерацию
- .text:004121FA lea ecx, [ebp+var_14]
- .text:004121FD call sub_4219E0
- .text:00412202 mov byte ptr [ebp+var_4], 4
- .text:00412206 lea ecx, [ebp+var_14]
- ; Вызвать функцию проверки
- .text:00412209 call sub_421EC5
- ; Если она вернула EAX=0, то скринсейвер не зарегистрирован
- .text:0041220E test eax, eax
- .text:00412210 jz loc_412340
- .text:00412216 lea ecx, [ebp+var_14]
- .text:00412219 call ?GetLocaleT@_LocaleUpdate
- .text:0041221E push eax
- .text:0041221F push offset aIsRegisteredTo
- ; " is registered to:\r\n"
- .text:00412224 lea ecx, [ebp+var_18]
- .text:00412227 call sub_467788
- .text:0041222C mov [ebp+var_50], eax
- .text:0041222F mov ecx, [ebp+var_50]
- .text:00412232 mov [ebp+var_54], ecx
- .text:00412235 mov byte ptr [ebp+var_4], 5
- .text:00412239 mov edx, [ebp+var_54]
- .text:0041223C push edx
- ...
- ...
- ...
- .text:00412331 mov edx, [ebp+var_4C]
- .text:00412334 mov byte ptr [edx+94h], 0
- .text:0041233B jmp loc_4124DD
- .text:00412340 ; ------------------------------------------------
- .text:00412340 loc_412340:
- .text:00412340 lea eax, [ebp+var_30]
- .text:00412343 push eax
- .text:00412344 call sub_421EDC
- .text:00412349 add esp, 4
- .text:0041234C mov [ebp+var_80], eax
- .text:0041234F mov ecx, [ebp+var_80]
- .text:00412352 mov [ebp+var_84], ecx
- .text:00412358 mov byte ptr [ebp+var_4], 0Bh
- .text:0041235C mov edx, [ebp+var_84]
- .text:00412362 push edx
- .text:00412363 push offset a_EvaluationPer
- ; ". Evaluation period "
- .text:00412368 lea ecx, [ebp+var_34]
- .text:0041236B call sub_467788
- .text:00412370 mov [ebp+var_88], eax
- .text:00412376 mov eax, [ebp+var_88]
- .text:0041237C mov [ebp+var_8C], eax
Code (Assembler) : Убрать нумерацию
- .text:00421EC5 sub_421EC5 proc near
- .text:00421EC5 push ebp
- .text:00421EC6 mov ebp, esp
- .text:00421EC8 sub esp, 8
- .text:00421ECB mov [ebp+var_8], ecx
- ; Принудительно обнулить результат
- .text:00421ECE mov [ebp+var_4], 0
- ; Скринсейвер НИКОГДА не будет зарегистрирован
- .text:00421ED5 mov eax, [ebp+var_4]
- .text:00421ED8 mov esp, ebp
- .text:00421EDA pop ebp
- .text:00421EDB retn
- .text:00421EDB sub_421EC5 endp
Программа успешно "зарегистрирована"
Вот теперь все по красоте. В интерфейсе пропали всякие уродливые надписи и вкладки со ссылками на покупку. Перевод системного времени на месяц вперед также не нарушает работоспособность скринсейвера. Цель достигнута.
Просмотров: 435 | Комментариев: 0
Метки: исследование защиты
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Комментариeв нет
Добавить комментарий
Заполните форму для добавления комментария