Привязка к железу
Иногда в программах необходимо использовать возможность проверки типа носителя или его серийный номер. Причины могут быть разными от банального контроля устройств в системе до средств защит использующих привязку к железу. Сейчас я вам покажу как с помощью API реализовать эту простую задачу.
Нам понадобится всего 2 API — функции:
- GetDriveType — определяет и возвращает тип носителя;
- GetVolumeInformation — определяет информацию о носителе, среди которой содержится серийный номер.
Рассмотрим описание этих функций для С++ и Delphi. Первой будет функция GetDriveType, она очень простая и использует всего один параметр — указатель на том. Например «c:\»,»a:\» и т.д. Функция возвращает одно из следующих значений:
- DRIVE_UNKNOWN — 0 : диск неопределен/не существует
- DRIVE_NO_ROOT_DIR — 1 : неверный путь/ путь не указывает на том
- DRIVE_REMOVABLE — 2 : тип устройства определяется как съемный (дискета, флешка и т.д.)
- DRIVE_FIXED — 3 : тип устройства — фиксированный диск (жесткий диск)
- DRIVE_REMOTE — 4 : тип устройства — удаленный(сетевой) диск
- DRIVE_CDROM — 5 : это устройство CD-ROM
- DRIVE_RAMDISK — 6 : виртуальный диск, созданный в оперативной памяти
Delphi
Замечание: Если в качестве параметра указать для С/С++ NULL, а для Delphi — nil то тип устройства будет определяться для текущего диска (с которого была запущена программа).
А теперь взглянем на функцию GetVolumeInformation. Тоже достаточно простая функция, однако использует параметров значительно больше.
Delphi
Замечание: Если в качестве первого параметра указать для С/С++ NULL, а для Delphi — nil то функция будет выполняется для текущего диска (с которого была запущена программа).
Ну а теперь собственно для пущего интересу приведу пример, как привязать программу к устройству. В данном примере будем привязывать программу к флешке. Смотрим пример:
Delphi
Замечание: Может возникнуть вопрос, а как узнать серийник диска, чтобы знать с чем сравнивать? Очень просто, для этого пишем тестовую прогу, в которой пишем следующий код:
Источник
Привязка к железу
Иногда в программах необходимо использовать возможность проверки типа носителя или его серийный номер. Причины могут быть разными от банального контроля устройств в системе до средств защит использующих привязку к железу. Сейчас я вам покажу как с помощью API реализовать эту простую задачу.
Нам понадобится всего 2 API — функции:
- GetDriveType — определяет и возвращает тип носителя;
- GetVolumeInformation — определяет информацию о носителе, среди которой содержится серийный номер.
Рассмотрим описание этих функций для С++ и Delphi. Первой будет функция GetDriveType, она очень простая и использует всего один параметр — указатель на том. Например «c:\»,»a:\» и т.д. Функция возвращает одно из следующих значений:
- DRIVE_UNKNOWN — 0 : диск неопределен/не существует
- DRIVE_NO_ROOT_DIR — 1 : неверный путь/ путь не указывает на том
- DRIVE_REMOVABLE — 2 : тип устройства определяется как съемный (дискета, флешка и т.д.)
- DRIVE_FIXED — 3 : тип устройства — фиксированный диск (жесткий диск)
- DRIVE_REMOTE — 4 : тип устройства — удаленный(сетевой) диск
- DRIVE_CDROM — 5 : это устройство CD-ROM
- DRIVE_RAMDISK — 6 : виртуальный диск, созданный в оперативной памяти
Delphi
Замечание: Если в качестве параметра указать для С/С++ NULL, а для Delphi — nil то тип устройства будет определяться для текущего диска (с которого была запущена программа).
А теперь взглянем на функцию GetVolumeInformation. Тоже достаточно простая функция, однако использует параметров значительно больше.
Delphi
Замечание: Если в качестве первого параметра указать для С/С++ NULL, а для Delphi — nil то функция будет выполняется для текущего диска (с которого была запущена программа).
Ну а теперь собственно для пущего интересу приведу пример, как привязать программу к устройству. В данном примере будем привязывать программу к флешке. Смотрим пример:
Delphi
Замечание: Может возникнуть вопрос, а как узнать серийник диска, чтобы знать с чем сравнивать? Очень просто, для этого пишем тестовую прогу, в которой пишем следующий код:
Delphi
Ссылки по теме
Помощь |
Задать вопрос | |
программы | |
обучение | |
экзамены | |
компьютеры | |
ICQ-консультанты | |
Skype-консультанты | |
Общая справка | |
Как оформить заказ | |
Тарифы доставки | |
Способы оплаты | |
Прайс-лист | |
Карта сайта | |
О нас |
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО. На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям. Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе. Источник Привязка программы к железу + онлайн верификацияДанную статью я представляю вниманию новичков для обеспечения защиты своего софта. Защита реализуется путем привязки к железу компа + онлайн проверка. Наша защита будет состоять из нескольких частей:
Итак… с структурой мы разобрались, теперь нужно определиться к каким параметрам мы будем осуществлять привязку. Мы сделаем это через WIN Api функции:
Что бы облегчить вам жизнь, я приведу готовые функции: function UserName: string; function ComputerName: string; function GetHard: String; GetVolumeInformation(‘C:\’,VolumeName,MAX_PATH,@VolumeSerialNo, function GetMem: String; MyMem.dwLength:=SizeOf(MyMem); Итак, мы получили всю интересующую нас информацию. Теперь мы склеим эти данные в hex строку, что бы конечный пользователь не знал, какие параметры мы используем. function StringToHex(str1,Separator:String):String; Склеим все параметры — function getSerial:string; Вывод полученной строки в TEdit procedure TForm2.Button1Click(Sender: TObject); Мои поздравления, готов модуль получения serial кода. Генератор регистрационного ключа Полученый серийник надо шифрануть, что бы жизнь медом не казалась. Используйте любые методы, я приведу пример MD5. function getKey(Serial: string):string; Теперь кидаем на форму два Tedit и кнопку. Пишем основную программу. 1) Кидаем все функции сбора инфы о компе и генерации серийника из первого модуля. При валидности рег ключа — RegOk, если нет, то посылает. Вот и все Осталось вам придумать, куда прописывать то, что программа зарегистрирована. Будут вопросы — пишите, но я тут разжевал все до процедур онклика. Источник Привязка приложения к железуПривязка приложения к железу Привязка программы к железу Привязка к железу, как сделать, чтобы не слетала после переустановки Windows? Сегодня кто-то потерял ключи от загона с говорящими абы как?) Серьёзно. Уже который новый аккаунт с такой постановкой вопроса, что хоть стой, хоть падай. TheArti28, ты тролль новорождённый или реально это спрашиваешь? TheArti28, У меня есть машина. Раньше ездила, сейчас перестала. Что мне нужно сделать, чтоб она поехала? заменил только материнку и процессор,приложения работает но пишет «демо режим»,это приложения для обрабатывания фото и после того как заменил комплектующие на фото остается надпись «демо режим» типа слитела лицензия которая была привязана к комплектующим Добавлено через 2 минуты символы какие-то,могу сбросить,посмотришь Добавлено через 23 минуты Да,потому что приложения уже не поддерживается,купить лицензию уже не возможно,раньше я покупал лицензию Добавлено через 1 час 20 минут TheArti28, в приложении есть кнопка «Активировать» или что-то подобное? Добавлено через 18 секунд TheArti28, в приложении есть кнопка «Активировать» или что-то подобное? Добавлено через 18 секунд Мне делать что-ли нечего? Добавлено через 45 секунд Привязка к железу Привязка к железу [Критика] Привязка к железу Привязка приложения к файлу с определенным расширением Создание, привязка и проверка цифровой подписи для приложения Источник Привязка к железуИногда в программах необходимо использовать возможность проверки типа носителя или его серийный номер. Причины могут быть разными от банального контроля устройств в системе до средств защит использующих привязку к железу. Сейчас я вам покажу как с помощью API реализовать эту простую задачу. Нам понадобится всего 2 API — функции:
Рассмотрим описание этих функций для С++ и Delphi. Первой будет функция GetDriveType, она очень простая и использует всего один параметр — указатель на том. Например «c:\»,»a:\» и т.д. Функция возвращает одно из следующих значений:
DelphiЗамечание: Если в качестве параметра указать для С/С++ NULL, а для Delphi — nil то тип устройства будет определяться для текущего диска (с которого была запущена программа). А теперь взглянем на функцию GetVolumeInformation. Тоже достаточно простая функция, однако использует параметров значительно больше. DelphiЗамечание: Если в качестве первого параметра указать для С/С++ NULL, а для Delphi — nil то функция будет выполняется для текущего диска (с которого была запущена программа). Ну а теперь собственно для пущего интересу приведу пример, как привязать программу к устройству. В данном примере будем привязывать программу к флешке. Смотрим пример: DelphiЗамечание: Может возникнуть вопрос, а как узнать серийник диска, чтобы знать с чем сравнивать? Очень просто, для этого пишем тестовую прогу, в которой пишем следующий код: Источник Adblockdetector |