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

Скриншот программы FlipCreator
FlipCreator - это интуитивно понятное программное решение для создания интерактивных цифровых публикаций с эффектом перелистывания страниц. Программа идеально подходит для преобразования традиционных материалов, таких как PDF-файлы или изображения - в живые, реалистичные цифровые форматы. Благодаря продуманному интерфейсу и минималистичному рабочему процессу, создание профессиональной цифровой публикации занимает всего несколько кликов, без необходимости в специализированных технических навыках. Но вот некоторые навыки все-таки потребуются, чтобы привести программу к нормальному бою. Без этого FlipCreator остается лишь демонстрационной игрушкой.
Скачиваем дистрибутив с официального сайта, устанавливаем и осматриваем, что к чему. Беглый анализ основного исполняемого файла показывает, что он ничем не упакован и не защищен.

Сообщение незарегистрированной версии
При первом запуске в окне "О программе" отображается надпись: "This software is unregistered". Это отправная точка для анализа механизма защиты.

Сообщение о неправильной регистрации
При вводе недействительного регистрационного кода приложение выводит сообщение: "Invalid Registration Code! Please enter an available Registration Code". Далее выполняется анализ листинга дизассемблера для определения контекста использования данной строки.
Code (Assembler) : Убрать нумерацию
- CODE:004D8429 lea edx, [ebp+var_2C]
- CODE:004D842C mov eax, ds:off_7F09A4
- CODE:004D8431 mov eax, [eax]
- CODE:004D8433 call @Forms@TApplication@GetTitle$qqrv
- ; Forms::TApplication::GetTitle(void)
- CODE:004D8438 mov eax, [ebp+var_2C]
- CODE:004D843B call @System@@LStrToPChar$qqrx17System@AnsiString
- ; System::__linkproc__ LStrToPChar(System::AnsiString)
- CODE:004D8440 push eax ; lpCaption
- CODE:004D8441 push offset aInvalidRegistr
- ; "Invalid Registration Code! \r\nPlease ent"...
- CODE:004D8446 mov eax, ds:off_7F09A4
- CODE:004D844B mov eax, [eax]
- CODE:004D844D mov eax, [eax+30h]
- CODE:004D8450 push eax ; hWnd
- CODE:004D8451 call MessageBoxA_0
- CODE:004D8456 mov eax, [ebx+2F8h]
- CODE:004D845C mov edx, [eax]
- CODE:004D845E call dword ptr [edx+0C0h]
Code (Assembler) : Убрать нумерацию
- CODE:004D820F call sub_4DC3C0
- CODE:004D8214 test al, al
- CODE:004D8216 jz short loc_4D8272
Code (Assembler) : Убрать нумерацию
- CODE:004DC3FD push eax
- CODE:004DC3FE mov ecx, ebx
- CODE:004DC400 mov edx, [ebp+var_4]
- CODE:004DC403 mov eax, esi
- CODE:004DC405 call sub_4DC464
- CODE:004DC40A mov edx, [ebp+var_10]
- CODE:004DC40D mov eax, [ebp+var_8]
- CODE:004DC410 call @Sysutils@CompareStr$qqrx17System@AnsiStringt1
- ; Sysutils::CompareStr(System::AnsiString,System::AnsiString)
- CODE:004DC415 test eax, eax
- CODE:004DC417 jnz short loc_4DC42D
- CODE:004DC419 mov ecx, ebx
- CODE:004DC41B mov edx, [ebp+var_4]
- CODE:004DC41E mov eax, esi
- CODE:004DC420 call sub_4DB894

Указатели на строки в регистрах
Перед сравнением в регистрах EAX и EDX находятся указатели на две строки: это наш левый серийник и правильный, с которым выполняется сравнение. Так для имени "ManHunter / PCL" правильный серийник будет "10022-43C46-9AD70". Выходим из отладчика, снова открываем настройки и повторяем регистрацию с найденными данными.

Сообщение об успешной регистрации
Программа выдает сообщение об успешной регистрации. Закрываем ее, перезапускаем и проверяем функции. Если все работает, значит, мы все сделали верно.

Программа успешно зарегистрирована
Все визуальные и функциональные ограничения, связанные с незарегистрированной версией, устранены. В окне "О программе" корректно отображаются найденное регистрационное имя и правильный серийный номер. Цель достигнута.
Просмотров: 312 | Комментариев: 0
Метки: исследование защиты, PDF
Комментарии
Отзывы посетителей сайта о статье
Комментариeв нет
Добавить комментарий
Заполните форму для добавления комментария


