Исследование защиты программы Program Picker
Скриншот программы Program Picker
Program Picker - на редкость корявый гибрид заменителя переключателя задач и лаунчера для программ и файлов. Куча ошибок, вырвиглазный интерфейс, и при этом всем аффтар еще не стесняется требовать деньги за свое поделие. Придется его в этом немного разубедить.
Забираем с офсайта дистрибутив, устанавливаем, смотрим. Даже по одному только набору хлама, который обнаруживается в папке установки, становится понятно, что жертва написана на дотнете. Хорошо, теперь запускаем и смотрим, как проявляется триальность.
Окно регистрации программы
С этим все понятно. Отправляем жертву в свеженькую бетку декомпилятора dnSpy 4.0.0. Файл чистый, никаких обфускаторов и упаковщиков не применялось, так что сборка в dnSpy открывается без проблем. Первый же класс, который появляется в списке модулей сборки ProgramPicker, носит характерное название "ActivateWindow". Вряд ли это что-то другое, кроме как обработчик окна, которое появляется при старте незарегистрированной программы.
Вызов проверки лицензии
И очередная очевидная вещь: при активации окна вызывается проверка лицензии. Если она проходит с положительным результатом, то окно активации не появляется. Точнее не то, чтобы прям совсем не появляется, просто сразу же закрывается. Отлично, двигаемся глубже. Кликом на названии метода License.IsValid попадаем в саму функцию проверки лицензии:
Функция проверки лицензии
Тут проверяется наличие самой лицензии, наличие ее активированного статуса, а также дополнительная проверка на предмет триальной лицензии. Если покопаться, то обнаружится, что все ссылки на непосредственную обработку лицензии ведут в сторонюю библиотеку LogicNP.CryptoLicensing.dll. И вот по ней точно прошлись обфускатором, плюс к этому, по всей видимости, там используется криптография. Лично я не вижу смысла продираться через все навороты сторонней защиты, когда можно просто подправить код основной программы. Тем более, что все проверки сводятся к одному единственному методу.
Открываем метод класса на редактирование
Осталось внести нужные изменения в код метода, чтобы функция проверки лицензии всегда возвращала положительный результат.
Редактируем код
Компилируем исправленный код, сохраняем сборку и проверяем изменения. Окно активации при старте программы пропало, перевод времени на год вперед на работоспособность программы тоже не влияет. Цель достигнута. Очередная никому не нужная программа добавлена в список релизов.
Просмотров: 2344 | Комментариев: 5
Метки: исследование защиты, .NET
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
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, тем самым не нужно патчить тысячу и одну новую версию.
Добавить комментарий
Заполните форму для добавления комментария
P.S. ManHunter, извиняй, за небольшой срач. Накипело. Бесят твари с IQ -INDIA_OLIGOFREN, которые ещё просят "жрать" за такой софт.