Blog. Just Blog

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

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

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

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

Незарегистрированная программа
Незарегистрированная программа

Это и текст в заголовке, и какая-то кнопка вырвиглазного цвета, и надпись в окне "О программе", и дополнительные пункты меню. Зацепок много. Программа написана на дотнете, ничем не упакована, отправляем ее на декомпиляцию в dnSpy.

Результаты поиска
Результаты поиска

Начнем с самого очевидного - поиск строки "UNREGISTERED" и условий, при которых она появляется. Судя по характерному имени, обнаружится обработчик окна "О программе".

Код обработчика
Код обработчика

В коде обработчика присутствует вызов метода CheckLicense. Один клик и мы уже там.

Код проверки лицензии
Код проверки лицензии

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

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

Через контекстное меню открываем метод на редактирование.

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

Вместо всего кода вписываем return true и компилируем метод обратно. Теперь любая проверка кода, даже несуществующего или невалидного, приведет к правильному результату.

Сохраняем модуль
Сохраняем модуль

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

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

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

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

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

Комментарии

Отзывы посетителей сайта о статье
Petya (12.01.2024 в 17:33):
Если сильно хочется, можно и код активации подсмотреть для придуманного себе уникального. Бряку ставить несколькими строчками ниже. Но он к машине привязан, а вводить неудобно.
ManHunter (07.09.2023 в 20:14):
И у себя обновлю, спасибо
daxx0r (07.09.2023 в 17:55):
dnSpyEx до 6.4.0 обновился ;)

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

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

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