О защите программы и ограничении срока работы - Посоветовать

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
moshkin
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 03.12.2002 (Вт) 15:01
Откуда: Russia

О защите программы и ограничении срока работы - Посоветовать

Сообщение moshkin » 02.08.2005 (Вт) 15:31

Есть задача - надо чтобы программу:
- нельзя было свободно скопировать на другой комп;
- чтобы можно было ограничинить срок ее работы по дате;
- чтобы было ограничение по количеству запусков;
- чтобы можно было удаленно разрешить работать ей на другом компе;
- чтобы можно было удаленно продлить срок работы, изменить количество запусков;

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

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

Защиту от взлома пока не продумываю. Если надо будет то прикручу
потом. Немного читал про это. Но пока не актуально. Главное чтобы
элементарными действиями (копирование файлов, редактирование) нельзя было обмануть программу.

Привязываться вроде как достаточно по номеру жестного диска, можно
конечно еще по чему-нибудь. (версия операционки и номер сервис-пака)

Все данные хранить в ини-файле. Вот только вроде получается надо
во-первых шифровать данные тот же передаваемый ключ. А во вторых надо подтвердить что это мои данные, то есть надо что-то типа цифровой подписи ставить в ини файл. Чтобы нельзя было изменить данные.
Собственно вопросы:
1. Насколько вообще работоспособен такой способ? Может я чего-то не
увидел и его можно легко обойти?
2. алгоритм шифрования ключа (содержащего информацию о сроках и проч.) есть что-нибудь готовое, чтоб и не очень сложно, но и не стыдно было. Что есть уже классического на эту тему?
3. Подтверждение подлинности информации. Как поставить цифровую
подпись? Теорию помню слабо. Есть ли готовые примеры?

Спасибо за внимание. Сам вижу что много написал, но хочется
посоветоваться.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 02.08.2005 (Вт) 15:43

На счет серийного номера винта читай здесь. Код нужно генерировать не только опираясь на него (а может и вообще не опираясь), но и на кучу других параметров...
Все данные хранить в ини-файле

Вообще, данные о регистрации там (и в реестре) лучше не хранить, все легко просматривается RegMon-ом и FileMon-ом.

Вообщем ищи - в НЕТе полным-полно инфы на эту тему.

з.ы. Но помни: на каждую хитрую ж.пу найдется х.. с резьбой - то есть все равно защиту сломают...
А я все практикую лечение травами...

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 02.08.2005 (Вт) 19:20

Советую - чтобы проверить защиту проги, пришли экзешник мне ajaxvs@mail.ru, если я завтра не подохну на операционном столе, то 99.9999% сломаю твою защиту +_+. Естесственно, сообщу, в чем ошибка.
Все бесплатно - я добрый фей +_+

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: О защите программы и ограничении срока работы - Посовето

Сообщение Andrey Fedorov » 03.08.2005 (Ср) 8:03

moshkin писал(а):Я знаю что ее легко изменить, но вроде как нет смысла работать если дата другая - на всех документах будет стоять не правильная дата.


Я бы из этого и исходил. Там ведь кроме названия даты наверное и название/реквизиты организации должны печататься? Ну вот и передавай их пользователю в том-же зашифрованном файле. Это избавит от полноценного использования программы на стороне. И не будет необходимости привязываться к чему либо да и защищаться тоже.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

moshkin
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 03.12.2002 (Вт) 15:01
Откуда: Russia

Сообщение moshkin » 03.08.2005 (Ср) 8:22

2 twister:
серийник винта именно с того топика и научился брать. Собственно там последний пост мой. Согласен что надо бы и еще параметры учитывать. А вот про хранить в другом месте пока не очень хочется. Наоборот хочу хранить в явном виде, даже не зашифрованном, но подтверждать аутентичность информации ини файла например в последней строке. Чтоб пользователь видел к чему привязано, но изменить не мог. Хочется так.
2 AjaxVS
Удачи! Я не сомневаюсь что ее можно будет легко сломать. Я уже написал, что пока защиту от взлома не делаю. Пока только защита от опытного пользователя без средств дебаггинга. С остальными я договорюсь.
2 Andrey Fedorov:
Это интересная идея, насчет встраивания названия организации в код (ну или в зашифрованном виде в ключ). Действительно просто и не обойдешь. Даже если только колонитиулы в отчетах поставить с названием конторы, то уже не заберешь в другую организацию.

В общем я понимаю, что серьезных промахов в таком алгоритме нет. Буду делать так как сказал.
Всем спасибо за прочтения и размышления.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.08.2005 (Ср) 8:48

Если хочешь, могу прислать пример одной своей программы, в которой используется такой подход ("вшитые" в ключ реквизиты организации, которые печатаются на выходных документах).
Lasciate ogni speranza, voi ch'entrate.

moshkin
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 03.12.2002 (Вт) 15:01
Откуда: Russia

Сообщение moshkin » 03.08.2005 (Ср) 9:00

Конечно хочу! Хоть посмотреть как люди пишут. Если не жалко.
Спасибо.
Жаль только что пока позаниматься VB нет времени. Пришли новые компы раз, и сдохли после грозы порты в коммутаторе, пока все рабтает немного не в штатном режиме два. Но уже очень интересно. Жду.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.08.2005 (Ср) 10:01

Ушло на мыло.
Lasciate ogni speranza, voi ch'entrate.

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 04.08.2005 (Чт) 9:28

alibek писал(а):Ушло на мыло.


если не сложно выложи на форум

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 04.08.2005 (Чт) 9:41

Нет, на паблик выкладывать не хочу.
Если пообещаешь не распространять, могу скинуть мылом.
Lasciate ogni speranza, voi ch'entrate.

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 04.08.2005 (Чт) 10:02

alibek писал(а):Нет, на паблик выкладывать не хочу.
Если пообещаешь не распространять, могу скинуть мылом.


Обешаю
Просто в данный момент занимаюсь такой же проблемой.
Скинь если не сложно или хотябы кусок кода.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 65

    TopList