Blog. Just Blog

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

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

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

Если получится, то забираем с офсайта дистрибутив, устанавливаем, смотрим. Программа написана на дотнете, начинаем с обработки главного исполняемого файла при помощи деобфускатора de4dot.

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

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

Сообщение о неправильной активации
Сообщение о неправильной активации

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

Проверка и установка типа лицензии
Проверка и установка типа лицензии

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

Запись регистрационных данных
Запись регистрационных данных

Если сервер ответил положительно, то в реестр заносятся ключи с разными составляющими регистрации.

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

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

Исправленный метод
Исправленный метод

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

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

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

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

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

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

Комментарии

Отзывы посетителей сайта о статье
ManHunter (13.06.2024 в 10:52):
Dr.Web и файервол и антивирус, пользуюсь много лет
username (13.06.2024 в 10:10):
ЦитатаНадеюсь, что напоминать про блокировку приложения фаерволом вам напоминать не надо. Если программа не предназначена для непосредственной работы с интернетом, то ей там вообще делать нечего.

Man, какой фаервол можешь посоветовать?
pawel97 (09.06.2024 в 08:18):
То ли баг, то ли фича... В общем, можно сделать пустыми строками параметры Privat-Key и User-ID, и распрощаться с привязкой к диску. Раскодировать и расшифровать 0 байт/символов и потом успешно сравнить их - почему бы и нет...

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

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

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