powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Защита ПО через привязку в железу
14 сообщений из 14, страница 1 из 1
Защита ПО через привязку в железу
    #37394891
shmelina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программа (будет) защищена через привязку к железу:
1. Юзер запрашивает из программы лицензионный ключ. Отправляет, например, шифровку по почте. В этой шифровке параметры его железа.
2. Получает лицензионный ключ (с шифрованными параметрами его железа, количеством юзеров, сроком использования и т.п.) и вводит его в программу. Программа работает.

Если юзер скопирует программу на другой комп, то программа естественно не заработает, т.к. параметры железа другие.

Все было бы хорошо, но хочется еще усилить защиту. Ведь как ломают программу? Ищут место, где проверяется защита и отключают его. Мне пришла идея, что нужно в лицензионный шифрованный файл добавить какую-то жизненно необходимую информацию, без которой программа не будет работать. Никак не могу придумать что туда добавить. Есть ли у кого опыт в этом вопросе?

О программе:
- двухзверка Delphi + Firebird
- менеджер лицензий на сервере
...
Рейтинг: 0 / 0
Защита ПО через привязку в железу
    #37394910
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shmelina Никак не могу придумать что туда добавить.Константы (вернее, значения переменных-констант). Дешифровать и присваивать в момент, когда потребовались, по одной.
...
Рейтинг: 0 / 0
Защита ПО через привязку в железу
    #37394954
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Защита ПО через привязку в железу
    #37395074
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
shmelina,

HASP смотрели?
...
Рейтинг: 0 / 0
Защита ПО через привязку в железу
    #37395093
Фотография DENIS_CHEL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNoseshmelina,

HASP смотрели?

+1

Привязка к "железу" ИМХО не эффективна, слишком уж ограничивает пользователя + HASP удобно прописывать количество пользовательских лицензий...

PS Правда HASP - это дополнительные накладные расходы + телодвижения по доставке ключа, освоению технологии...
...
Рейтинг: 0 / 0
Защита ПО через привязку в железу
    #37395137
shmelina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С HASP уже имел дело. Это менее удобно и мобильно, как для разработчика так и для пользователя. Есть опыт и железной и софтовой защите. Софтовая мне больше подходит.
...
Рейтинг: 0 / 0
Защита ПО через привязку в железу
    #37396010
Ashaik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. А если юзер поставит программу в виртуалку ?
2. А если юзер подключится к БД без вашей программы, а с помощью стороннего клиента - он сможет чтото сделать ?
...
Рейтинг: 0 / 0
Защита ПО через привязку в железу
    #37396016
Фотография DENIS_CHEL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ashaik2. А если юзер подключится к БД без вашей программы, а с помощью стороннего клиента -
он сможет чтото сделать ?

Администратор сервера баз данных всегда может "что-то" сделать...
...
Рейтинг: 0 / 0
Защита ПО через привязку в железу
    #37396155
shmelina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну поставит в виртуалку, ну ничего не поделаешь. Сначала я делал защиту от виртуалок, но теперь не буду, т.к. виртуализация серверов имеет место быть. Я понимаю, что таким образом можно будет распространять программу. Буду считать это издержками софтовой защиты. Но это все не теме.
...
Рейтинг: 0 / 0
Защита ПО через привязку в железу
    #37396402
majestic-mike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shmelina,

у виртуалок - своё "виртуализированное" железо... конечно какие то параметры типа MAC-адреса сетевой карты - можно и руками пробить, но в остальном - это как другой компьютер...

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

но всё равно - то к чему есть физический доступ - рано или поздно будет сломано.
...
Рейтинг: 0 / 0
Защита ПО через привязку в железу
    #37396450
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
majestic-mikeсобранные параметры железа можно использовать как ключ к алгоритму шфрования... допустим какого то блока памяти с промежуточным участком кода... а может - и пакер полноценный написать... причём не проверять соответствует ключ или нет... а брать - и расшифровывать... другое железо - в памяти мусор, и попытка выполнить данный код - заканчивается известным окном "приложение выполнило недопустимую операцию" - но тогда саму программу, или её отдельный модуль - придётся перекомпилировать для каждого пользователя... в случае какой-нибудь реализации этого механизма в виде "DLL-она и может быть ключом", со вложенной в неё информацией...

но всё равно - то к чему есть физический доступ - рано или поздно будет сломано.
Предположим, обходится элементарно - копированием уже распакованного exe-шника. Точно также, константы, если они выцарапываются через одну функцию с ID константы, "лечатся" заменой этой функции на простую табличную.

Вопрос не в том, чтобы сделать математически неломаемую программу - это практически нереально. Вопрос в том, от кого мы защищаемся. Если взломщику будет не лень ломать программу год, шансы на успех минимальны, а защищаться надо по полной - встраивая методы противодействия отладке и декомпиляции, используя для проверки кодов "железа" самописные функции, а не системные вызовы, проверяя неизменность исполняемого кода при выполнении, многократно копируя функции проверок и т.д. Потому что иначе все обращения к железу и проверки ключа в exe-файле поменяют на "пустышки" и привет.

Хуже всего дешифровке поддаётся логика программы. Грубо говоря, по результатам работы дизассемблера сложно отличить управляющий выполнением программы if от всегда истинного условия (утверждения). Как вариант, менять часть условий (и переписывать часть утверждений) с if(condition), if(!condition) на нечто типа if(XOR(condition, GetSecSalt<__LINE__>(ID))).
...
Рейтинг: 0 / 0
Защита ПО через привязку в железу
    #37404661
shmelina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поможет ли усложнить взлом программы, если в шифрованном файле (в котором привязка к железу) будет сериализован объект, который будет использоваться в работе программы.

ЗЫ: С сериализацией знаком поверхностно-теоритически, по этому могу нести чушь.
...
Рейтинг: 0 / 0
Защита ПО через привязку в железу
    #37405612
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shmelina,

Ещё раз: в какой модели угроз мы работаем? Кто взломщик? Что именно он не должен сделать? (Для примера, вроде было исследование, что keygen'ы люди используют охотней чем crack'и.)
От профессионала, само по себе, поможет чуть лучше чем никак - если код не запутан, банально ловятся все обращения к зашифрованному файлу, запоминаются ответы, подменяются функции обращения к зашифрованному файлу на обращения к файлу хакера, где эти ответы лежат (собственно, при незапутанном коде проще взять один файл и поменять функции получения кодов железа на возвращающие заданный результат; если нет сервера, на который программа лезет в обязательном порядке, этого достаточно). Простая истина: процессор исполняет незашифрованный код и работает с незашифрованными данными. Из чего следует, что а) все зашифрованные данные в какой-то момент будут расшифровываться, причём ключ расшифровывания должен храниться в самой программе; б) все данные доступны незашифрованными из-под отладчика достаточно низкого уровня.
...
Рейтинг: 0 / 0
Защита ПО через привязку в железу
    #37406413
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shmelina..Все было бы хорошо, но хочется еще усилить защиту. Ведь как ломают программу? Ищут место, где проверяется защита и отключают его....- двухзверка Delphi + Firebird- менеджер лицензий на сервере

собственно в чём вопросы?
если усилить - то и нужно применять сильные ломы. программно-аппаратная защита лучше чем программная. тут правильно выше писали - смотрите в сторону железячных ключей защиты. Если Вы сами никогда не ломали программы, не дебажились, не кричали эврика подскочив на стуле - то Вы увы не сделаете защиту сколь более-менее значимую. Или скажем по другому - если вашу защиту Вы сами не сможете обойти - то это можно назвать не совсем плохой защитой. Почему Вы считаете а) что кто то будет именно так думать или действовать? б) что кто то глупее чем вы? в) делаете Вы один. Ломать будут тысячи (если только это кому то нужно будет).

То что Вы предполагаете - замечательно, но к защите не имеет никакого значения. Ломают программы по разному. Исскуство взлома заключается в том, чтобы не ходить теми путями которые Вы уготовили. Посему вам достаточно защищаться от пионэров. Для мало-мальских знающих любой отладчик - Ваши алгоритмы будут вызывать приступы смеха.

у вас есть компонента работающая на сервере - вот и постарайтесь заюзать её. Это будет более значимая защита чем любые шифровки вами заюзанные.

удачи вам
(круглый)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Защита ПО через привязку в железу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]