Blog. Just Blog

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

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

Program Picker - на редкость корявый гибрид заменителя переключателя задач и лаунчера для программ и файлов. Куча ошибок, вырвиглазный интерфейс, и при этом всем аффтар еще не стесняется требовать деньги за свое поделие. Придется его в этом немного разубедить.

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

Окно регистрации программы
Окно регистрации программы

С этим все понятно. Отправляем жертву в свеженькую бетку декомпилятора dnSpy 4.0.0. Файл чистый, никаких обфускаторов и упаковщиков не применялось, так что сборка в dnSpy открывается без проблем. Первый же класс, который появляется в списке модулей сборки ProgramPicker, носит характерное название "ActivateWindow". Вряд ли это что-то другое, кроме как обработчик окна, которое появляется при старте незарегистрированной программы.

Вызов проверки лицензии
Вызов проверки лицензии

И очередная очевидная вещь: при активации окна вызывается проверка лицензии. Если она проходит с положительным результатом, то окно активации не появляется. Точнее не то, чтобы прям совсем не появляется, просто сразу же закрывается. Отлично, двигаемся глубже. Кликом на названии метода License.IsValid попадаем в саму функцию проверки лицензии:

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

Тут проверяется наличие самой лицензии, наличие ее активированного статуса, а также дополнительная проверка на предмет триальной лицензии. Если покопаться, то обнаружится, что все ссылки на непосредственную обработку лицензии ведут в сторонюю библиотеку LogicNP.CryptoLicensing.dll. И вот по ней точно прошлись обфускатором, плюс к этому, по всей видимости, там используется криптография. Лично я не вижу смысла продираться через все навороты сторонней защиты, когда можно просто подправить код основной программы. Тем более, что все проверки сводятся к одному единственному методу.

Открываем метод класса на редактирование
Открываем метод класса на редактирование

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

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

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

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

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

Комментарии

Отзывы посетителей сайта о статье
Аркадий (07.02.2018 в 06:05):
Ска, надеюсь, когда-нибудь C# со всеми потомками "Copy|PasteR's" данного г-сегмента и Недоразумения сдохнут вместе со своими уЁ***щами-создателями-"раПзЕрДЕабРоАтСчТАиМкаИми".

P.S. ManHunter, извиняй, за небольшой срач. Накипело. Бесят твари с IQ -INDIA_OLIGOFREN, которые ещё просят "жрать" за такой софт.
ManHunter (26.10.2017 в 13:12):
Если судить по качеству самой программы, то слово "думать" тут вообще не использовалось.
X-Wing Top Ace (26.10.2017 в 12:39):
Ну и ну... Жутко закрипченная и заобфускаченная дээлэлка, по самому обращению к которой ловится чекушка рега. Вот чем думают аФФтАры таких прожек?
pawel97 (25.10.2017 в 20:18):
Обожаю сторонние защитные библы, IsActivated на return true и усё. Один умник (тут его поделие старых версий кстати разбиралось) накрыл одну такую библу вмпротом, внедрил в exe, и его в свою очередь тоже накрыл тем же вмпротом. Таки шо ви думаете - ломается на раз патчем процесса какой-нить типа системной winspool.drv, всё тот же патч экспортируемой функции IsActivated.
Анон (24.10.2017 в 13:02):
Можно подменять DLL на свою которая будет всегда возвращать TRUE, тем самым не нужно патчить тысячу и одну новую версию.

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

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

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