Blog. Just Blog

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

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

Launcher - небольшая программа, которая позволяет создавать на рабочем столе панель быстрого запуска. Сюда можно добавлять программы, специальные ярлыки, папки, отдельные файлы, чтобы максимально быстро получать к ним доступ. Все настраивается, а внешний вид кастомизируется шкурками. Но без регистрации можно создать только 16 ярлыков. Маловато будет, маловато!

Забираем с сайта дистрибутив стабильной версии, устанавливаем, смотрим. Главный исполняемый файл упакован UPX, снимаем его им же. Команда upx -d Launcher.exe и перед нами готовый для исследования файл. Отправляем его в дизассемблер.

Окно "О программе"
Окно "О программе"

Из признаков триальности в первую очередь бросается в глаза уведомление в окне "О программе" - надпись "Shareware Limit".

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

Строка в юникоде без проблем обнаруживается в файле. Переходим в дизассемблер и ищем где и как она используется.
  1. .data:006EE56C off_6EE56C      dd offset aSharewareLimit
  2. .data:006EE56C ; "Shareware Limit"
Указатель на строку. Отлично, ищем указатель на этот указатель. По единственной перекрестной ссылке выходим на следующий код:
  1. ; Проверить флаг регистрации
  2. .text:006D8488                 cmp     ds:byte_717633, 0
  3. .text:006D848F                 jnz     short loc_6D84B6
  4. ; Он установлен, строку об ограничении не выводить
  5. .text:006D8491                 mov     eax, ds:dword_7174F8
  6. .text:006D8496                 imul    ds:dword_7174D8
  7. .text:006D849C                 add     ebx, eax
  8. .text:006D849E                 cmp     ebx, 0Fh
  9. .text:006D84A1                 jle     short loc_6D84B6
  10. .text:006D84A3                 lea     eax, [ebp+var_4]
  11. .text:006D84A6                 mov     ecx, offset asc_6D8988 ; " !"
  12. ; Загрузить строку "Shareware Limit"
  13. .text:006D84AB                 mov     edx, off_6EE56C
  14. .text:006D84B1                 call    sub_40B7E8
  15. .text:006D84B6 loc_6D84B6:
  16. .text:006D84B6                 mov     eax, [ebp+var_4]
  17. .text:006D84B9                 test    eax, eax
  18. .text:006D84BB                 jz      short loc_6D84C2
  19. .text:006D84BD                 sub     eax, 4
Если флаг регистрации не нулевой, то сообщение о шароварном лимите не выводится. Давайте посмотрим, где и как этот флаг устанавливается и меняет свое значение.

Перекрестные ссылки на флаг
Перекрестные ссылки на флаг

IDA любезно подсказывает, что значение флага меняется в двух местах, в остальных только выполняется проверка его значения. Нас интересует, при каких условиях флаг регистрации сбрасывается, то есть выполнен запуск незарегистрированной программы.
  1. .text:006C9FD4                 call    dword ptr [ebx+0Ch]
  2. .text:006C9FD7                 push    [ebp+var_D0]
  3. .text:006C9FDD                 push    offset dword_6CB1C4
  4. .text:006C9FE2                 mov     eax, offset dword_7175C8
  5. .text:006C9FE7                 mov     edx, 4
  6. .text:006C9FEC                 call    sub_40B870
  7. .text:006C9FF1                 jmp     short loc_6C9FFA
  8. .text:006C9FF3 ; ---------------------------------------
  9. .text:006C9FF3 loc_6C9FF3:
  10. ; Сбросить флаг регистрации
  11. .text:006C9FF3                 mov     ds:byte_717633, 0
  12. .text:006C9FFA loc_6C9FFA:
  13. .text:006C9FFA                 nop
  14. .text:006C9FFB                 nop
  15. .text:006C9FFC                 nop
  16. .text:006C9FFD                 nop
  17. .text:006C9FFE                 mov     eax, [ebp+var_24]
  18. .text:006CA001                 call    sub_4088EC
Обычная ветка конструкции IF-THEN-ELSE. Меняем команду mov ds:byte_717633, 0 на mov ds:byte_717633, 1 и сохраняем изменения. Теперь даже при невыполнении условия проверки флаг регистрации все равно будет взведен.

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

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

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

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

Комментарии

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

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

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

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