Blog. Just Blog

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

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

Программа DrugSeek когда-то была предназначена для поиска закладок лекарственных средств в аптеках Москвы. Проект давно мертв, никакой практической пользы от него теперь нет, поэтому сгодится только в качестве подопытного.

Забираем с сайта последний доступный дистрибутив, он портативный, поэтому просто распаковываем куда-нибудь и запускаем. Ограничения заявлены по функционалу, но их проверить не получится по причине неработоспособности самой программы. Придется поверить на слово, что они действительно есть. Зато в заголовке главного окна и в окне "О программе" есть надписи о "демо-версии". Это и станет отправной точкой для исследования.

Триальные надписи в окне программы
Триальные надписи в окне программы

Поиском по слову "демо" в исполняемом файле обнаруживается строка, которая дописывается в заголовок главного окна незарегистрированной программы.

Строка в файле
Строка в файле

Поскольку файл ничем не накрыт и не упакован, то сразу отправим его на дизассемблирование. После этого посмотрим, какой код ссылается на демо-строчку и при каких условиях она задействуется.
  1. .text:0040E639                 push    edx
  2. .text:0040E63A                 push    [ebp+arg_0]
  3. ; Вызвать функцию проверки
  4. .text:0040E63D                 call    sub_4101F8
  5. .text:0040E642                 add     esp, 8
  6. ; Если ее результат не равен 0, то демо-версию не выводить
  7. .text:0040E645                 test    al, al
  8. .text:0040E647                 jnz     short loc_40E6A2
  9. .text:0040E649                 mov     [ebp+var_30], 20h
  10. .text:0040E64F                 lea     eax, [ebp+var_C]
  11. .text:0040E652                 call    unknown_libname_41
  12. .text:0040E657                 push    eax
  13. .text:0040E658                 inc     [ebp+var_24]
  14. ; Ссылка на строку "демо-версия"
  15. .text:0040E65B                 mov     edx, offset unk_4B231A
  16. .text:0040E660                 lea     eax, [ebp+var_8]
  17. .text:0040E663                 call    sub_4AD9D0
  18. .text:0040E668                 inc     [ebp+var_24]
  19. .text:0040E66B                 lea     edx, [ebp+var_8]
  20. .text:0040E66E                 lea     eax, [ebp+var_4]
  21. .text:0040E671                 pop     ecx
  22. ; Прицепить строку к заголовку
  23. .text:0040E672                 call    @$badd$xqqrrx17System@AnsiString
  24. .text:0040E677                 lea     edx, [ebp+var_C]
  25. .text:0040E67A                 lea     eax, [ebp+var_4]
  26. .text:0040E67D                 call    sub_4ADB14
  27. .text:0040E682                 dec     [ebp+var_24]
Все предельно просто. Вызывается функция проверки, по ее результату или условный переход или к заголовку дописывается строка.

Открываем на редактирование функцию по адресу 004101F8 и записываем в ее начало пару команд MOV AL,1 и RET. Сохраняем изменения, запускаем. Все упоминания о демо-версии исчезли. Ограничения по функционалу тоже, хоть это и не проверить. Цель достигнута. Такой вот крекми-пятиминутка для самых маленьких. Я на написание этой статьи потратил гораздо больше времени.

Поделиться ссылкой ВКонтакте
Просмотров: 1716 | Комментариев: 0

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

Комментарии

Отзывы посетителей сайта о статье
Комментариeв нет

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

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

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