Исследование защиты программы EscapeClose Pro
Скриншот программы EscapeClose Pro
Небольшая утилитка EscapeClose Pro предназначена для облегчения работы за компьютером. По нажатию кнопки Esc она может автоматически минимизировать активное окно, закрывать его, прятать, сворачивать в трей или просто подводить курсор мышки к соответствующей кнопке в заголовке. При активной работе с большим количеством окон реально экономит время. И все бы ничего, если бы не цена почти в 15 баксов.
Забираем с сайта дистрибутив, устанавливаем, смотрим. Исполняемый файл ничем не упакован, да и размер имеет более чем скромный. Отправляем его в дизассемблер, который через несколько секунд выдаст готовый результат.
Программа обитает в трее, никаких окон у нее нет, зато в меню есть пункт регистрации. Попробуем зарегистрировать программу каким-нибудь левым серийником:
Сообщение о неправильной регистрации
Отлично, строка для поиска у нас есть. Поищем ее в листинге, а заодно посмотрим, как она там используется.
Code (Assembler) : Убрать нумерацию
- .text:0040446E add esp, 0Ch
- ; Сравнить строчки
- .text:00404471 push offset byte_40A994 ; Str2
- .text:00404476 push offset byte_40A928 ; Str1
- .text:0040447B call strcmp
- .text:00404480 add esp, 8
- ; Сохранить результат сравнения
- .text:00404483 mov dword_40BFEC, eax
- ; Если строки не равны, то вывести сообщение о неправильной регистрации
- .text:00404488 cmp dword_40BFEC, 0
- .text:0040448F jnz short loc_4044C4
- ; Вывести сообщение о корректной регистрации
- .text:00404491 push 0 ; uType
- .text:00404493 push offset aEscapecloseP_2
- ; "EscapeClose Pro"
- .text:00404498 push offset aOkThankYouForR
- ; "OK!\nThank you for registering EscapeClo"...
- .text:0040449D push 0 ; hWnd
- .text:0040449F call ds:MessageBoxA
- .text:004044A5 mov eax, [ebp+arg_8]
- .text:004044A8 and eax, 0FFFFh
- .text:004044AD movzx ecx, ax
- .text:004044B0 push ecx ; nResult
- .text:004044B1 mov edx, [ebp+hDlg]
- .text:004044B4 push edx ; hDlg
- .text:004044B5 call ds:EndDialog
- .text:004044BB mov eax, 1
- .text:004044C0 jmp short loc_404539
- .text:004044C2 ; -------------------------------
- .text:004044C2 jmp short loc_4044D8
- .text:004044C4 ; -------------------------------
- .text:004044C4 loc_4044C4:
- .text:004044C4 push 0 ; uType
- .text:004044C6 push offset aEscapecloseP_2
- ; "EscapeClose Pro"
- .text:004044CB push offset aIncorrectCode
- ; "Incorrect Code!"
- .text:004044D0 push 0 ; hWnd
- .text:004044D2 call ds:MessageBoxA
Адреса строк на стеке
И что же мы видим? Перед выполнением сравнения на стеке находятся адреса двух строк, первая - введенный неправильный серийник, вторая - контрольная строка, то есть правильный серийник. Таким образом, для регистрационного имени "ManHunter / PCL" валидным серийным номером будет "13C6B55D04547A6A6FCB". Закрываем отладчик, запускаем программу в нормальном режиме и повторяем регистрацию с найденными данными:
Программа успешно зарегистрирована
Вот и все, цель достигнута. Спасибо разработчику за полезную утилиту. Как я понимаю, остальные его программы регистрируются примерно так же.
Просмотров: 1970 | Комментариев: 3
Метки: исследование защиты
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
User-10
(11.05.2018 в 14:38):
Автор не такой уж и жадный для "односельчан" русская версия всего за 150 деревянных (2,5$ вместо 15 )) )
_http://www.sanapesoft.com/ru/escapeclose.htm#EscapeClose%20Pro
Но "кряка" подходит
_http://www.sanapesoft.com/ru/escapeclose.htm#EscapeClose%20Pro
Но "кряка" подходит
xussr
(10.05.2018 в 19:45):
xussr
"565AF03CFABE01FAE05B"
Буквально 30 секунд времени спасибо что не даёшь забыть ранее закрепленный материал!
"565AF03CFABE01FAE05B"
Буквально 30 секунд времени спасибо что не даёшь забыть ранее закрепленный материал!
Добавить комментарий
Заполните форму для добавления комментария
xussr
"575BF73DFBBE01FAE05B"
ничего сложного