Исследование защиты программы OpalCalc
Скриншот программы OpalCalc
OpalCalc - довольно интересный калькулятор, позволяющий помимо стандартных вычислений также вести многострочные подсчеты с использованием предыдущих значений, работать с интервалами дат и времени, применять внутренние переменные, функции и многое другое, причем одновременно. Без регистрации строчек с вычислениями может быть только 5, для снятия ограничения требуется прогуляться в кассу.
Забираем с офсайта портативный дистрибутив, распаковываем, смотрим. Вот так в программе проявляются ограничения:
Ограничение демо-версии
Программа написана на дотнете, отправляем ее на декомпиляцию в dnSpy. Поиском по файлу строки "demo" выходим на следующий код, который используется при выводе сообщения об ограничениях:
Использование флага демо-версии
Отлично, у нас есть некий флаг this.demo, значение которого проверяется и затем принимается решение о (не)применении ограничений. Анализатором этого флага узнаем, что во-первых, он имеет тип "boolean"
Описание флага
а во-вторых, что он инициализируется всего в одном месте, причем статусу программы безвариантно назначение значение демо-версии:
Инициализация флага
Декомпилируем метод, заменяем первую строчку на this.demo = false и компилируем код обратно. Сохраняем измененную сборку, проверяем.
Программа успешно "зарегистрирована"
Все ограничения на 5 строчек пропали, цель достигнута. Можно осваивать полезный инструмент для вычислений.
Просмотров: 845 | Комментариев: 2
Метки: исследование защиты, .NET
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
0101
(09.07.2022 в 06:57):
для npp+ есть похожий бесплатный плагин NppCalc
Petya
(14.06.2022 в 10:43):
А теперь самое смешное. Достаточно убрать из ссылки _demo, и получится версия, в которой авторы сделали это за нас.
Добавить комментарий
Заполните форму для добавления комментария