Как из флешки создать USB-ключ доступа к Windows 7 и 8.1 системными средствами
Как из флешки создать USB-ключ доступа к Windows 7 и 8.1 системными средствами
Всем привет, продолжаем изучать безопасность компьютера. Ранее я вам рассказал как как взломать пароль sa в sql, сегодня наоборот расскажу как немного защититься. Сегодня мы научимся создавать usb ключ защиты средствами Windows, нужны они для доступа к компьютеру и если он не вставлен, то вас не пустит. На рынке много ПО, совсем не бесплатного, которое делает эту задачу, но зачем за что-то платить, когда все уже есть встроенное в Windows , тем более у вас на это уйдет не так много времени.
usb ключ для windows
Давайте разберемся, что мы делаем и для чего. После всех проделанных действий у нас будет создан usb ключ для windows, из обычной флешки. Он будет выступать ключом входа в систему, если еще проще. Когда он вставлен в компьютер, то вы можете залогиниться, если нет, то не сможете войти, наличие пароля на вход не обязательно.
Выберите флешку поменьше, так как на ней будет небольшой файл-ключик, зачем флешку так не рационально использовать, так как ей потом особо не попользуешься, да и вирусы могут попасть, если вы конечно не произвели Защиту флешки от вирусов. Может у вас найдется в закромах флеха на 2 гб, хотя это щас уже почти раритет.
Нажимаем Win+R у вас откроется окно Выполнить. Введите в нем
У вас откроется оснастка Управление дисками.
Как видите у меня есть флешка 30 гб, у вас это может быть конечно другая .
Щелкаем по ней правым кликом и выбираем пункт Изменить букву диска или пусть к диску.
Тут нам для флешки, а точнее будущего usb защитника, нужно изменить букву на А.
У меня получилось вот так.
У вас откроется окно Защита БД учетных записей Windows, тут вам нужно будет нажать обновить, для того чтобы сделать usb ключ для windows.
Нажимаем кнопку обновить. В итоге у вас откроется окно Ключ запуска, в нем ставим переключатель на Хранить ключ запуска на дискете. Требуется вставлять дискету при запуске системы. Этим мы и делаем нашу флешку токеном для windows.
Вас попросят подтвердить, что вы согласны с копирование ключа на нее.
Как видим, все готово
Посмотрим на его содержимое.
В итоге у вас пропишется маленький файл размеров 8 кб, под именем StartKey
Теперь перезагружаемся и видим, перед окном ввода логина и пароля вот такое сообщение.
Нажимаем для примера кнопку ок, без флешки и видим следующее.
Не найден файл ключа запуска на дискете, вставленной в привод А.
Вставляем usb key для windows и логинимся. Как видите, двух факторная аутентификация работает нормально.
Отключить все это можно теми же шагами, единственное в Окне ключ выберите пункт
Вам потребуется чтобы ваш usb ключ защиты был вставлен.
Все теперь ключ храниться локально.
Если хотите увеличить безопасность вашего компьютера, то вот вам реальный способ это сделать, ни один ребенок не сможет без вас попасть на компьютер.
Популярные Похожие записи:
21 Responses to Создаем usb ключ защиты средствами Windows
Здравствуйте. А не подскажите как подобным способом можно защитить только 1 учетку локальную/доменную?
Добрый день, если честно не пробовал, но мне кажется не получиться, так как если ключ не вставлен то до логина вам не дадут пройти.
Windows 7 не видит ключ на флешке, хотя он там есть…. что делать?
А в какой файловой системе форматировалась флешка?
Если такая защита стоит на другом ПК то можно ли этот ключ сделать не на защищёном и будет ли тогда ключ работать?
Здравствуйте. Сын стёр файл с флэшки. Ноутбук зависат при загрузке, просит …. Как быть?
Тут уже только вынимать диск и подключать его к другому компьютеру, вытаскивать от туда данные, потом переустанавливать систему, просто если бы легко было взломать, этой технологии был бы грош цена.
Правильно ли я понимаю, что копирование файла ключа на вторую (третью/четвёртую) флешку решит проблему при возможной потери/неисправности оригинальной флешки?
Огромное спасибо за статью.
Правильно я понимаю
Если включить этот ключ с usb
И в добавок защифровать всю инфу на дисках
(Есть такая функция)
То без usb ключа, следовательно без системы
уже ни какие танцы с бубном
Не помогут извлеч инфу с дисках?
Если потерял флэшку как включають ноут?
Только переустановка и вытаскивание данных с помощью Live-cd
Здравствуйте! Спасибо работает. usb key нужен только при загрузке системы. Потом флешку можно извлечь. У меня на windows 7 (64) получилась так: на флешке переименованной в (A) ключ видит и разблокирует систему, а вот копию на другой флешке не видит. Предполагаю из за того, что другая флешка имеет букву диска отличную от (A) – у меня определялась как (F). Попробовал назначить букву (A). Копия заработала., но перестал определятся ключ на флешке1. Переименовался. Получается, что копию usb key невозможно использовать. и при утрате оригинала неизбежны проблемы. Кто подскажет? Спасибо.
Интересное тестирование, а если сделать клон флешки с помощью утилит?
Я бы попробовал снять образ с оригинальной флэшки-ключа и смонтировать его на другую флэшку. Если и так не получится — останется думать что имеют значения идентификаторы VID&PID. За этим — уже только прошивка контроллера, от чего флэшка вполне вероятно может стать нерабочей.
блин помогите его удалить потому што я хотел сохранить там апароль которие поставили родаки а потом понял што комп без флешкине запускается срочно помогите
здравстуйте, такая проблема, ключ на флэшке-оригинале есть, раньше система включалась нормально, а потом резко не извлекает из нее ключ этот и всё. может она как-то поменяла букву диска. система не включается больше. как быть?
В безопасном режиме пробовали загружаться, и если флешку подключить на другом компьютере, у нее видится файловая система? Можно попробовать поискать на ней ошибки, штатными средствами Windows
Благодарю за полезную информацию по созданию ключа.Пригодилось.
Здравствуйте!
Скажите, пожалуйста, а зачем при создании usb ключа, менять букву флешки?
Если её, к примеру, не менять, а оставить стандартной по умолчанию, то Windows сможет запускаться тогда с каждой флешки, на которой установлен StartKey?
Я почему спрашиваю? Ведь если единственная флешка, на которой создан StartKey, вдруг выйдет из строя, то с другой флешки система не запустится, даже при наличии на ней StartKey, поскольку система видит её под другой буквой. Поэтому, можно ли создать, две или три флешки с usb ключом под одной буквой, чтобы Windows запускался не с одной, а с любой?
_https://support.microsoft.com/ru-ru/help/4025993/syskey-exe-utility-is-no-longer-supported-in-windows-10-windows-server
Дополнительная информация
Syskey — это внутренний корневой ключ шифрования Windows, используемый для шифрования других конфиденциальных данных о состоянии ОС, таких как хеш пароля учетной записи пользователя. Утилиту SysKey можно использовать для добавления дополнительного уровня защиты путем шифрования syskey с целью использования внешнего пароля. В этом состоянии ОС блокирует процесс загрузки и запрашивает у пользователей пароль (интерактивно или путем считывания с гибкого диска).
К сожалению, ключ шифрования syskey и использование syskey.exe больше не считаются безопасными. Syskey основан на слабом шифровании, которое легко взломать в современных условиях. Данные, защищенные syskey, очень ограничены и не охватывают все файлы и данные на томе ОС. Утилита syskey.exe также использовалась злоумышленниками как вирус-вымогатель.
Active Directory ранее поддерживает использование внешнего шифрования syskey для IFM мультимедиа. При установке контроллера домена с использованием IFM носителя необходимо также предоставить пароль внешнего syskey. К сожалению, в этой защите присутствуют те же проблемы безопасности.
Блокировка компьютера с помощью USB флешки
Вы когда-нибудь хотели иметь физический ключ для вашего компьютера? Что-то вроде ключа от квартиры. Теперь, когда текстовые пароли устаревают (развивается идентификация по отпечаткам пальцев, сетчатки глаза или по лицу), ключ будет более чем приемлемым решение. Действительно, разблокировка компьютера, требующая физическую составляющую, может быть более безопасным вариантом сейчас, и если у вас есть флешка, можете настроить ключ всего за несколько минут.
Возможно, мы увидим дальнейшего прогресса в ближайшем будущем, и эти USB ключи смогут заменить все формы ввода пароля (например, для авторизации вконтактике). Согласитесь, тогда труднее будет взламывать учетные записи, но сейчас они могут обрабатывать только блокировку и разблокировку ПК.
Достоинства и недостатки такого решения
Защищая себя только паролями, большая оплошность безопасности. Даже если вы создаете хорошие пароли и практикуете хорошие привычки безопасности , есть один недостаток пароля: как только вы засветили пароль, любой может им воспользоваться. В этом смысле, физический ключ труднее украсть, чем нематериальный.
Но не без изъянов.
С одной стороны, вы получаете лишний геморрой, если вы вдруг потеряете или сломаете ключ USB: восстановить такой ключ более сложно, чем пароль. Другой недостаток, захотите предоставить кому-либо еще доступ, вы должны передать им ключ. Сказать по телефону пароль уже не получится, но тем не менее, не трудно же передать ключи от квартиры другу, если понадобится.
Predator [Windows]
Predator является одним из самых популярных инструментов для превращения флешки в устройство контроля доступа.
Принцип работы следующий: пока флешка подключена в USb доступ к компьютеру разрешается. Тут возможна двухэтапная аутентификация, то есть иметь USB ключ мало, еще необходимо ввести пароль.
Чтобы настроить первый ключ USB:
- Установите Predator .
- Запустите
- Вставьте диск USB
- Введите пароль для этого пользователя
- Выберите диск, который представляет собой устройство USB.
- Нажмите кнопку Register Key.
Накопитель используемый в качестве ключа останется полностью без изменений. Никакие файлы не будут удалены или изменены.
Расширенные функции включают в себя:
- Один USB накопитель может быть использован для блокировки /разблокирования нескольких компьютеров.
- Несколько флешек могут быть использованы для одного компьютера, разными пользователями
- Встроенный планировщик, может ограничить доступ к компьютеру в определенное время суток, причем расписание может быть определено для определенного пользователя
- В случае потери или поломки ключа USB, существует аварийный пароль
- Все попытки входа протоколируются и записываются в журнал. Кроме того можно настроить, чтобы при попытке разблокирования веб камера делала снимок ,и отправляла одним из доступным образом
В общем, Predator является хорошим выбором, если вы хотите быстрое и простое решение.
Rohos Logon Key [Windows и Mac]
Rohos Logon Key мульти-платформная, подойдет и для Виндовс, и Mac.Он работает, сохраняя вашу информацию для входа в вашу учетную запись ,и автоматически вводит эти данные при подключении USB. Существуют альтернативные методы для входа, позволяет разблокировать доступ к компьютеру через смартфон.
Особенности включают в себя:
- Также двухфакторной аутентификации с помощью USB ключа + PIN код.
- Система входа в чрезвычайных ситуациях, предоставляет вам доступ в случае потери или поломки USB или забытого PIN кода.
- Пароли, хранящиеся на ключевых устройств USB зашифрованы с помощью алгоритма AES-256 и защищены от несанкционированного копирования.
Rohos коренным образом отличается от Predator . Он буквальное выполняет роль замены для ввода учетных данных в экране блокировки. Это делает его менее безопасным,ведь при отсутствии флешки, вы просто в ручную введете пароль и вход выполнен. А Predator запрещает доступ к функциям полностью.
Флешка-ключ для блокировки компьютера
Мало кто знает, но флешки можно использовать не только для хранения и переноса данных, но и для блокирования не санкционированного доступа к компьютеру, ноутбуку или планшету. И сделать это весьма просто, достаточно скачать и установить программу Predator, посредством которой можно заблокировать компьютер, сгенерировав файл-ключ флешке.
Установка Predator
Predator – это приложение, позволяющее блокировать компьютер во время отсутствия пользователя-хозяина, путем создания специального файла-ключа с привязкой к карте флеш-памяти. Принцип действия данной утилиты таков, что позволяет работать на компьютере лишь тогда, когда флешка подключена к компьютеру.
Данное приложение имеет два версии:
- Домашняя – бесплатная, для обычных пользователей.
- Профессиональная – платная версия для тех, кто желает использовать утилиту в коммерческих целях.
Чтобы использовать Predator, сначала его нужно скачать и установить.
- Открываем сайт www.predator-usb.com, кликаем по иконке «Download».
alt=»Флешка-ключ для блокировки компьютера» width=»300″ height=»68″ /> - На открывшейся страничке опускаемся ниже по тексту, кликаем по «Download Predator Home Edition».
alt=»Флешка-ключ для блокировки компьютера» width=»300″ height=»74″ /> - Выбираем 32 или 64-х битную версию приложения, в соответствии с разрядностью операционной системы компьютера, на котором будет использоваться Predator.
- Нажав на соответствующую иконку для скачивания появиться окошко, где нужно подтвердить желание загрузить файл.
- Загрузив файл, его нужно разархивировать. Для этого нажимаем правой кнопкой мыши на архив, выбираем «Разархивировать в InstallPredator_x64».
- Открываем папку с разархивированными файлами, запускаем инсталлятор Predator. Нажав на него два раза левой кнопкой мышки.
alt=»Флешка-ключ для блокировки компьютера» width=»300″ height=»73″ /> - Первое окошко установщика предложит ознакомиться с Лицензионным соглашением, нажимаем «Next»(Далее).
- Читаем соглашение, если все нормально подтверждаем согласием, поставив галочку напротив «I Agree» (я согласен), жмем «Next».
- В новом окошке спросят «Запустить ли программу Predator после окончания ее установки», оставляем галочку как есть, кликаем «Next».
- Выбираем место установки, нажимаем «Next».
- Когда приложение завершит установку появиться такое окошко, здесь снова нажимаем «Next».
Важно! Для полноценной работы Predator ей необходим Net framework 4. Если он не установлен, то приложение автоматически скачет и установит это приложение, после того как вы установите Predator.
Применении Predator
- Далее, появится окошко с предложением создания пароля и ключа в настройках приложения, соглашаемся. Кликаем «Ок».
- Откроется окошко настроек, где следует ввести пароль.
- После этого подключаем флешку к компьютеру. Ждем, пока программа автоматически ее определит. Далее, кликаем «Создать ключ». Когда все будет сделано, немного ниже появится строка с датой создания и номером ключа.
- Далее, переходим в закладку «Дополнительные параметры», где ставим галочку, напротив «При старте Windows ». Подразумевается запуск Predator при каждом запуске операционной системы.
Кликаем «Ок».
На этом установка и настройка приложения завершается, о чем сообщит специальное окошко, где также будет указано на необходимость ручного запуска утилиты для начала ее работы. Запустив программу вы тем самым блокируете компьютер и будете иметь возможность работать на нем лишь с подключенной флешкой.
О работе приложения можно узнать, посмотрев в трей рабочего стола, где будет светиться зеленый кружок.
Также удостовериться в работе программы можно, если вытащить флешку USB-разъема. Следствием такого действия станет блокирование компьютера — появится черный экран. Вставив флешку обратно вы снова получите доступ к системе.
Если флешка испортиться или будет утеряна, то доступ к компьютеру можно восстановить, нажимая любую кнопку на клавиатуре пока не появится окошко с полем для введения пароля. Верно введя пароль, защита Predator будет отключена. Но вводить пароль нужно быстро, приложение дает для этого лишь 20 секунд. После чего окошко исчезнет и вы снова будете лицезреть черный экран.
Важно! Утилита Predator – это приложение для блокирования доступа к компьютеру посредством флешки на то время пока вы будете находиться далеко от клавиатуры. И рассматривать Predator как серьезное средство защиты не стоит, разве что комбинируя ее с другими защитными криптографическими программами.
(6 оценок, среднее: 4,17 из 5)
Вход в систему по подключению определенной флешки
Одним ужасным пятничным вечером мне стало интересно как реализован вход в систему(Windows 7) по отпечатку пальца, так часто использующийся на ноутбуках. Что меня большего всего интересовало – как сделана такая прозрачная интеграция с WinLogon(механизм входа в систему).
С помощью знакомого я узнал что сие называется Credential Provider(по крайней мере начиная с Vista, до неё – был другой механизм). И тут-то я вспомнил что давно хотел сделать чтобы система разблокировалась при подключении одной определенной флешки. Поэтому я захотел быстренько наваять такой проект.
Первое что я сделал – это поискал примеры реализации Credential Provider. Они быстро нашлись в Windows SDK, а так же отдельно примеры(но устаревшие – для висты).
Среди примеров был наиболее близкий мне – SampleHardwareEventCredentialProvider.
Расскажу вкратце как устроен механизм провайдеров учетных записей(Credential Provider).
В реестре(HKLMSoftwareMicrosoft WindowsCurrentVersionAuthentification) есть две ветки – собственно Credential Providers и Credential Provider Filters. В каждом из них набор вида “ветка-GUID”(GUID – уникальный идентификатор) с дефолтным параметром – названием провайдера или фильтра. Тут надо пояснить что такое провайдеры и фильтры.
Провайдер – он дает нам возможность входа в систему. Например по отпечатку пальца, по вводу пароля(дефолтное поведение), по смарткарте, и т.д.
Фильтры – фильтруют “лишнее” поведение от пользователя. Пример – если политикой безопасности запрещен вход по смарткарте – фильтр может отключить такой провайдер.
Далее, в реестре в всем известном страшном месте HKCRCLSID описаны GUIDы, а в нашем случае – для идентификаторов фильтров и провайдеров прописаны их названия, название файла — dll-ки, и модель потоков(ThreadingModel=Apartment).
Фильтры мы рассматривать не будем, перейдем конкретно к провайдеру.
В проекте у нас есть несколько классов:
CSampleProvider, реализующий интерфейс ICredentialProvider. Именно он отвечает за механизм входа и предоставление удостоверения(Credential)
CSampleCredential, реализующий труднопроизносимый интерфейс ICredentialProviderCredential. Собственно тут указаны имя пользователя, пароль(или токен авторизации, что лучше). Экземпляр этого класса мы отдаем WinLogon для входа в систему.
CommandWindow, класс окна-заглушки.
По умолчанию в SampleHardwareEventCredentialProvider такое поведение:
При создании главного класса механизмом входа WinLogon – в другом потоке создается окно с кнопкой, которая симулирует событие подключения устройства. При нажатии на кнопку – происходит переход на логин с учетной записью “Administrator”.
Что мне надо минимально поменять из этого поведения чтобы было рабочее решение для меня?
Скрыть окно, сменить жёстко прописанную учетную запись “Administrator” на мою(с автовводом пароля), включить автовход, и реализовать событие WM_DEVICECHANGE.
Скрыть окно было просто – всего лишь найти ShowWindow(hWnd, SW_SHOW); и заменить на SW_HIDE
Сменить жёстко прописанную учетную запись – тоже было просто – я создал отдельный файл consts.h, где прописал:
Включить автовход тоже было несложно:
Этот метод вызывается при выборе пользователя для входа.
Осталось единственное сложное – реализовать событие WM_DEVICECHANGE.
В нем мне надо найти некий уникальный идентификатор флешки, сравнить с эталонным, и в случае совпадения – поставить флаг что нужное устройство подключено, который затем прочитает CSampleCredential.
Что может быть уникальным у флешки? Вобщем-то много всего, VendorID/ProductID(уникальны на продукт, т.е. у одной и той же серии флешек – совпадает), номер серийника раздела(сбрасывается при переформатировании). Я сравниваю PNPID через механизм WMI(Windows Management Instrumentation).
Вообще про WMI можно говорить долго, скажу только что это средство получения информации и управления кучей компонентов ОС и не только, и имеет свой SQL-подобный язык запросов, называемый WQL. Есть замечательная утилита от Microsoft под названием WMI Browser, очень советую поставить – можно узнать много нового о том, что можно узнать с помощью WMI.
Вот модифицированная процедура потока, в которой помимо создания окна теперь ещё и инициализация глобальных статичных переменных для работы с WMI:
static IEnumWbemClassObject* pEnumerator ;
static IWbemLocator *pLoc ;
static IWbemServices *pSvc;
static IWbemClassObject *pclsObj;
DWORD WINAPI CCommandWindow::_ThreadProc(__in LPVOID lpParameter)
<
CCommandWindow *pCommandWindow = static_cast<CCommandWindow *>(lpParameter);
if (pCommandWindow == NULL)
<
return 0;
>
HRESULT hres;
hres = CoInitializeEx(0, COINIT_MULTITHREADED);
if (FAILED(hres))
return 1; // Program has failed.
hres = CoCreateInstance(
CLSID_WbemLocator,
0,
CLSCTX_INPROC_SERVER,
IID_IWbemLocator, (LPVOID *) &(pLoc));
if (FAILED(hres))
<
CoUninitialize();
return 1; // Program has failed.
>
hres = pLoc->ConnectServer(
_bstr_t(L «ROOT\CIMV2» ), // Object path of WMI namespace
NULL, // User name. NULL = current user
NULL, // User password. NULL = current
0, // Locale. NULL indicates current
NULL, // Security flags.
0, // Authority (e.g. Kerberos)
0, // Context object
&pSvc // pointer to IWbemServices proxy
);
if (FAILED(hres))
<
pLoc->Release();
CoUninitialize();
return 1; // Program has failed.
>
hres = CoSetProxyBlanket(
pSvc, // Indicates the proxy to set
RPC_C_AUTHN_WINNT, // RPC_C_AUTHN_xxx
RPC_C_AUTHZ_NONE, // RPC_C_AUTHZ_xxx
NULL, // Server principal name
RPC_C_AUTHN_LEVEL_CALL, // RPC_C_AUTHN_LEVEL_xxx
RPC_C_IMP_LEVEL_IMPERSONATE, // RPC_C_IMP_LEVEL_xxx
NULL, // client identity
EOAC_NONE // proxy capabilities
);
if (FAILED(hres))
<
pSvc->Release();
pLoc->Release();
CoUninitialize();
return 1; // Program has failed.
>
HRESULT hr = S_OK;
// Create the window.
pCommandWindow->_hInst = GetModuleHandle(NULL);
if (pCommandWindow->_hInst != NULL)
<
hr = pCommandWindow->_MyRegisterClass();
if (SUCCEEDED(hr))
<
hr = pCommandWindow->_InitInstance();
>
>
else
<
hr = HRESULT_FROM_WIN32(GetLastError());
>
ShowWindow(pCommandWindow->_hWnd, SW_HIDE);
if (SUCCEEDED(hr))
<
while (pCommandWindow->_ProcessNextMessage())
<
>
>
else
<
if (pCommandWindow->_hWnd != NULL)
<
pCommandWindow->_hWnd = NULL;
>
>
return 0;
>
* This source code was highlighted with Source Code Highlighter .
соответственно в деструкторе CommandWindow освобождаем ресурсы:
И теперь самое интересное – обработчик события WM_DEVICECHANGE:
case WM_DEVICECHANGE:
<
HRESULT hres = pSvc->ExecQuery(
bstr_t( «WQL» ),
bstr_t( «SELECT * FROM Win32_DiskDrive» ),
WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
NULL,
&pEnumerator);
if (FAILED(hres))
<
pSvc->Release();
pLoc->Release();
CoUninitialize();
return 1; // Program has failed
>
ULONG uReturn = 0;
while (pEnumerator)
<
HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
&pclsObj, &uReturn);
hr = pclsObj->Get(L «PNPDeviceID» , 0, &vtProp, 0, 0);
if (wcscmp(vtProp.bstrVal,PNPID) == 0)
<
PostMessage(hWnd, WM_TOGGLE_CONNECTED_STATUS, 0, 0);
>
VariantClear(&vtProp);
pclsObj->Release();
>
>
break ;
* This source code was highlighted with Source Code Highlighter .
Здесь происходит выполнение WQL-запроса к Win32_DiskDrive – списку наших дисков. Т.е. по PNPID мы можем привязаться к флешке, внешнему харду, но не к примеру usb-мышке(хотя это тоже можно реализовать!).
После выполенения запроса я сравниваю полученную строку(vtProp.bstrVal) с захардкоженным PNPID в consts.h:
PNPID можно подсмотреть в том же WMI Browser или можно воспользоваться средствами Visual Studio для работы с WMI.
Если они совпали – то я отправляю сообщение для включения флага подключения нужной флешки, по которому устанавливается этот флаг и вызывается метод обновления у провайдера.
Далее остался финальный штрих – заменить GUID нашей библиотеки с дефолтного на случайный в register.reg/unregister.reg и в guid.h.
Вот и всё. Далее дело за малым – скомпилировать проект, скопировать полученную библиотеку в System32, и выполнить register.reg. Потом нажимаем Win+L(блокировка системы) и наслаждаемся 🙂
Вот тут можно скачать исходники.
Что стоит доработать?
Убрать хардкод PNPID и логин/пароль. Лучше в отдельном софте сериализовать токен авторизации, и уже его использовать в дллке. Можно воспользоваться криптографическими средствами и хранить логин/пароль на флешке зашифрованными в определенном файле.
Что я хочу показать этой статьей – в Windows очень многое можно расширить под себя, главное – не бояться искать то, что хотите узнать, и пользоваться Windows SDK.
Всем удачи, надеюсь кого-то вдохновил на разработку чего-то полезного!