Исследование защиты программы Unified Color HDR Express
Скриншот программы Unified Color HDR Express
Программа Unified Color HDR Express предназначена для создания и обработки с HDR-снимков. Позволяет регулировать цвет, яркость, цветность и контраст, выбирать настройки изображения из большого числа предустановленных фильтров, а также устанавливать их вручную. Все бы ничего, если б не цена в сотку баксов.
Скачиваем дистрибутив, устанавливаем, запускаем. Нас сразу дается выбор: продолжить в триальном режиме, купить или зарегистрировать. Пока выберем триальный режим, надо осмотреться получше.
Триальное окно
Заглянем в окно "О программе". Сразу же бросается в глаза строка "Trial version". Это очень удобный ориентир для поиска.
Программа не зарегистрирована
Так и есть. Исполняемый файл ничем не упакован, строка легко находится. Там же неподалеку находится строчка "Licensed version", которая, как несложно догадаться, появится в случае успешной регистрации программы.
Нехорошая строка найдена
Обратимся к дизассемблеру. Нам надо выяснить, при каких условиях в окне "О программе" появляется либо триальная, либо лицензионная строка.
Code (Assembler) : Убрать нумерацию
- .text:0047FB61 push edi
- .text:0047FB62 lea ecx, [esp+60h]
- .text:0047FB66 mov byte ptr [esp+0C0h], 14h
- ; Вызывать функцию проверки состояния программы
- .text:0047FB6E call sub_415720
- .text:0047FB73 push 0
- ; Сохранить ее результат в регистр EDI
- .text:0047FB75 mov edi, eax
- .text:0047FB77 lea eax, [esp+34h]
- .text:0047FB7B push offset aTrialPeriodHas
- ; "Trial period has expired"
- .text:0047FB80 push eax
- .text:0047FB81 call sub_47DC90
- .text:0047FB86 add esp, 0Ch
- ; Если EDI = 2, то программа зарегистрирована
- .text:0047FB89 cmp edi, 2
- .text:0047FB8C mov byte ptr [esp+0BCh], 15h
- .text:0047FB94 jnz loc_47FC43
- ; Лицензионная ветка алгоритма
- .text:0047FB9A push 0
- .text:0047FB9C lea ecx, [esp+1Ch]
- .text:0047FBA0 push offset aLicensedVersio
- ; "Licensed version"
- .text:0047FBA5 push ecx
- .text:0047FBA6 call sub_47DC90
- .text:0047FBAB add esp, 0Ch
- .text:0047FBAE push eax
- .text:0047FBAF lea ecx, [esp+34h]
- .text:0047FBB3 mov byte ptr [esp+0C0h], 16h
- ; ...
- ; Часть кода пропущена
- ; ...
- .text:0047FC3E jmp loc_47FD4D
- .text:0047FC43 ; --------------------------------------------
- .text:0047FC43 loc_47FC43:
- ; Триальная ветка алгоритма
- .text:0047FC43 test edi, edi
- ; Если EDI = 0, то триальный срок вообще закончился, иначе
- ; просто перевести программу в триальный режим
- .text:0047FC45 jnz loc_47FD47
- .text:0047FC4B mov byte ptr [esp+18h], 20h
- .text:0047FC50 mov eax, [esp+18h]
- .text:0047FC54 push eax
- .text:0047FC55 lea ecx, [esp+18h]
- .text:0047FC59 call ds:??0QChar@@QAE@UQLatin1Char@@@Z
- .text:0047FC5F push edi
- .text:0047FC60 lea ecx, [esp+24h]
- .text:0047FC64 push offset aTrialVersion1D
- ; "Trial version (%1 days left)"
- .text:0047FC69 push ecx
- .text:0047FC6A call sub_47DC90
- .text:0047FC6F add esp, 0Ch
- .text:0047FC72 mov edi, eax
- .text:0047FC74 lea edx, [esp+14h]
- .text:0047FC78 push edx
- ...
Code (Assembler) : Убрать нумерацию
- .text:00415896 pop ebp
- .text:00415897 pop ebx
- .text:00415898 add esp, 64h
- .text:0041589B retn 4
- .text:0041589B sub_415720 endp
Программа успешно "зарегистрирована"
Триальное окно при старте исчезло, перевод календаря на пару месяцев вперед на работоспособности никак не сказывается, а в окне "О программе" мы видим сообщение, что программа лицензирована. Вот так мы в очередной раз сэкономили сотку баксов на добрые дела.
Просмотров: 5620 | Комментариев: 13
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Vopros
(03.04.2013 в 18:50):
Manhunter - вопрос от новичка, что в ассемблере означает RET 4 и имеются аналогии с языками высокого уровня ?
Если кто - я ассемблере дуб. заранее спасибо.
Если кто - я ассемблере дуб. заранее спасибо.
ManHunter
(01.04.2013 в 15:04):
Пасиб :)
Vladimir
(01.04.2013 в 14:58):
Я собственно потому и спрашивал, что в IDA иногда строки находить получалось лишь прямым поиском в hex и последующим переходом к коду. Спасибо, пойду качать Hiew. Хорошего дня.))
ManHunter
(01.04.2013 в 14:51):
Никаких секретов нет :) В HiEW есть приятная фича - если поставить курсор на начало строки и нажать F6, то получим код, который ссылается на эту строку. Соответственно, Shift+F6 - следующий кусочек кода. Но это тут к делу не относится. Дальше смотрим в левой колонке адрес и переходим по нему (Ctrl+G если чо) в IDA. Ну а дальше дело техники.
Можно обойтись и без HiEW, задать в IDA поиск строки, затем через Ctrl+X посмотреть перекрестные ссылки на нее. Но IDA иногда промахивается с идентификацией строк, поэтому я обычно использую HiEW как промежуточный инструмент.
Можно обойтись и без HiEW, задать в IDA поиск строки, затем через Ctrl+X посмотреть перекрестные ссылки на нее. Но IDA иногда промахивается с идентификацией строк, поэтому я обычно использую HiEW как промежуточный инструмент.
Vladimir
(01.04.2013 в 14:41):
А Вы не могли бы рассказать, каким образом Вы переходите от найденной в Hiew текстовой строки к ней же в дизассемблере? Или это какая-то штатная функция именно Hiew? Заранее прошу прощения за возможно глупый вопрос, так как Hiew никогда не пользовался.
ManHunter
(26.03.2013 в 19:14):
Очевидно же :)
Vnv
(26.03.2013 в 13:54):
unreal666,
> Use the following serial code to activate HDR Express 2 online:
Последнее слово :)
> Use the following serial code to activate HDR Express 2 online:
Последнее слово :)
unreal666
(25.03.2013 в 23:12):
> Посмотрите внимательнее на триальное окно, которое появляется при запуске.
А как ты по этому окну определил, что активация онлайн? ничего такого особого там не вижу.
А как ты по этому окну определил, что активация онлайн? ничего такого особого там не вижу.
ManHunter
(25.03.2013 в 19:24):
Google в помощь. Последнюю версию вряд ли найдешь, но версии чуть постарее тоже прекрасно работают.
DagalProject
(25.03.2013 в 19:22):
Здравствуйте ManHunter! Вам нетрудно поделиться утилитой hiew 8.32
ManHunter
(25.03.2013 в 10:49):
Ну я сейчас озадачился HDR, вот и подбираю себе инструментарий. Попутно поддерживаю себя в тонусе, а то уже почти отошел от дел.
Never
(25.03.2013 в 10:48):
И опять по фото )))
Добавить комментарий
Заполните форму для добавления комментария
В языках высокого уровня это всё как раз делается автоматически.