Blog. Just Blog

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

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

Fast Video Downloader предназначена для загрузки видеороликов с различных хостингов с возможностью их последующего конвертирования в другие форматы. А по сути очередное коммерческое поделие, паразитирующее на бесплатных утилитах FFmpeg и youtube-dl. Определенно, на месте разработчиков этих продуктов я бы запрещал любое их использование в составе платных программ. Но с другой стороны, если без денежных затрат сделать программу бесплатной, то вроде как нормально. Этим и займемся.

Скачиваем дистрибутив, устанавливаем. Хотя это не совсем дистрибутив, после первого запуска программа выкачивает с сайта еще несколько компонентов, в том числе FFmpeg и youtube-dl. Ладно, смотрим на основной исполняемый файл. Набор сопутствующих библиотек с характерными именами в папке с программой, а также специализированные анализаторы говорят, что программа написана на дотнете, так что отправляем основной файл в dnSpy. Хорошая новость заключается в том, что все имена методов и классов без аномалий, никаких обфускаторов не применялось.

Список триальных окон
Список триальных окон

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

Последовательность вызова
Последовательность вызова

Берем любое из триальных окон и поочередным анализом вызовов раскручиваем цепочку его появления.

Вызывающий метод
Вызывающий метод

А вот это уже интересно. В вызывающем методе появляется булевая переменная bRegistered, на основании значения которой принимается решение о появлении триального окна.

Использование переменной
Использование переменной

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

Первоначальная инициализация
Первоначальная инициализация

Загрузка настроек из реестра
Загрузка настроек из реестра

Онлайн-проверка
Онлайн-проверка

Объявление переменной с первоначальной инициализацией не трогаем, она погоды не делает. А вот два следующих метода придется отредактировать.

Редактируем метод
Редактируем метод

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

Редактируем метод
Редактируем метод

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

Сохраняем измененную сборку, проверяем результат. Если все сделано правильно, то программа стартует в зарегистрированном режиме.

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

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

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

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

Комментарии

Отзывы посетителей сайта о статье
Fury (15.04.2022 в 16:39):
Thank you
ManHunter (13.04.2022 в 22:11):
Так это ж вечные 100 дней. Тем более, что можно написать любое число.
SHREEF (13.04.2022 в 20:52):
У вас осталось 100 дней )))

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

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

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