Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Python: Общие вопросы > Как привязать скрипт к компьютеру? |
Автор: kulibinka 17.3.2009, 10:38 |
Добрый день. Ситуация следующая - сейчас пишу некий скрипт на питоне, потом через py2exe из него екзешник делаю. Но программа будет комерческая, поэтому нужно сделать привязку к железу - т.е. нужно сделать так чтобы пользователь получил некий ключ только под его компьютер, а при запуске прога должна проверить этот ключ, и если все ок продолжить работу, а иначе вырубаться. Как делаются такие привязки к железу? |
Автор: leneCaress 17.3.2009, 17:52 |
а какой уровень надежности защиты тебе требуется? откровенно говоря, мне не удается представить более мение нормальной защиты того что создает py2exe |
Автор: kulibinka 17.3.2009, 18:03 | ||
А какая разница py2exe или что-то еще? Ну например привязка к серийному номеру винчестера+ID процессора + еще что-то там для конкретной машини и все это захешировать. |
Автор: leneCaress 17.3.2009, 19:18 |
разница такая... если тебе нужна защита которую не сможет вскрыть простой советский человек - клиент, не анализируя исходники твоей системы и пр. это одно дело... другое дело, если тебе нужна защита от взлома.... это совсем другой уровень задачи... если нужно просто хоть чтото... то: 1. серийники ФС разделов получаются с помощью GetVolumeInformation() из вин апи. 2. можно использовать само разбиение дисокв, их модели 3. дата установки видны: в реестре HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate 4. на счет остального железа, см: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum 5. ид процессора получается, насколько я помню ассемблерными коммандами ТЕ из питоновского кода не получишь. 6. собственно дата генерации запроса на регистрацию и пр... |
Автор: badgopher 19.3.2009, 11:03 | ||
Получишь. Для этого достаточно написать Cython простейшую сишную функцию с асемблерной вставкой. |
Автор: kulibinka 19.3.2009, 11:10 | ||||
А код на Cython простейшей сишной функции с асемблерной вставкой не покажете? |
Автор: alex_smirnov 19.3.2009, 13:08 |
Если кто найдет заветную ассемблерную вставку, то можно без Cython'a, с помощью pyCode. |
Автор: bel_nikita 20.3.2009, 21:40 |
Привязка к железу не есть хорошо. Пользователь поменял ПК и как дальше быть? З.Ы.: А если привязываться к железу, то бери MAC-адрес сетевой карты - 100% уникальный идентификатор. |
Автор: pythonwin 21.3.2009, 08:36 | ||
а если две сетевые карты или карта сгорела? |
Автор: bel_nikita 21.3.2009, 18:47 |
pythonwin, Каждая сетевая карта содержит MAC-адрес. MAC-адрес - это 6-ти байтовый уникальный идентификатор, двух карт с одинаковым адресом в природе не существует. Если нет сетевой карты, то можно привязаться к идентификатору процессора (инструкция CPUID). Но опять же повторюсь - привязка к железу - это не есть хорошо. Лучше продумать какую-нибудь онлайн систему регистрации пользователя или на хэш каком-нибудь. |
Автор: leneCaress 21.3.2009, 21:48 |
да я бы больше сказала - любая система регистрации-ограничения страшно мешает и бесит хоть сколькото квалифицированных пользователей. НО... если уж делать регистрацию, то так чтобы она давала минимум помех пользователю и при этом сносно работала. (гарантирую - ни один пользователь не будет рад, если ваша программа вдруг откажется работать изза того что у него сгорела сетевуха или поставили новую... или апгрейднули комп... а ему вот прям сейчас нужна ваша прога, а на дворе ночь и вы спите ![]() не используйте хотябы тех параметров которые могут поменятся сравнительно легко - тот же мак-адрес.. и тем более ip адрес ихи хостнейм (были случаи что проги привязывались к этом)... я даже видела привязку к разрешению экрана. вообщем - не доходите до маразма ![]() |
Автор: pythonwin 23.3.2009, 07:16 | ||||
согласен, что привязка к ПК не правильно, о чем я и хотел сказать. но online регистрацию позволить себе может не каждый или тот кто может эта регистрация бесит leneCaress, могу посоветовать привязку ко времени использования - чтобы программа либо перестала работать или работала с ограничениями по прошествии какого-то времени |