Blog. Just Blog

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

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

Программа Smarter Battery предназначена для мониторинга состояния аккумулятора ноутбука. Она показывает изменение емкости батареи во время цикла зарядки и разрядки, прогнозирует оставшееся время работы ноутбука и уведомляет при достижении низкого и критического уровня заряда батареи. Часть полезных функций заблокированы и требуют денежных вложений. Но лучше сэкономить денежку на приобретение запасного аккумулятора для ноута.

Скачиваем с сайта дистрибутив, устанавливаем, смотрим. Главный исполняемый файл ничем не упакован, поэтому отдаем его на анализ в дизассемблер.

Как я уже говорил, некоторые функции программы в незарегистрированном режиме недоступны. Например, при попытке вызвать полезный совет или запустить калибровку вываливается вот такое сообщение:

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

Поиск по тексту сообщения результатов не дает, зато поиск по заголовку окна выводит на следующий код:
  1. CODE:004A3B83                 mov     eax, ds:off_4C8144
  2. CODE:004A3B88                 mov     byte ptr [eax], 0
  3. ; Проверить значение флага регистрации
  4. CODE:004A3B8B                 cmp     byte ptr ds:dword_4CC180+1, 0
  5. ; Если он равен нулю, то сообщение не выводить
  6. CODE:004A3B92                 jz      short loc_4A3BC3
  7. CODE:004A3B94                 call    sub_4A33C4
  8. CODE:004A3B99                 push    0
  9. CODE:004A3B9B                 push    1
  10. CODE:004A3B9D                 lea     ecx, [ebp+var_8]
  11. CODE:004A3BA0                 mov     edx, offset aViktGgbvvtfJuC
  12. ; "Vikt\"ggbvvtf\"ju!cwcjnbdmg!qonz\"gqs\"sghk"...
  13. CODE:004A3BA5                 mov     eax, ds:dword_4CADFC
  14. CODE:004A3BAA                 call    sub_4A589C
  15. CODE:004A3BAF                 mov     ecx, [ebp+var_8]
  16. CODE:004A3BB2                 xor     edx, edx
  17. CODE:004A3BB4                 mov     eax, offset aUnregistered
  18. ; "Unregistered"
  19. CODE:004A3BB9                 call    sub_4A2FBC
  20. CODE:004A3BBE                 jmp     loc_4A3C8C
Теперь понятно, почему строку сообщения найти не удалось, изначально она зашифрована и расшифровывается только в момент использования. Умный ход со стороны разработчика. Ладно, посмотрим, при каких условиях появляется сообщение. Проверяется значение байта по адресу ds:dword_4CC180+1, если оно равно нулю, то считается, что все нормально. Теперь надо найти место в коде, где этот флаг инициализируется тем или иным значением.

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

По перекрестным ссылкам выясняем, что флаг инициализируется "плохим" значением в двух местах, в остальных участках кода он только проверяется. Поочередно переходим на оба участка кода с инициализацией и меняем обе команды mov byte ptr ds:dword_4CC180+1, 1 на mov byte ptr ds:dword_4CC180+1, 0. Сохраняем изменения, смотрим. Программа запускается, никаких проблем. Проверяем работоспособность и функционал программы после внесения изменений. Для этого, например, повторим вызов полезного совета.

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

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

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

Комментарии

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

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

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

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