ADN Club > Autodesk App Store (ранее Autodesk Exchange Apps)

Программная защита и авторизация приложений магазина.

(1/22) > >>

Виталий:
Тема создана для обмена опытом и помощи в реализации защиты приложений магазина. Обсуждение методов защиты для разных целей: разовой продажи, помесячной арендной платы, обновления и т.д. 

Виталий:
Вот код на лиспе в открытом доступе в интернете. Можно легко достать номер диска. Вопрос в том насколько это надежный неизменяемый номер, железно ли будет работать данная функция на всевозможных компьютерах. Например, есть программы, которые  меняют номер диска. Если можно менять номер диска, если речь идет об одном и том же значении, то это все ненадежно.
 
Также есть функция лиспа в Брикскаде
--- Код - Auto/Visual Lisp [Выбрать] --- (get_diskserialid)    returns a 9-digit unique id string, based on the 1. hard disk serial number;
   if the hard disk serial number can not be obtained in very rare caes, the
   9-digit unique id string is based on the serial number of the 1. partition;
   this id string provides a licensing/hardlocking feature for Lisp applications

Можно ли это реализовать на Autolisp'е и вообще на сколько это надежней результата в представленном ниже коде.


--- Код - Auto/Visual Lisp [Выбрать] ---(defun #Asmi_Get_Drive_Serial(Path / fsObj hSn abPth cDrv)  (vl-load-com)  (if    (and      (setq fsObj(vlax-create-object "Scripting.FileSystemObject"))      (not        (vl-catch-all-error-p          (setq abPth(vl-catch-all-apply 'vlax-invoke-method                       (list fsObj 'GetAbsolutePathName Path))                       ); end setq                   ); end vl-catch-all-error-p                ); end not          ); end and    (progn      (setq cDrv(vlax-invoke-method fsObj 'GetDrive        (vlax-invoke-method fsObj 'GetDriveName abPth        ); end vlax-invoke-method      );end vlax-invoke-method     ); end setq     (if       (vl-catch-all-error-p          (setq hSn(vl-catch-all-apply 'vlax-get-property            (list cDrv 'SerialNumber))))            (progn              (vlax-release-object cDrv)              (setq hSn nil)            ); end progn       ); end if    (vlax-release-object fsObj)    ); end progn   ); end if  hSn  ); end of #Asmi_Get_Drive_Serial 
Очень жду ваше мнение. Получаю большую пользу от ваших мыслей. Как устраивать саму защиту не пишу, но думаю эта тема полезна будет для многих. Потом многие разработчики Автодеска на базе этих знаний будут клепать свои защиты, так как в большинстве случаев стоимость приложений Магазина мизерная, гораздо ниже стоимости защиты если ее просто покупать.

Алексей Кулик:
HDD может быть заменен в любой момент. Это раз. Второе: попадаются админы, запрещающие обращение к Scripting.FileSystemObject от непонятных приложений и дополнений.
Я уже говорил в http://adn-cis.org/forum/index.php?topic=2583.0 и повторю еще раз: привязка к какому-либо одному параметру не даст ничего.
Если приложение планируется распространять через Autodesk Exchange Apps, то почти вся головная боль о лицензионности дополнения ложится на плечи Autodesk (мне так кажется).

Александр Ривилис:

--- Цитата: Виталий от 22-03-2015, 19:33:37 ---Можно легко достать номер диска. Вопрос в том насколько это надежный неизменяемый номер, железно ли будет работать данная функция на всевозможных компьютерах.
--- Конец цитаты ---
Совершенно ненадежный. Кроме того, что написал Алексей, изменить серийный номер логического диска HDD не представляет никакого труда.
Не путать с номером, который присваивается производителем диску (HDD Firmware Serial Number) и который изменить очень сложно, часто невозможно. Но и прочитать его не так просто, а средствами VisualLisp просто невозможно.

Александр Ривилис:
На всякий случай если попытаешься пойти по этому пути - вот исходники на C++ (т.е. теоретически можно всунуть в arx-файл) для получения MAC-адреса и серийного номера HDD (физического диска, а не логического раздела): http://www.codeproject.com/Articles/319181/Haephrati-Searching-for-a-reliable-Hardware-ID

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии