Теперь посмотрим, что нужно сделать для установки сетевых функций защиты. Здесь мы не будем затрагивать остальных вопросов создания системы защиты, этому лучше посвятить отдельную статью.
Напомним, что электронные ключи предоставляют 2 метода защиты - внедрение вызовов функций API в исходный код программы (API-защита) и автоматическая защита исполняемого файла.
В том и в другом случае для сетевого ключа используется пара специальных функций типа Login и Logout. Первая из них выполняется при запуске защищенного приложения и служит для регистрации на сервере ключа. Вторая - при завершении работы приложения и служит для снятия регистрации.
Вот примеры вызова этих функций для Delphi:function nnkLogin( dwPrivateRD:longint ):integer; stdcall; external; function nnkLogout( dwPrivateRD:longint ):integer; stdcall; external; procedure nnkSetMode(dwFlags:longint; bProg:byte; dwID:longint; wSN:word; bVer:byte; wMask, wType:word ); stdcall; external; ………………………………………………. ………………………………………………. { ---- Trying to login onto dongle server ---- } nnkSetMode (dwFlags, bProg, dwID, wSN, bVer, wMask, wType ); nRet := nnkLogin ( PrivRD ); if ( nRet <> 0 ) then begin nRet := nnkLogout ( PrivRD ); Halt(255); end; { of IF } ……………………… ……………………… { ---- Logout from dongle server (End of Net session) ---- } nRet := nnkLogout ( PrivRD ); Halt(0); |
При API-защите вызовы функций Login и Logout встраиваются в код «вручную», в случае автозащиты задействуется определенная опция.
К сетевому ключу одновременно могут обращаться несколько копий защищенного приложения.
Поэтому для корректного разделения ресурсов ключа между приложениями, у копии сетевого приложения во время выполнения операций чтения/записи должен быть монопольный доступ к памяти ключа. Это достигается блокированием ключа (функция LockBeg) перед чтением/записью и разблокированием (функция LockEnd) после чтения/записи
Собственно на этом установку сетевых функций защиты можно считать законченной.
Единственное, что остается сделать – перед передачей программы пользователю записать в нужное поле памяти ключа число купленных лицензий.
В случае фирмы N, когда используется система управления лицензиями, схема установки сетевых функций защиты имеет некоторые особенности.
|