Исследование защиты программы Nevercenter CameraBag 2
Скриншот программы Nevercenter CameraBag 2
Программа Nevercenter CameraBag 2 предназначена для очень быстрого редактирования ваших фотографий. К фотографиям можно применить на выбор более 150 готовых эффектов или сконструировать свой, если этого будет мало. В итоге даже самая неудачная фотка может превратиться в шЫдевр из серии "я художник, я так вижу". Шутка. Нечто подобное, наверное, делается во всяких популярных сервисах типа Инстаграмма. C Nevercenter CameraBag 2 можно бесплатно поиграться в течение 15 дней, после чего надо будет раскошелиться на ее покупку. А можно и не доходить до таких крайностей.
Как всегда, все начинается с того, что надо скачать дистрибутив. После этого надо распаковать архив и установить программу. Сразу же после запуска программа открывает окно с полями ввода и предлагает нам зарегистрироваться.
Окно регистрации
На ввод неправильного серийного номера программа реагирует сообщением "Invalid registration code. Try copying and pasting the code from your registration email". Это и есть основная зацепка для исследований. Если регистрироваться пока нет желания или возможности, то можно опробовать триальный режим. Тут тоже есть небольшая зацепка - ссылка на покупку в виде надписи "BUY this app" в главном окне.
Триальная надпись в окне программы
Дизассемблер к этому времени должен закончить работу. Начнем с поиска первой строки о неправильном регистрационном коде.
Code (Assembler) : Убрать нумерацию
- .text:00482866 call sub_4816C0
- .text:0048286B test al, al
- .text:0048286D jz short loc_48287B
- .text:0048286F mov eax, [ebx]
- .text:00482871 mov ecx, ebx
- .text:00482873 call dword ptr [eax+0C0h]
- .text:00482879 jmp short loc_4828AC
- .text:0048287B ; -----------------------------------------------
- .text:0048287B loc_48287B:
- .text:0048287B push offset aInvalidRegistr
- ; "Invalid registration code. Try copying "...
- .text:00482880 lea ecx, [ebp+var_4]
- .text:00482883 call ds:??0QString@@QAE@PBD@Z
Code (Assembler) : Убрать нумерацию
- .text:004816C0 sub_4816C0 proc near
- .text:004816C0 var_18 = dword ptr -18h
- .text:004816C0 var_14 = dword ptr -14h
- .text:004816C0 var_10 = dword ptr -10h
- .text:004816C0 var_C = dword ptr -0Ch
- .text:004816C0 var_8 = dword ptr -8
- .text:004816C0 var_4 = dword ptr -4
- .text:004816C0 arg_0 = dword ptr 8
- .text:004816C0 arg_4 = dword ptr 0Ch
- .text:004816C0
- .text:004816C0 push ebp
- .text:004816C1 mov ebp, esp
- .text:004816C3 and esp, 0FFFFFFF8h
- .text:004816C6 sub esp, 1Ch
- .text:004816C9 push ebx
- .text:004816CA push esi
- .text:004816CB mov esi, ecx
- .text:004816CD push edi
- .text:004816CE mov edi, [ebp+arg_0]
- .text:004816D1 push dword ptr [esi+34h]
- .text:004816D4 lea eax, [esi+24h]
- .text:004816D7 push dword ptr [esi+30h]
- .text:004816DA push eax
- .text:004816DB push edi
- ; Вызвать функцию проверки
- .text:004816DC call sub_4819F0
- ; Сохранить ее результат из AL и BL
- .text:004816E1 mov bl, al
- .text:004816E3 movzx ecx, bl
- .text:004816E6 push ecx
- .text:004816E7 push offset aCodeIsValidI ; "code is valid %i"
- .text:004816EC call sub_48C4E4
- .text:004816F1 add esp, 8
- ; Проверить сохраненный результат
- .text:004816F4 test bl, bl
- ; Если BL=0 (функция проверки вернула AL=0), то серийный номер неправильный
- .text:004816F6 jz loc_4817AB
- .text:004816FC push [ebp+arg_4]
- .text:004816FF mov edx, edi
- .text:00481701 mov ecx, esi
- .text:00481703 call loc_4811C0
- .text:00481708 add esp, 4
- .text:0048170B test al, al
- .text:0048170D jz loc_4817AB
- .text:00481713 lea ecx, [esp+28h+var_18]
- .text:00481717 mov [esp+28h+var_18], 0
- .text:0048171F mov [esp+28h+var_10], 0
- .text:00481727 mov [esp+28h+var_14], 0
- .text:0048172F call sub_46DE70
- .text:00481734 lea ecx, [esp+28h+var_C]
- .text:00481738 mov [esp+28h+var_C], 0
- .text:00481740 mov [esp+28h+var_4], 0
- .text:00481748 mov [esp+28h+var_8], 0
- .text:00481750 call sub_46DE70
- .text:00481755 lea eax, [esp+28h+var_C]
- .text:00481759 mov ecx, esi
- .text:0048175B push eax
- .text:0048175C lea edx, [esp+2Ch+var_18]
- .text:00481760 call sub_480F70
- .text:00481765 add esp, 4
- .text:00481768 lea eax, [esi+24h]
- .text:0048176B push dword ptr [esi+34h]
- .text:0048176E push dword ptr [esi+30h]
- .text:00481771 push eax
- .text:00481772 lea eax, [esp+34h+var_18]
- .text:00481776 push eax
- .text:00481777 call sub_4819F0
- .text:0048177C mov ecx, [esp+28h+var_C]
- .text:00481780 mov bl, al
- .text:00481782 test ecx, ecx
- .text:00481784 jz short loc_48178F
- .text:00481786 push ecx
- .text:00481787 call sub_477840
- .text:0048178C add esp, 4
- .text:0048178F loc_48178F:
- .text:0048178F mov eax, [esp+28h+var_18]
- .text:00481793 test eax, eax
- .text:00481795 jz short loc_4817A0
- .text:00481797 push eax
- .text:00481798 call sub_477840
- .text:0048179D add esp, 4
- .text:004817A0 loc_4817A0:
- .text:004817A0 mov al, bl
- .text:004817A2 pop edi
- .text:004817A3 pop esi
- .text:004817A4 pop ebx
- .text:004817A5 mov esp, ebp
- .text:004817A7 pop ebp
- .text:004817A8 retn 8
- .text:004817AB ; -------------------------------
- .text:004817AB loc_4817AB:
- .text:004817AB pop edi
- .text:004817AC pop esi
- ; Серийный номер неправильный
- .text:004817AD xor al, al
- .text:004817AF pop ebx
- .text:004817B0 mov esp, ebp
- .text:004817B2 pop ebp
- .text:004817B3 retn 8
- .text:004817B3 sub_4816C0 endp
Code (Assembler) : Убрать нумерацию
- ...
- .text:00481C8F pop edi
- .text:00481C90 pop esi
- .text:00481C91 mov al, bl
- .text:00481C93 pop ebx
- .text:00481C94 mov esp, ebp
- .text:00481C96 pop ebp
- .text:00481C97 retn 10h
Программа успешно "зарегистрирована"
При старте появляется окно для ввода серийного номера и регистрационного имени, при вводе любых данных оно закрывается без сообщений об ошибке, а в главном окне программы исчезла ссылка "BUY this app". После перезапуска окно регистрации не появляется, при переводе системного времени на месяц вперед также не проявляется никаких нежелательных спецэффектов.
REGEDIT4
[HKEY_CURRENT_USER\Software\Nevercenter\CameraBag2]
"RegInfoName"="ManHunter / PCL"
"RegInfoCode"="FUCK SHAREWARE!"
А если сразу после патча добавить в реестр такой REG-файл, то даже не придется ничего вводить при запуске. Цель достигнута, можно продолжать заниматься творчеством.
Просмотров: 6946 | Комментариев: 2
Метки: исследование защиты, графика
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(20.07.2014 в 11:31):
Да, так будет правильнее.
ufo
(20.07.2014 в 01:30):
Я бы сказал продолжать творчество. Как всегда в лучших традициях.
FUCK SHAREWARE! LOL
Добавить комментарий
Заполните форму для добавления комментария