С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/23: Рейтинг темы: голосов - 23, средняя оценка - 4.70
1 / 1 / 0
Регистрация: 10.06.2019
Сообщений: 21

Алгоритм для лицензии

21.07.2021, 11:17. Показов 5057. Ответов 9

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.

Мне нужно сделать проверку лицензии в программе.

Как я это вижу.
Пользователь получает ключ вместе с программой. Когда он её запускает, то программа на сервер отправляет Mac компьютера и, введённый пользователем, ключ на сервер. Сервер сравнивает ключ и Mac с тем, что находится в БД и возвращает ответ true/false.

Проблема заключается в том что:
1) Если зареверсинженерить программу у пользователя и прочитать код на ассемблере, то можно легко увидеть, что после проверки условия, если получает 1,то программа начинает работать, если нет, то заканчивает.
2) Можно вовсе убрать строчку с проверкой ключа

Как я могу от этого обезопасить свою программу?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.07.2021, 11:17
Ответы с готовыми решениями:

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

Файл лицензии программной лицензии 1С 8.2
Привет! Помогите найти файл лицензии программной лицензии 1С. Лицензия ставилась с удаленного компа на сервер 1С администрирования....

Лицензии для Windows Server 2016 для работы с 1С
Мы купили комплектующие для сервера 1С. Теперь думаем, какую ОС (Standard или Essentials) и сколько лицензий для него купить. С 1С будут...

9
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
21.07.2021, 12:19
Цитата Сообщение от GribBob Посмотреть сообщение
Как я могу от этого обезопасить свою программу?
Наверное, никак. Посмотрите вокруг, "защищенные" программы ломанные на трекерах валяются.
1
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
21.07.2021, 14:14
Цитата Сообщение от Croessmah Посмотреть сообщение
Наверное, никак. Посмотрите вокруг, "защищенные" программы ломанные на трекерах валяются.
Зато можно сделать процесс взлома сложным и/или геморройным.
Возможно ли вытащить информацию из приложения(думаю да) и как защитить данные от такого действия?
С другой стороны стоит ли вообще париться насчет взлома программы? Если это какой-то локальный и дешевый проект (типа БД для парикмахерской) который используется практически только в ней, то ее скорее всего даже пытаться взламывать не будут. Кому она сдалась? Другое дело если бы ты делал прорывное ПО, которое в итоге попадет на миллионы компьютеров или какую-нибудь GTA5.
0
Just Do It!
 Аватар для XLAT
4202 / 2658 / 654
Регистрация: 23.09.2014
Сообщений: 8,965
Записей в блоге: 3
21.07.2021, 15:17
Цитата Сообщение от GribBob Посмотреть сообщение
Как я могу от этого обезопасить свою программу?
есть 100% способ:
вынести часть функционала программы на сервер.

Цитата Сообщение от Croessmah Посмотреть сообщение
Посмотрите вокруг, "защищенные" программы ломанные на трекерах валяются
часто авторы сами кряки распространяют, это у них называется продвинутый способ пиара.
0
Модератор
Эксперт Java
 Аватар для alecss131
2848 / 1356 / 404
Регистрация: 11.08.2017
Сообщений: 4,330
Записей в блоге: 2
21.07.2021, 16:20
Старайтесь как можно меньше применять стандартные функции (особенно API-шные) и компоненты VCL. Так что Assembler, Assembler и еще раз Assembler
Применяйте нестандартный способ ввода пароля
Не храните введенный код в одном месте
Не храните введенный код открытым текстом
Ни в коем случае не анализируйте код сразу после его ввода
Не проверяйте код только в одном месте и не пишите для проверки функцию
Не проверяйте пароль одним алгоритмом
Ни в коем случае не предпринимайте никаких действий после проверки
Отвлекающие маневры
Не храните результатов проверки в переменной и не используйте ее для явного ограничения функций незарегистрированной программы
Не храните результатов проверки на диске или в реестре
Не определяйте дату и время стандартными способом
Не стоит хранить что-либо секретное в файлах или реестре
Не храните ничего важного открытым текстом, особенно сообщения типа "Это незарегистрированная версия ...", "Введенный пароль не верен ..."
1
1 / 1 / 0
Регистрация: 10.06.2019
Сообщений: 21
21.07.2021, 16:46  [ТС]
есть 100% способ:
вынести часть функционала программы на сервер.
К сожалению, вынести какой-либо функционал на сервер, кроме проверки ключа, невозможно.

Добавлено через 19 минут
Может есть какие-то способы, которые запрещают дизассемблировать программу вообще?
Даже, если только в теории, но тогда, где можно про это почитать?
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
21.07.2021, 17:31
Ну вообще говоря, можно смотреть дизассемблированные процессы запущенной на виртуальной машине операционной системы целиком. Так что смысла смотреть в этом направлении нет. Ответы сервера тоже могут отлавливаться/подменяться, так что ждать приёма просто true/false глупо, нужно проверять что-то нетривиальное и шифрованное.

Добавлено через 2 минуты
Но опять же, если полезность продукта средненькая, то заморачиваться с суперзащитой для него - "овчинка выделки не стоит"
0
1 / 1 / 0
Регистрация: 10.06.2019
Сообщений: 21
21.07.2021, 17:54  [ТС]
Понятно... Спасибо тогда за советы
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
21.07.2021, 20:16
Цитата Сообщение от XLAT Посмотреть сообщение
часто авторы сами кряки распространяют, это у них называется продвинутый способ пиара.
Емнип, в игре Game Dev Tycoon сделали очень просто ломающуюся защиту.
Но, еще добавили вторичную приколюху - если игра ломанная,
то ближе к концу из-за чудовищного уровня пиратства игру пройти невозможно.
И сидели себе тихо какое-то время, читая жалобы пользователей на форуме.
1
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
28.07.2021, 11:32
Лучший ответ Сообщение было отмечено GribBob как решение

Решение

Цитата Сообщение от GribBob Посмотреть сообщение
Может есть какие-то способы, которые запрещают дизассемблировать программу вообще?
вы изначально не в том направлении начали двигаться.
причём здесь дизассемблер?
"запретить" дизассемблирование возможно только в одном случае - если файл не имеет структуры PE.
но тогда и загрузчик windows не сможет загрузить этот файл в память.

во-первых, ваша программа должна быть написана так, чтобы от дизассемблирования не было никакого толка - чтобы реверсер увидел только обычные структуры, предопределенные функции и прочую мишуру от которой никакого толку без данных.
во-вторых, взлом программ осуществляется в динамике, т.е. тогда, когда ваша программа загружена в память и работает, и к ней есть данные.
обычно хакер покупает ключ/лицензию и дебажит её от ntdll.dll до OEP, прокладывая трассу.
далее из этой трассы убирается всё лишнее, пересобирается импорт и выкладывается ломаный файл.

и вот здесь вам и нужно думать над своей защитой, которая называется anti-debug.
для примитива - забейте в гугле anti-debug и смотрите примеры как скрывают Nt функции от отладчика.
такой способ подойдёт для защиты от мамкиных кулхацкеров, которые только и могут всего лишь открыть отладчик и ни черта не понять что там написано.
для более продвинутого anti-debug'а создают виртуальные машины и замусоривают код обфускацией.
в таком случае добраться до OEP могут только единицы.

понятное дело, что вирт вы не напишите, поэтому если ваш проект некомерс, скачайте vmprotect 3 версии и накройте вашу прогу защитой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.07.2021, 11:32
Помогаю со студенческими работами здесь

Лицензии для Webuserов
Что то я сегодня с гуглом не могу найти общего языка... Вопрос 1: Нужно ли платить айбиэму за WebUserов? Т.е. за тех, который...

Пакет документов для подтверждения лицензии
Планируем приобрести в организацию несколько пакетов ms office. Надыбал магазин, который продаёт новые, не вскрытые OEM версии 2007 и 2010г...

Подтверждение лицензии Windows 10 (для проверяющих)
Друзья, доброго времени суток. Стояла на ноутбуке лицензия windows 7. Ключ продукта на наклейке соответствовал ключу в системе, если...

Какие лицензии нужны для управления истребителем?
Здорова. Вопрос следующий: Какие лицензии, сертификаты и т.д. нужны для управления гражданскими истребителями моделей Saker S1, L-39 Civil...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru