Blog. Just Blog

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

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Темная сторона Силы | Автор: ManHunter
Скриншот программы EscapeClose Pro
Скриншот программы EscapeClose Pro

Небольшая утилитка EscapeClose Pro предназначена для облегчения работы за компьютером. По нажатию кнопки Esc она может автоматически минимизировать активное окно, закрывать его, прятать, сворачивать в трей или просто подводить курсор мышки к соответствующей кнопке в заголовке. При активной работе с большим количеством окон реально экономит время. И все бы ничего, если бы не цена почти в 15 баксов.

Забираем с сайта дистрибутив, устанавливаем, смотрим. Исполняемый файл ничем не упакован, да и размер имеет более чем скромный. Отправляем его в дизассемблер, который через несколько секунд выдаст готовый результат.

Программа обитает в трее, никаких окон у нее нет, зато в меню есть пункт регистрации. Попробуем зарегистрировать программу каким-нибудь левым серийником:

Сообщение о неправильной регистрации
Сообщение о неправильной регистрации

Отлично, строка для поиска у нас есть. Поищем ее в листинге, а заодно посмотрим, как она там используется.
  1. .text:0040446E                 add     esp, 0Ch
  2. ; Сравнить строчки
  3. .text:00404471                 push    offset byte_40A994 ; Str2
  4. .text:00404476                 push    offset byte_40A928 ; Str1
  5. .text:0040447B                 call    strcmp
  6. .text:00404480                 add     esp, 8
  7. ; Сохранить результат сравнения
  8. .text:00404483                 mov     dword_40BFEC, eax
  9. ; Если строки не равны, то вывести сообщение о неправильной регистрации
  10. .text:00404488                 cmp     dword_40BFEC, 0
  11. .text:0040448F                 jnz     short loc_4044C4
  12. ; Вывести сообщение о корректной регистрации
  13. .text:00404491                 push    0               ; uType
  14. .text:00404493                 push    offset aEscapecloseP_2
  15. ; "EscapeClose Pro"
  16. .text:00404498                 push    offset aOkThankYouForR
  17. ; "OK!\nThank you for registering EscapeClo"...
  18. .text:0040449D                 push    0               ; hWnd
  19. .text:0040449F                 call    ds:MessageBoxA
  20. .text:004044A5                 mov     eax, [ebp+arg_8]
  21. .text:004044A8                 and     eax, 0FFFFh
  22. .text:004044AD                 movzx   ecx, ax
  23. .text:004044B0                 push    ecx             ; nResult
  24. .text:004044B1                 mov     edx, [ebp+hDlg]
  25. .text:004044B4                 push    edx             ; hDlg
  26. .text:004044B5                 call    ds:EndDialog
  27. .text:004044BB                 mov     eax, 1
  28. .text:004044C0                 jmp     short loc_404539
  29. .text:004044C2 ; -------------------------------
  30. .text:004044C2                 jmp     short loc_4044D8
  31. .text:004044C4 ; -------------------------------
  32. .text:004044C4 loc_4044C4:
  33. .text:004044C4                 push    0               ; uType
  34. .text:004044C6                 push    offset aEscapecloseP_2
  35. ; "EscapeClose Pro"
  36. .text:004044CB                 push    offset aIncorrectCode
  37. ; "Incorrect Code!"
  38. .text:004044D0                 push    0               ; hWnd
  39. .text:004044D2                 call    ds:MessageBoxA
Просто праздник какой-то. Выполняется обычное сравнение строк, на основании его результата принимается решение о правильной или неправильной регистрации. Запускаем программу под отладчиком и ставим точку останова по адресу 0040447B. После этого повторяем процесс регистрации и ждем момента, когда точка останова сработает. Смотрим на стек:

Адреса строк на стеке
Адреса строк на стеке

И что же мы видим? Перед выполнением сравнения на стеке находятся адреса двух строк, первая - введенный неправильный серийник, вторая - контрольная строка, то есть правильный серийник. Таким образом, для регистрационного имени "ManHunter / PCL" валидным серийным номером будет "13C6B55D04547A6A6FCB". Закрываем отладчик, запускаем программу в нормальном режиме и повторяем регистрацию с найденными данными:

Программа успешно зарегистрирована
Программа успешно зарегистрирована

Вот и все, цель достигнута. Спасибо разработчику за полезную утилиту. Как я понимаю, остальные его программы регистрируются примерно так же.

Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 1327 | Комментариев: 3

Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
xussr (11.05.2018 в 16:56):
Для русской версии!
xussr
"575BF73DFBBE01FAE05B"
ничего сложного
User-10 (11.05.2018 в 14:38):
Автор не такой уж и жадный для "односельчан" русская версия всего за 150 деревянных (2,5$ вместо 15 )) )
_http://www.sanapesoft.com/ru/escapeclose.htm#EscapeClose%20Pro
Но "кряка" подходит
xussr (10.05.2018 в 19:45):
xussr
"565AF03CFABE01FAE05B"
Буквально 30 секунд времени спасибо что не даёшь забыть ранее закрепленный материал!

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2021
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 2 (0.007 сек.) / Память: 4.75 Mb
Наверх