Исследование защиты программы PanoramaStudio
Скриншот программы PanoramaStudio
Программа PanoramaStudio предназначена для сборки многострочных, сферических, круговых и линейных панорам из отдельных кадров. Готовые панорамы можно использовать в трехмерных турах, отображать через встроенный вьювер или просто сохранять как графические файлы. Стандартная версия бесплатная, но при этом имеет очень ограниченный функционал, а профессиональная версия требует для работы денег, иначе ставит маркер на изображение. Периодически мне приходится пользоваться подобными программами, поэтому меньше чем на Pro-версию я не согласен.
Скачиваем дистрибутив Pro-версии, устанавливаем, запускаем. Сразу же появляется окно для ввода регистрационных данных.
Окно регистрации
На ввод неправильных регистрационных данных программа реагирует сообщением "Username or registration key wrong!". Но в исполняемом файле ничего подобного нет, несмотря на то, что он ничем не упакован. Глобальным поиском по всем файлам нужная строчка обнаруживается в файле "panoramastudio.qm".
Строка сообщения
Рядом с английским текстом находится немецкий аналог этого сообщения, можно предположить, что он используется как индекс для загрузки локализованных строк. Попробуем найти немецкую строчку в исполняемом файле.
Строка сообщения
Теперь в дизассемблере посмотрим, как и где эта строка используется. Вы ведь не забыли сразу же после установки отправить исполняемый файл в дизассемблер?
Code (Assembler) : Убрать нумерацию
- .text:0048B868 mov edi, offset byte_76A130
- ; Вызвать функцию проверки
- .text:0048B86D call sub_4C5E30
- .text:0048B872 add esp, 4
- .text:0048B875 test eax, eax
- ; Если она вернула EAX=0, то переход
- .text:0048B877 jz short loc_48B88A
- .text:0048B879 mov edx, [esi]
- .text:0048B87B mov eax, [edx+0CCh]
- .text:0048B881 mov ecx, esi
- .text:0048B883 call eax
- .text:0048B885 jmp loc_48B959
- .text:0048B88A ; ---------------------------------------------
- .text:0048B88A loc_48B88A:
- ; Вывести сообщение о неправильном серийнике
- .text:0048B88A mov eax, dword_9A2EAC
- .text:0048B88F inc eax
- .text:0048B890 cmp eax, 2
- .text:0048B893 mov dword_9A2EAC, eax
- .text:0048B898 jle short loc_48B8AA
- .text:0048B89A mov ecx, dword_9A2E80
- .text:0048B8A0 mov byte ptr [ecx+3Ch], 1
- ; QWidget::close(void)
- .text:0048B8A4 call ds:?close@QWidget@@QAE_NXZ
- .text:0048B8AA loc_48B8AA:
- .text:0048B8AA push 7D0h
- .text:0048B8AF call ds:?msleep@QThread@@KAXK@Z
- ; QThread::msleep(ulong)
- .text:0048B8B5 push ebx
- .text:0048B8B6 lea ecx, [esp+98h+var_80]
- .text:0048B8BA push offset unk_6C460C
- .text:0048B8BF push ecx
Code (Assembler) : Убрать нумерацию
- .text:004C5EF4 jnz short loc_4C5F07
- .text:004C5EF6 cmp byte_73537D, 0F6h
- .text:004C5EFD jnz short loc_4C5F07
- ; Вернуть EAX=1
- .text:004C5EFF mov eax, 1
- .text:004C5F04 pop esi
- .text:004C5F05 pop ebx
- .text:004C5F06 retn
- .text:004C5F07 ; ----------------------------------------
- .text:004C5F07 loc_4C5F07:
- .text:004C5F07 pop esi
- ; Вернуть EAX=0
- .text:004C5F08 xor eax, eax
- .text:004C5F0A pop ebx
- .text:004C5F0B retn
Программа успешно "зарегистрирована"
Даже не пришлось ничего вводить, программа сразу же считает себя зарегистрированной. Также пропали маркеры на изображении, пункты регистрации в главном меню и остальные признаки триальности. А если сперва запустить программу под отладчиком и подкорректировать результат проверки только при вводе серийника, то в реестре появятся следующие ключи:
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\PanoramaStudio\Registered]
"UserName2PRO"="ManHunter / PCL"
"Key2PRO"="1234567890"
PanoramaStudio прекрасно работает и без них, но таким образом можно добавить любое регистрационное имя в пропатченную программу. Вот так, путем нехитрых манипуляций, мы получили готовый и абсолютно бесплатный рабочий инструмент.
Просмотров: 7053 | Комментариев: 15
Метки: исследование защиты, графика
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(19.01.2021 в 10:58):
Поиском. В hiew это F7, как в других редакторах - не знаю. И там не адрес, а строка, читай внимательнее.
Сергей
(19.01.2021 в 10:34):
Здравствуйте, могли бы вы поподробнее описать, как найденный нужный адрес в файле panoramastudio.qm найти в исполняющем файле.
brute
(06.10.2016 в 23:19):
что-то вернулся к этой проге (разгребал завалы).. Нашел в Оле через поиск в памяти примерное место проверки серийника - где логин мелькает в регистрах, начал наугад править переходы.. поднялся повыше и.. заметил странный SETNE по адресу 52CDD8.. Заменил на SETE и прога зарегистрировалась. Кстати, открыл для себя два плагина для IDA: keypatch.py и ifl.py - с ними патчить и трейсить в иде одно удовольствие!, а также прикрутил (легко!) windbg 32\64 к IDA.
ManHunter
(13.03.2016 в 09:28):
Я не знаю, что такое 64-битные системы. Статьи по ним появятся, когда по какой-то причине у меня вдруг на компе обнаружится установленная система с этой разрядностью, то есть ВООБЩЕ НИКОГДА.
brute
(13.03.2016 в 08:46):
1. сам искать строки на немецком не догадался - подсмотрел), так как оля не брякалась функциях чтения серийника.. Уже хотел триальность "лечить"..
2. дистрибутив ставит х32/х64 в зависимости от винды. Так вот, под х64 нет отладчиков!!! Сам отладчик х64, имхо, сырой - переход на оффсет из иды не совпадает! (адреса загрузки в иду и х64 разные - не смог синхронизировать.. Слышал, что в реестре надо что-то править..) Пришлось патчить в хех-редакторе иды...
3. есть что-нибудь для отладки, кроме dbg_х64? Хотелось бы (плагин) для иды найти и приспособить баш_64, windbg или (странно, почему его нет в комплекте иды) windbg_64.
п.с. хотелось бы уже начать читать статьи по отладке х64:)
2. дистрибутив ставит х32/х64 в зависимости от винды. Так вот, под х64 нет отладчиков!!! Сам отладчик х64, имхо, сырой - переход на оффсет из иды не совпадает! (адреса загрузки в иду и х64 разные - не смог синхронизировать.. Слышал, что в реестре надо что-то править..) Пришлось патчить в хех-редакторе иды...
3. есть что-нибудь для отладки, кроме dbg_х64? Хотелось бы (плагин) для иды найти и приспособить баш_64, windbg или (странно, почему его нет в комплекте иды) windbg_64.
п.с. хотелось бы уже начать читать статьи по отладке х64:)
ManHunter
(11.10.2014 в 17:58):
Ну дык, ёлы-палы
Vladimir
(11.10.2014 в 16:45):
Шик! Kolor Autopano Giga собрала собор Святого Вита из восьми фрагментов автоматически! Без ручной коррекции контрольных точек. Еще и дисторсию убрала почти идеально.
Большое спасибо вам за подсказку!
Большое спасибо вам за подсказку!
Vladimir
(11.10.2014 в 16:17):
И даже русский язык есть!
Благодарю, буду пробовать.
Благодарю, буду пробовать.
ManHunter
(11.10.2014 в 16:05):
Kolor Autopano Giga пока вне конкуренции.
Vladimir
(11.10.2014 в 16:04):
А вы пользовались для сборки панорам PTGui Pro? Если да, то она лучше/хуже, чем PanoranaStudio? Вообще, чем вы пользуетесь для этих целей?
ManHunter
(05.10.2014 в 12:45):
Отличная попытка. В следующем тысячелетии обязательно попробую. А пока в бан.
Алексей
(04.10.2014 в 23:41):
а попробуйте обойти защиту easypano tourweaver
Verter
(02.10.2014 в 13:12):
Красава! Заменил в NOPами в редакторе. Работает. Жму лапу!
ManHunter
(02.10.2014 в 01:34):
Антисанкции, чо :)
ufo
(02.10.2014 в 01:27):
Неплохо так раскрутил спагетти на 90 баксов :)
Добавить комментарий
Заполните форму для добавления комментария