
Исследование защиты программы AVS Photo Editor

Скриншот программы AVS Photo Editor
Под сегодняшнюю раздачу попадает программа AVS Photo Editor. Как можно догадаться из названия, это очередной редактор графических файлов. Не могу сказать, что он чем-то превосходит классический фотошоп или какие-нибудь другие редакторы, для этого надо как минимум поработать с ним какое-то время, но одно знаю точно - он требует денег, а этого достаточно для вскрытия.
Скачиваем дистрибутив, устанавливаем. Предварительный осмотр показывает, что главный исполняемый файл AVSPhotoEditor.exe ничем не упакован, поэтому просто отправляем его в дизассемблер. После запуска сразу появляется окно с сообщением о том, что программа не зарегистрирована. Это первый признак триальности.

Сообщение незарегистрированной программы
Второй явный признак - надпись в заголовке программы. Теперь попробуем зарегистрировать ее, для начала какими-нибудь левыми данными.

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

Используется компонент LicenceManager
Так вот, поиск по ключевым словам вывел меня на интересную строку. Судя по всему, это название компонента, используемого для работы с лицензией. Поищем его в дизассемблерном листинге.
Code (Assembler) : Убрать нумерацию
- .text:0040BD88 ; __fastcall TLicenceManager::TLicenceManager(void)
- .text:0040BD88 public @TLicenceManager@$bctr$qqrv
- .text:0040BD88 @TLicenceManager@$bctr$qqrv proc near
- .text:0040BD88
- .text:0040BD88 var_28 = dword ptr -28h
- .text:0040BD88 var_18 = word ptr -18h
- .text:0040BD88 var_C = dword ptr -0Ch
- .text:0040BD88 var_8 = byte ptr -8
- .text:0040BD88 var_4 = dword ptr -4
- .text:0040BD88
- .text:0040BD88 push ebp
- .text:0040BD89 mov ebp, esp
- .text:0040BD8B add esp, 0FFFFFFD8h
- .text:0040BD8E push ebx
- ...
Code (Assembler) : Убрать нумерацию
- .text:0040C2CF mov eax, [ebp+var_38]
- .text:0040C2D2 mov edx, [ebp+var_28]
- .text:0040C2D5 mov large fs:0, edx
- .text:0040C2DC pop edi
- .text:0040C2DD pop esi
- .text:0040C2DE pop ebx
- .text:0040C2DF mov esp, ebp
- .text:0040C2E1 pop ebp
- .text:0040C2E2 retn

Программа успешно "зарегистрирована"
При первом запуске пропатченной программы она выдаст сообщение, что подписка вот-вот закончится и что осталось 0 дней до ее окончания. Но подписка к нашей регистрации отношения не имеет, и больше это сообщение не появится. Зато пропала надпись в заголовке программы, из меню пропали все пункты, связанные с покупкой и регистрацией, в окне "О программе" отображается, что программа активирована, ну и по функционалу никаких ограничений нет. Цель достигнута. Таким же способом отучаются от жадности и другие программы этого разработчика.
Просмотров: 2113 | Комментариев: 3
Метки: исследование защиты, система

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

ManHunter
(08.08.2016 в 15:26):
Я так гляжу, интернет просто ломится от неслабых листингов и нескатившихся анпаков протекторов. И среди этой массы офигенных увлекательных статей всегда можно найти альтернативу на почитать.

Jogovsky
(08.08.2016 в 15:04):
Где экшон? Где огромные листинги функции проверки лицензии? Где анпак протектора? Как то слабо... скатился, отписка и всё такое...

Добавить комментарий
Заполните форму для добавления комментария

А где там протектор, требующий делать распаковку? ;)))) Ясно же написано: "главный исполняемый файл AVSPhotoEditor.exe ничем не упакован".
Разводка на "слабо" засчитана. ;)