Защита ПО от несанкционированного использования

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
CRobin
постоялец
Сообщения: 145
Зарегистрирован: 26.01.2016 11:15:39

Защита ПО от несанкционированного использования

Сообщение CRobin »

Задача тривиальная, нужно авторизовать пользователя по паролю. Сейчас делаю так: пароль сам по себе в ПО не вшит, вшит хэш в виде числа 8 байт, вычисляется по формуле с использованием бинарного представления строки-пароля, которую указывает пользователь. Формуля известна только мне. Далее в коде в одном месте перед запуском делаю проверку такого типа

Код: Выделить всё

if not ( checkval == getCode(password) ) then Exit;


Вопрос. Достаточно ли таких мер для присечения несанкционированного использования? Какие варианты взлома можно предположить? Нужно ли делать такую проверку регулярно или достаточно один раз после запуска приложения?
Аватара пользователя
DYUMON
постоялец
Сообщения: 234
Зарегистрирован: 11.03.2009 12:32:54
Контактная информация:

Сообщение DYUMON »

так эта проверка и откручивается на раз. если у тебя это только одна проверка. а вот если ты ты её в каждую процедуру засунешь тогда взлом усложнится.
resident
энтузиаст
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Сообщение resident »

CRobin писал(а):Достаточно ли таких мер для присечения несанкционированного использования?

У вас были случаи несанкционированного исполь.?

CRobin писал(а):Какие варианты взлома можно предположить?

http://www.ozon.ru/context/detail/id/2815570/
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

DYUMON писал(а):а вот если ты ты её в каждую процедуру засунешь тогда взлом усложнится.

ничего особо сложного нет. Даже я бы вскрыл, если бы чуть получше владел отладчиком. проверок должно быть несколько, некоторые фальшивые, но это не должно быть понятноу. Так же проверка должна вызываться в любой внезапный момент времени и быть неочевидной. Желательна привязка к основному оборудованию.

Хотя, если сильно надо, взломают и так. При особой необходимости, отвязывают даже от аппаратных ключей.
Аватара пользователя
McLion
постоялец
Сообщения: 332
Зарегистрирован: 06.02.2015 17:41:00

Сообщение McLion »

в паскале? Есть разве такое?
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Сообщение Ichthyander »

Лучшая защита - это невыгодное для хакера соотношение цены на программу к трудоемкости взлома. Желательно использовать более одного вида защиты, но сильно заморачиваться не стоит. Лучше уделить больше времени на развитие функционала и увеличение пользователей с одновременным уменьшением цены и добавлением работоспособной бесплатной версии программы, которая бы покрывала хотя бы 50% основных потребностей более 50% потенциальных пользователей продукта...
CRobin
постоялец
Сообщения: 145
Зарегистрирован: 26.01.2016 11:15:39

Сообщение CRobin »

Лекс Айрин писал(а):ничего особо сложного нет. Даже я бы вскрыл, если бы чуть получше владел отладчиком.

разве с бинарного файла можно восстановить логику алгоритма проверки?

McLion писал(а):в паскале? Есть разве такое?

да, ошибся, нет конечно
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

CRobin писал(а):разве с бинарного файла можно восстановить логику алгоритма проверки?


а) да, можно. Бинарный файл легко превратить в ассемблерный код. При особом желании, можно даже сделать преобразование в текст на ЯВУ.
б) Это не нужно, если проверка одна -- меняется лишь (в подавляющем большинстве случаев) 1 байт (бит) в коде и любой серийник/хеш, кроме правильного, будет считаться легитимным.

Ну и... как вы думаете, за счет чего появляются генераторы серийных номеров?
CRobin
постоялец
Сообщения: 145
Зарегистрирован: 26.01.2016 11:15:39

Сообщение CRobin »

как выходить из ситуации? если проверка будет не регулярной это усложнит ее локализацию?
RusDeveloper
новенький
Сообщения: 92
Зарегистрирован: 06.04.2016 11:02:43

Сообщение RusDeveloper »

CRobin писал(а):как выходить из ситуации? если проверка будет не регулярной это усложнит ее локализацию?

одна проверка - правим 1 байт, много проверок - правим много байтов. а локализацию проверок усложнит разный код проверок, отсутствие отладочной информации и символьных строк в exe-шнике (dll-ке)

Добавлено спустя 3 минуты 9 секунд:
что за приложение, если не секрет, Вы пишите?
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

CRobin писал(а):как выходить из ситуации?


1, конечно же диверсификация проверок... второе отложенная "казнь" нарушителя. например, вылет через определенное время по ошибке (что, в принципе, не рекомендуется из-за падения репутации) или отказ части функционала. (печать, сохранение...) Тогда прога превращается в демку.

RusDeveloper писал(а):отсутствие отладочной информации и символьных строк в exe-шнике (dll-ке)


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

Да и потом, мало какой проге нельзя найти бесплатный (свободный, условно-бесплатный) аналог.
CRobin
постоялец
Сообщения: 145
Зарегистрирован: 26.01.2016 11:15:39

Сообщение CRobin »

RusDeveloper писал(а):что за приложение, если не секрет, Вы пишите?


Приложение не коммерческое, для частного использования, нужно защитится от взлома в ситуации когда украден носитель.
MysticCoder
постоялец
Сообщения: 154
Зарегистрирован: 14.09.2013 00:20:28

Сообщение MysticCoder »

Если для частного, то делай одну проверку как ты предложил и пакуй экзешник криптором каким нить, типа ASPack. 99 кулхацкеров которые позарятся на твою программу это отвадит.
RusDeveloper
новенький
Сообщения: 92
Зарегистрирован: 06.04.2016 11:02:43

Сообщение RusDeveloper »

CRobin писал(а):
RusDeveloper писал(а):нужно защитится от взлома в ситуации когда украден носитель.

обычно крякеры не вороют носители :mrgreen: может тогда не изобретать велосипед, а свое незащищенное приложение шифровать другой прогой?
CRobin
постоялец
Сообщения: 145
Зарегистрирован: 26.01.2016 11:15:39

Сообщение CRobin »

Украден носитель это выемка сервера на ДЦ, при чем тут крякеры и кулхацкеры не очень ясно.
Ответить