Blog. Just Blog

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

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

TimeSnapper предназначена для отслеживания действий, которые происходят на вашем компьютере. Она делает скриншоты экрана с заданным интервалом, пока вы или кто-то другой занимаетесь за компьютером. Потом можно запустить просмотр скриншотов в режиме видеоролика и посмотреть, что творилось в ваше отсутствие. Такая легальная программа-шпион. Со своей задачей справляется относительно неплохо, но в пробном режиме работает ограниченное количество дней.

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

Триальное окно
Триальное окно

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

Окно активации
Окно активации

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

Снимаем обфускацию с файла
Снимаем обфускацию с файла

Очищенный файл загоняем в dnSpy, после чего поищем в сборке какую-нибудь приметную строчку из триального окна. Ну, например, "days to go".

Ищем строку в файле
Ищем строку в файле

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

Анализатор использования
Анализатор использования

Поочередным раскрытием списков "Используется в" выходим на следующий код. Тут выполняется какая-то проверка, после чего запускается вся эта цепочка, приводящая к появлению триального окна. Логично предположить, что конструкция вида "if (!Class53.smethod_3().method_167())" - это и есть проверка регистрации. Кликом по названию открываем method_167():

Функция проверки
Функция проверки

Так и есть, сравнение двух строк. Если полюбопытствовать, что из себя представляет method_155(), то там обнаружатся какие-то манипуляции на основе строки кода активации. Значит все найдено правильно. Открываем метод на редактирование и заменяем весь его текст на единственную строку возврата правильного результата.

Редактируем функцию проверки регистрации
Редактируем функцию проверки регистрации

Компилируем внесенные изменения, сохраняем сборку, запускаем измененный файл.

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

Триальное окно при старте не появляется, в меню пропали пункты покупки и активации, перевод системного времени на работоспособность программы никак не влияет. Цель достигнута.

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

Комментарии

Отзывы посетителей сайта о статье
Rustamer (17.11.2020 в 20:12):
Ясно. Кому как привычнее. Просто не думал, что это касается и инструментов для реверса. Для меня тоже есть программы, где я пользуюсь локализацией(браузер, totalcmd, офис, winrar и тп), где глазу приятнее. Но есть такие, где локализация мешает при работе или поиске в гугле.
ManHunter (17.11.2020 в 19:21):
Цитатарусской локализации DnSpy

Не вижу необходимости мужественно превозмогать на ровном месте, если можно спокойно пользоваться интерфейсом на родном языке. Особенно это касается больших программ типа фотошопа, офиса или того же dnSpy.
Rustamer (17.11.2020 в 19:02):
Увы, это редактирование в DnSpy далеко не всегда справляется с целью.
Зачастую бывает проще поправить в IL, чем пытаться бороться выдаваемыми ошибками.

Слегка удивило глаз скорее использование ManHunter-ом русской локализации DnSpy. Не думал, что подобные инструменты + русский язык имеют популярность. Впрочем конечно даже  MS студию предлагает в переводе, и многие этим  умудряются пользоваться.
ManHunter (17.11.2020 в 17:54):
Заодно и я себе скачал свеженький dnSpy 6.1.7, а то что-то давно не заглядывал.
brute (17.11.2020 в 15:09):
с новой версией всё легко получилось!
ManHunter (17.11.2020 в 14:25):
dnSpy уже 6.0.5 как минимум. Правый мыш на тексте - в меню "редактировать метод". На скриншоте окно редактирования метода.
brute (17.11.2020 в 14:22):
что-то ничего не получается, как будто пропущено несколько шагов в описании..
http://i.prntscr.com/GWiGQMbgS...l44if6qQ.png
Как "открыть метод на редактирование"? - я всё время в IL-кодах правил и сохранял. Не совпадают номера строк, изменилась версия программы или я что-то не то нашёл? Предпоследнее фото отредактировано или из огромного "Class36" с кучей методов надо всё удалить?

dnSpy 2.0.2.0_х64
Vnv (16.11.2020 в 20:38):
ManHunter, про коробочку знаков препинаний - класс!!! Но надо же где-то школоте попытаться высказаться.

По теме: Ненавижу .NET - отвращение, как к печенке, с детства. Хотя, может на Ваших примерах начну "браться" и за .NET.
ManHunter (16.11.2020 в 18:59):
*facepalm*
А можно взять и прочитать статью. Потом еще раз прочитать, и еще раз, и еще раз до полного просветления. Особенно абзац про онлайновую активацию.

И в подарок коробочку знаков препинания, а то ты свои где-то посеял [.,,,.,,?]
1 (16.11.2020 в 18:55):
ОТличный примерчик

А можно разобрать код и попробовать выдавить серийник вперед как то это было в твоих примерах сам пока не могу до этого допиреть

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

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

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