Исследование защиты программы Light Developer
Скриншот программы Light Developer
Программа Light Developer - очень мощный редактор графических файлов со множеством интересных функций. С его помощью можно просматривать, сортировать, обрабатывать изображения с различных цифровых устройств как одиночные, так и в пакетном режиме. Light Developer позволяет в несколько кликов улучшить качество изображений, добавить различные графические эффекты, надписи, рамки, устранить шумы, избавиться от дефектов кожи на фотографиях, эффекта "красных глаз" и многое другое. Конечно, не конкурент Adobe Photoshop, но вполне может стать очень удобным инструментом для новичков и продвинутых пользователей, особенно с русским интерфейсом. Но все положительные впечатления от программы портит необходимость выкладывать за нее деньги.
Скачиваем дистрибутив, устанавливаем. При установке есть одна важная особенность: инсталлятор автоматически распознает разрядность операционной системы и устанавливает, соответственно, 32-битную или 64-битную версию программы. В статье идет речь о 32-битной версии Light Developer. Запускаем программу, смотрим. После загрузки появляется окно с количеством оставшихся триальных дней и предложением ввести серийный номер:
Окно регистрации
На ввод неправильного серийного номера программа реагирует вот таким сообщением:
Сообщение о неправильной регистрации
Исполняемый файл отправляем в дизассемблер, а пока поищем эту строчку. В файле LightDeveloper.exe ее нет ни в юникоде, ни в ASCII. Стало быть она или зашифрована, или находится где-то еще. О плохом пока думать не будем, воспользуемся поиском по всем файлам.
Найден файл со строкой
Вот, уже лучше. При более детальном осмотре этот текстовый файл оказывается ini-файлом, в котором и находятся все нужные нам текстовые строки. Обращение к ним из исполняемого файла выполняется по названиям параметров.
"badlicense"="The license key is not a correct one, please check the spell or use a copy/paste way to input it."
"invalidlicense"="This license key can not be used on current version. "
"regrestartneed"="The program need a restart to validate the license key"
Вот с этим проблем уже нет, строка легко находится в исполняемом файле:
Строка в файле
Посмотрим в дизассемблере место, откуда идет ссылка на эту строку.
Code (Assembler) : Убрать нумерацию
- .text:0045AFE7 loc_45AFE7:
- .text:0045AFE7 push 4
- .text:0045AFE9 push 3
- .text:0045AFEB push offset aInvalidlicense ; "invalidlicense"
- .text:0045AFF0 jmp short loc_45AFFB
- .text:0045AFF2 ; ----------------------------------------------
- .text:0045AFF2
- .text:0045AFF2 loc_45AFF2:
- .text:0045AFF2 push 4
- .text:0045AFF4 push 3
- .text:0045AFF6 push offset aBadlicense ; "badlicense"
- .text:0045AFFB loc_45AFFB:
- .text:0045AFFB push offset unk_62CC6C
- .text:0045B000 call sub_49B700
- .text:0045B005 mov ecx, eax
- .text:0045B007 call sub_456A00
- .text:0045B00C mov ecx, [esp+178h+var_4]
- .text:0045B013 add esp, 8
Code (Assembler) : Убрать нумерацию
- ; Какая-то проверка
- .text:0045AF1B call sub_40A0F0
- .text:0045AF20 test eax, eax
- ; Переход на сообщение "badlicense"
- .text:0045AF22 jz loc_45AFF2
- .text:0045AF28 lea ecx, [esp+170h+Dst]
- .text:0045AF2C push ecx
- .text:0045AF2D call sub_409F70
- .text:0045AF32 lea eax, [esp+170h+Dst]
- ; Какая-то проверка
- .text:0045AF36 call sub_40A4D0
- .text:0045AF3B test eax, eax
- ; Переход на сообщение о неправильной регистрации
- .text:0045AF3D jz loc_45AFE7
- .text:0045AF43 lea edx, [esp+170h+Src]
- .text:0045AF47 push edx
- .text:0045AF48 lea eax, [esp+174h+var_D0]
- .text:0045AF4F push offset aRS ; "-r %s"
Восстанавливаем исходный файл, запускаем. И тут нас ждет главный сюрприз: программа стала зарегистрированной. То есть если сперва активировать программу пропатченным вариантом, а потом вернуть оригинальный файл, то она останется зарегистрированной. Это же касается и обновлений версии. После обновления версии, активированной таким образом, регистрация не слетает. Вот такие неожиданные чудеса из серии "ворота поставили, а забор забыли".
Просмотров: 5222 | Комментариев: 10
Метки: исследование защиты, графика
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Евгений
(18.01.2014 в 21:45):
Добрый день, всем! irokkezz, 4eshire,при сохранении файла у меня пишет: Trial и сохраняет только 1/2 файла.
irokkezz
(17.01.2014 в 14:19):
4eshire, да действительно, беру свои слова обратно
4eshire
(17.01.2014 в 09:37):
irokkezz, я тоже так считал... до тех пор, пока не попытался сохранить результат в Picture Enlarger.
Voffka
(17.01.2014 в 03:07):
ManHunter, там кстати штук 6-7 таких проверок отталкивайся от call sub_409F70, правда в какой именно момент они происходят, я не знаю.
irokkezz
(17.01.2014 в 00:09):
4eshire, этот файл http://irokkezz.ru/downloads/f.../install.flg регистрирует все продукты Stepok Image Lab )
4eshire
(16.01.2014 в 21:11):
Регистрация от Light Developer лично у меня подошла и к другой программе этой компании - Recomposit Pro, которая включает в себя также и все примочки LD. А вот как зарегить еще одну прожку,Picture Enlarger, непонятно, т.к. там в принципе нет окна для вставки серийника. Не понятно от чего отталкиваться... Может подскажет кто-нибудь? =))
ManHunter
(16.01.2014 в 08:56):
AyTkACT, не только этот файл. В версии 7.5 рега заносится еще и в реестр, поэтому файл можно вообще удалить.
AyTkACT
(16.01.2014 в 06:52):
Там всё дело в файле install.flg что в папке сабжа.
Именно он появляется после валидной регистрации.
Именно он появляется после валидной регистрации.
Anonymous
(16.01.2014 в 04:20):
Наверняка сделано так: серийник после проверки нигде не сохраняется, а в каком-нибудь файле или в реестре взводится флаг "мы_зарегистрированы"="true". Поэтому, можно сделать еще красивее - отследить этот флаг и сразу выставлять его в нужное значение, при этом даже отпадает необходимость хранить пропатченный вариант на случай переустановки системы.
Добавить комментарий
Заполните форму для добавления комментария
В результате создается файл InstallFlag и такой же ключ в реестре.
Удаление или изменение чего-то одного сбрасывает регистрацию.
За урок - спасибо, очень помогло.