Исследование защиты программы TNR Image Characterizer
Скриншот программы TNR Image Characterizer
TNR Image Characterizer - простой, но при этом мощный редактор псевдографики. С его помощью можно превратить картинку в набор текстовых символов или мозаику из фигур. На офсайте можно даже получить типа бесплатный ключ на некоторое время или же прогуляться в кассу за VIP-ключом, который работает без ограничений по времени. Ни один из предложенных вариантов мне не подходит, поэтому попробуем обойтись вообще без каких-либо ключей.
Первым делом забираем с офсайта дистрибутив, устанавливаем, смотрим. Главный исполняемый файл упакован UPX. Никаких сюрпризов нет, поэтому распаковываем его штатными средствами самого пакера: upx -d Characterizer.exe и отправляем в дизассемблер.
Триальное окно
После запуска сразу открывается триальное окно с предупреждением об ограниченном функционале, также в заголовке присутствует надпись о пробной версии. Это внешние проявления, а вот ограничения по функционалу куда более неприятные, на изображение накладывается уродливая надпись, которая наглухо портит результат.
Строка в файле
Вот строка в файле, которая добавляется в заголовок главного окна. Давайте посмотрим в коде, при каких условиях она появляется.
Code (Assembler) : Убрать нумерацию
- .text:0044F87F mov dword ptr [ebp-4], 6Bh
- .text:0044F886 movsx edx, word_47C078
- .text:0044F88D test edx, edx
- .text:0044F88F jz loc_44FB56
- .text:0044F895 mov dword ptr [ebp-4], 6Ch
- .text:0044F89C lea eax, [ebp-38h]
- .text:0044F89F push eax
- .text:0044F8A0 mov ecx, [ebp+8]
- .text:0044F8A3 mov edx, [ecx]
- .text:0044F8A5 mov eax, [ebp+8]
- .text:0044F8A8 push eax
- .text:0044F8A9 call dword ptr [edx+50h]
- .text:0044F8AC fnclex
- .text:0044F8AE mov [ebp-15Ch], eax
- .text:0044F8B4 cmp dword ptr [ebp-15Ch], 0
- .text:0044F8BB jge short loc_44F8DD
- .text:0044F8BD push 50h
- .text:0044F8BF push offset dword_40B010
- .text:0044F8C4 mov ecx, [ebp+8]
- .text:0044F8C7 push ecx
- .text:0044F8C8 mov edx, [ebp-15Ch]
- .text:0044F8CE push edx
- .text:0044F8CF call ds:__vbaHresultCheckObj
- .text:0044F8D5 mov [ebp-430h], eax
- .text:0044F8DB jmp short loc_44F8E7
- .text:0044F8DD ; ---------------------------------------
- .text:0044F8DD loc_44F8DD:
- .text:0044F8DD mov dword ptr [ebp-430h], 0
- .text:0044F8E7 loc_44F8E7:
- .text:0044F8E7 mov eax, [ebp-38h]
- .text:0044F8EA push eax
- .text:0044F8EB push offset asc_40C75C ; " - "
- .text:0044F8F0 call ds:__vbaStrCat
- .text:0044F8F6 mov edx, eax
- .text:0044F8F8 lea ecx, [ebp-3Ch]
- .text:0044F8FB call ds:__vbaStrMove
- .text:0044F901 push eax
- .text:0044F902 mov ecx, [ebp+8]
- .text:0044F905 mov edx, [ecx]
- .text:0044F907 mov eax, [ebp+8]
Перекрестные ссылки на ячейку памяти
Как видите, в двух местах кода в флаг регистрации записывается значение 0FFFFh, в одном месте этот флаг инициализируется нужным значением, а остальное проверки и всякое подобное. Чтобы сделать регистрацию сразу со старта, заменяем обе команды mov word_47C078, 0FFFFh на команды mov word_47C078, 0 и сохраняем изменения. Запускаем программу, проверяем.
Программа успешно "зарегистрирована"
Триальное окно при старте пропало, надпись в заголовок окна не добавляется, ограничения по функционалу тоже пропали. Немного странновато отображается окно "О программе", но это на работу программы никак не влияет. Цель достигнута, можно идти творить красоту.
Просмотров: 252 | Комментариев: 0
Метки: исследование защиты, графика
Комментарии
Отзывы посетителей сайта о статье
Комментариeв нет
Добавить комментарий
Заполните форму для добавления комментария