Исследование защиты программы ViVi Cursor
Скриншот программы ViVi Cursor
Есть такая программа - ViVi Cursor от ViVi Software. Какой-то серьезной практической пользы она не представляет, но обязательно понравится любителям украшательств системы. Также будет неплохим презентом для какой-нибудь знакомой блондинки :) Смысл ViVi Cursor в том, что при перемещении к курсору добавляется цветной шлейф из различных фигурок: звездочек, цветочков, музыкальных нот, следов зверей и т.д. Анимированные картинки с примерами можно посмотреть на офсайте программы. Качаем дистрибутив, устанавливаем, запускаем. Для ознакомления с программой нам дается 10 минут, после чего придется расстаться тоже с десяткой, но на этот раз вечнозеленых рублей. Естественно, такой вариант не для нас.
Диалоговых окон в программе немного, и в About можно найти внешние признаки триальности:
Триальное окно About
В дизассемблере найдем "нехорошую" строку и посмотрим код, который на нее ссылается:
Code (Assembler) : Убрать нумерацию
- ...
- .text:0040AD23 mov ebx, eax
- .text:0040AD25 mov eax, offset stru_4C520C
- .text:0040AD2A call @__InitExceptBlockLDTC
- ; Вызвать процедуру проверки регистрации. На выходе AL = 0 - программа не
- ; зарегистрирована, AL > 0 - программа зарегистрирована
- .text:0040AD2F call sub_401FEC
- .text:0040AD34 test al, al
- ; Переход на триальную ветку алгоритма
- .text:0040AD36 jz loc_40ADDF
- ; Вывести в About строку о полной версии программы
- .text:0040AD3C mov [ebp+var_28], 8
- .text:0040AD42 xor edx, edx
- .text:0040AD44 mov [ebp+var_4], edx
- .text:0040AD47 lea ecx, [ebp+var_4]
- .text:0040AD4A inc [ebp+var_1C]
- ; Указатель на строку "ViVi Cursor Full Version"
- .text:0040AD4D mov eax, offset aViviCursorFull
- .text:0040AD52 mov edx, off_4CF95C
- ...
- ; Часть кода пропущена для экономии места
- ...
- .text:0040ADD3 mov edx, 2
- .text:0040ADD8 call sub_4BA6A8
- .text:0040ADDD jmp short loc_40AE53
- ; -----------------------------------------------------------------
- .text:0040ADDF loc_40ADDF:
- ; Триальная ветка алгоритма
- .text:0040ADDF mov [ebp+var_28], 20h
- .text:0040ADE5 xor ecx, ecx
- .text:0040ADE7 mov [ebp+var_10], ecx
- .text:0040ADEA lea ecx, [ebp+var_10]
- .text:0040ADED inc [ebp+var_1C]
- ; Указатель на строку "ViVi Cursor Trial Version"
- .text:0040ADF0 mov eax, offset aViviCursorTria
- .text:0040ADF5 mov edx, off_4CF95C
- ...
Code (Assembler) : Убрать нумерацию
- .text:00401FEC sub_401FEC proc near
- .text:00401FEC push 1 ; <-- записать MOV AL,1; RET
- .text:00401FEE call sub_40C4A4
- .text:00401FF3 pop ecx
- .text:00401FF4 test al, al
- .text:00401FF6 jz short loc_402010
- .text:00401FF8 push 2
- .text:00401FFA call sub_40C4A4
- .text:00401FFF pop ecx
- .text:00402000 test al, al
- .text:00402002 jz short loc_402010
- .text:00402004 push 3
- .text:00402006 call sub_40C4A4
- .text:0040200B pop ecx
- .text:0040200C test al, al
- .text:0040200E jnz short loc_402014
- .text:00402010 loc_402010:
- ; Данные регистрации неправильные или отсутствуют. Вернуть EAX=0
- .text:00402010 xor eax, eax
- .text:00402012 jmp short locret_402019
- .text:00402014 loc_402014:
- ; Данные регистрации корректные. Вернуть EAX=1
- .text:00402014 mov eax, 1
- .text:00402019 locret_402019:
- .text:00402019 retn
- .text:00402019 sub_401FEC endp
Code (Assembler) : Убрать нумерацию
- ...
- ; Вызвать процедуру проверки регистрации
- .text:004027A6 call sub_401FEC
- .text:004027AB xor edx, edx
- .text:004027AD mov dl, al
- .text:004027AF cmp edx, 1
- .text:004027B2 sbb edx, edx
- .text:004027B4 neg edx
- .text:004027B6 mov eax, [ebx+3E8h]
- ; По ее результатам включить или выключить триальный 10-минутный таймер
- .text:004027BC call @Ibutils@TIBTimer@SetEnabled$qqro_0
- .text:004027C1 xor ecx, ecx
- .text:004027C3 lea eax, [ebp+var_50]
- ...
Программа успешно "зарегистрирована"
Чтобы не было абсурдной надписи "Register to Unregistered", можно найти строку "Unregistered" и заменить ее, например, на ваш ник:
Строка "Unregistered" для замены
Хотя можно оставить и так, пусть это будет своеобразная "фишка" релиза. Если вы собираетесь попробовать ввести левый регистрационный код и имя через меню программы, то делать этого не надо, так как после этого программа будет вылетать с ошибкой. Чтобы устранить эту ошибку, удалите файл Register.ini в папке с установленной программой. По этой же схеме снимается защита и с других продуктов ViVi Software, среди которых есть действительно полезные программы.
Просмотров: 6174 | Комментариев: 9
Метки: исследование защиты
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Ritskin
(25.02.2016 в 11:55):
Благодарю)
ManHunter
(25.02.2016 в 09:09):
Проделывай, я не возражаю.
Ritskin
(25.02.2016 в 08:56):
Я понимаю это далекий 2009) Но уважаемый автор а сейчас можно такое проделать с этой программой?
иван
(22.12.2013 в 16:35):
регестрация не помагает также 1 минуту работает и все
[RegCode]
Value=18621677218695669281112742268114545238
CheckValue=18621677218695669281112742268114545238
[RegName]
Value=Value=ManHunter / PCL
[RegCode]
Value=18621677218695669281112742268114545238
CheckValue=18621677218695669281112742268114545238
[RegName]
Value=Value=ManHunter / PCL
ManHunter
(30.10.2013 в 23:42):
Ну можно и так.
влад
(30.10.2013 в 23:41):
да нет там в папочке будет register.ini открываем через блокнот видем надписи:
[regcode]
Value=...
и
[regname]
Value=...
открываем прогу, нажимаем регистрация
в строке имя вставляем то что написано под [register name]
в строке ключ/код вставляем то что написано под [register code]
всё! по крайней мере у меня так :)
[regcode]
Value=...
и
[regname]
Value=...
открываем прогу, нажимаем регистрация
в строке имя вставляем то что написано под [register name]
в строке ключ/код вставляем то что написано под [register code]
всё! по крайней мере у меня так :)
ManHunter
(09.10.2012 в 12:43):
Названия программ написаны на картинках.
slava
(09.10.2012 в 12:37):
Это чем так открывать, чтоб коды изменять?
Добавить комментарий
Заполните форму для добавления комментария
Serial:943462150839259427891703