(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Защита от копирования

Источник: Accessoft

Такая защита необходима, если Вы решите помешать кому либо сделать копию вашей программы. Это в первую очередь касается коммерческих разработок. Хотя в случае с Access приложениями это несколько спорный вопрос: а нужна ли кому то Ваша программа кроме Вас и иногда заказчику, для которого она делалась? Ведь даже в таких, казалось бы, стандартных приложениях типа «Складской учет» довольно часто приходится что то править под конкретного заказчика. В этом особенность распространения баз данных. Тем не менее, рассмотрим способ, затрудняющий копирование программы. Речь пойдет о регистрации.

Чтобы нельзя было «воровать» программу, ее нужно привязать к конкретному компьютеру. Делается это при помощи специальных функций, определяющих уникальные параметры машины: номер винчестера, имя компьютера, процессор, имя пользователя и т. д. Общая схема распространения программ, используя сервис регистрации такая:

Разработчик свободно распространяет дистрибутив программы. При установке на компьютере и первом запуске программа опрашивает компьютер и формирует уникальную контрольную сумму, которая называется "Регистрационный номер". Затем программа осуществляет преобразование регистрационного номера в "регистрационный ключ".

"Регистрационный номер" предъявляется пользователю, а в ответ пользователь должен ввести "регистрационный ключ", который программа сравнит со своим.

Пользователь должен связаться с разработчиком и сообщить "регистрационный номер" программы.

Разработчик должен (запустив спец.процедуру регистрации) сообщить пользователю "регистрационный ключ".

Пользователь вводит "регистрационный ключ". Если он правильный, то программа запоминает его и при дальнейших запусках не опрашивает пользователя.

Такая схема позволяет сделать очень удобный сервис: сначала пользователь скачивает демо-версию программы, а затем, если она ему понравится, регистрирует ее и получает полнофункциональную версию.

В демо-режиме программу нужно в чем то ограничить. Для баз данных это обычно ограничение по количеству записей, или невозможность распечатки какого либо важного отчета. Реализуется это при помощи функции, которая запускается, например, при попытке распечатать отчет, и если программа не зарегистрирована, блокирует печать. То же и в случае с ограничением количества записей: если на событие формы «после обновления» повесить процедуру, проверяющую регистрацию и считающую максимальное количество записей в данной таблице (источник данных формы), то можно сделать условие - если записей больше чем можно, то свойству формы «Разрешить добавление» присвоить False и удалить «лишнюю» запись.

Form.AllowAdditions = False

Подобное ограничение реализовано в примере. Итак, схема такая:

Через макрос AutoExec запускаем функцию SetReferences (), которая в свою очередь запускает функцию isLicense, проверяющую регистрацию. Затем считывается номер винчестера, шифруется (fShifrDrv) и записывается в поле SystBase служебной таблицы tAdminCop.

В этом же макросе после запуска функции следует запуск стартовой формы frmStart. А вот в ней, при событии «Открытие» происходит сравнение номера винчестера с тем, что хранится в таблице. Совпадают - хорошо, нет - выход из приложения. Подобную процедуру можно повесить и на другие «важные» формы.

Если номер винчестера правильный, приложение открывается. Если isLicense=True, то полнофункциональный режим, иначе - демо.

Для регистрации программы (переход в полнофункциональный режим) служит функция RegKluch. Она шифрует регистрационный номер, сформированный программой. У разработчика должен быть «генератор» - программа с аналогичной функцией. Пользователь присылает разработчику регистрационный номер, разработчик запускает генератор, вводит номер в поле «№ версии», ставит курсор в поле «Ключ» - и соответственно получает его (на событие «фокус в поле» стоит процедура RegKluch). Затем он отсылает ключ пользователю.

Пользователь вводит ключ в поле формы регистрации, жмет «Зарегистрировать», и программа переходит в полноценную версию.

В прилагаемом примере показана только привязка к номеру винчестера. Однако, если пользователь установит другой и запросит заново пройти регистрацию? А вдруг, он врет, и на самом деле его попросил знакомый, установивший Вашу программу и желающий «на халяву» ей воспользоваться? Поэтому, данная система регистрации не отрицает, а, наоборот, требует наличия всех остальных средств защиты: администрирование, шифрование и MDE-интерфейс. Если, например, при формировании регистрационного номера учитывается много констант (например, имя компьютера, имя пользователя, название процессора и т.д.), то можно регистрационный номер составлять из частей. Например, цифры 1 - 4  - это имя компьютера, 5 - 9 - это номер винчестера и т. д. Можно конечно и более хитро, тут полная свобода творчества. Теперь, если Вам скажут, что поменяли винчестер, проверьте, остались ли прежними имя компьютера, имя пользователя, версия BIOS и т. д. Если все изменилось - стало быть, Вас обманывают (а может и вправду, поменяли все «железо»). Но, как известно, железо не меняют каждую неделю, и единичным случаям можно и поверить.

Теперь испытаем:

Запускаем приложение. На стартовой форме появился регистрационный номер, стало быть, считали и зашифровали номер винчестера. Так же видно, что программа не зарегистрирована. Об этом сообщает надпись красного цвета. Жмем на кнопку «Открыть». На появившейся форме видим предупреждение о максимальном количестве записей - 10. Проверяем: вводим новые записи, и на десятой добавление закрывается.

Теперь попробуем зарегистрировать программу. Открываем приложение «Генератор». Копируем из поля «Рег. номер» в буфер значение и вставляем его в соответствующее поле формы - генератора. При переходе на поле «Ключ» получаем его значение. Копируем его в буфер.

Теперь на стартовой форме приложения жмем кнопку «Регистрация». В появившейся форме вставляем из буфера в поле значение ключа, жмем «Зарегистрировать». Все, программа готова к полноценной работе. Чтобы убедится в этом, пробуем ввести записей в табличную форму больше 10.

Пример, как это все работает, Вы можете скачать ниже.

Ссылки по теме

Файлы для загрузки


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 31.10.2007 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
Microsoft Windows Professional 10, Электронный ключ
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
Microsoft Office 365 Профессиональный Плюс. Подписка на 1 рабочее место на 1 год
Microsoft 365 Apps for business (corporate)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Программирование в AutoCAD
Мастерская программиста
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100