Поиск ключа связи Bluetooth в Windows 7 для двойной пары устройств на компьютере с двойной загрузкой

Как я могу выкопать ключ связи Bluetooth для сопряженного устройства в Windows 7? Является ли это чем-то, что зависит от используемого мной стека Bluetooth (Toshiba), или есть общее место для хранения данных в Windows 7?

Примечание. Я не говорю о шестизначном коде, который обычно вводится пользователем во время спаривания – это бесполезно, поскольку он отбрасывается после процесса сопряжения. Я имею в виду 128-битный ключ ссылки, который устройства обмениваются во время спаривания, и затем использовать для шифрования всего их трафика Bluetooth.

Задний план:

Я использую dualboot Windows 7 / Ubuntu на своем ноутбуке, и я хотел бы, чтобы мой телефон был сопряжен с обеими ОС. Поскольку на компьютере с двойной загрузкой имеется только один адаптер Bluetooth и, следовательно, только один адрес Bluetooth, я не могу сделать два сопряжения с телефоном, так как при втором соединении (Windows) телефон просто заменяет предыдущее сопряжение (Linux) на тот же адрес Bluetooth.

Поток на форумах Ubuntu указывал мне на то, что мне нужно сделать – сначала сначала на Linux, затем на Windows, а затем замените ключ ссылки на стороне Linux на одну Windows, оговоренную.

Я могу найти ключ сопряжения на стороне Linux от /var/lib/Bluetooth/[BD_ADDR]/linkkeys – никаких проблем нет.

Однако на стороне Windows я не могу найти ключ. Согласно сообщению форума, на стороне Windows ключ должен находиться в SYSTEM\ControlSet002\services\BTHPORT\Parameters\Keys\[BD_ADDR] но в то время как этот раздел реестра существует, он не имеет подключений. (И аналогичный путь реестра в ControlSet001 также не имел каких-либо подразделов.)

Одна вещь, которую мне было поручено сделать, – это захватить все события во время сопряжения с Sysinternals Process Monitor . Я сделал это, но я не смог найти какую-либо полезную информацию из захваченных событий, даже не экспортируя данные в огромный XML и grepping, что с BD_ADDR (с или без двоеточий).

Итак, как я могу найти ключ ссылки для сопряженного устройства в Windows 7?

Некоторая справочная информация: Википедия: Bluetooth , безопасность сейчас: безопасность Bluetooth

Ключ реестра, который вы должны использовать:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys .

На моем компьютере он отказался предоставить мне доступ к этому ключу. Мне пришлось сменить владельца на Администраторы, прежде чем я увижу под-ключ.

Если вы используете стек Toshiba Bluetooth, его ключи хранятся где-то в другом месте. Можно либо найти, либо просто вернуться в стек Microsoft. В последнем случае ключи Bluetooth будут сохранены в реестре, как указано выше.

Этот поток описывает процесс:

  1. Удалите Toshiba Bluetooth (добавьте / удалите программы),
  2. Перезагружать,
  3. Теперь Windows должна обнаружить «новое» устройство Bluetooth и установить для него свои собственные драйверы.

Внимание: сначала создайте точку восстановления системы и убедитесь, что у вас есть установочный носитель для драйвера Toshiba для возврата (на всякий случай). Хорошо испытайте функциональность парного телефона, прежде чем плакать.

Ключи не видны администратору, вы должны открыть реестр как системную учетную запись:

Это для Windows 7 на ThinkPad с адаптером bluetooth 4.0, но может работать с другими системами Windows

Загрузить PsExec: http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

Распакуйте его в c: \ portable \ pstools \ open cmd нажмите start, введите cmd, нажмите enter, внутри черно-белого типа окна:

 c:\portable\pstools\psexec -s -i regedit 

Regedit открывается, перейдите к: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\

Там вы найдете MAC-адрес всех ваших Bluetooth-адаптеров, а под каждым адаптером – все MAC-адреса сопряженных устройств с их ключевыми клавишами.

Для определения MAC-адреса вашего адаптера:

 bluetooth settings> Hardware > ThinkPad Bluetooth 4.0 > Properties > Advanced > Address 

Для определения MAC-адреса вашего устройства (клавиатуры / мыши):

 Control Panel > Hardware and Sound > Devices and Printers > right click your device > Properties > Bluetooth > Unique Identifier 

У меня была точно такая же проблема, поэтому я нашел этот пост и теперь хочу поделиться своим опытом. Если у вас есть Android-смартфон, эта задача может быть намного проще, поскольку на обоих устройствах должно присутствовать соединение linkkey.

Самым полезным инструментом является АБР с Android SDK.

Предположим, что у телефона есть адрес XX ^ 6 и ПК – YY ^ 6

 $ adb shell ~ # find|grep linkkeys ~ # ./data/misc/bluetoothd/XX:XX:XX:XX:XX:XX/linkkeys ~ # cat ./data/misc/bluetoothd/XX:XX:XX:XX:XX:XX/linkkeys YY:YY:YY:YY:YY:YY 393FCA48F0DB57AA4D59F423E4EA60D5 5 -1 ~ # 

Таким образом, вы можете просто выбрать ключ из этого файла и поместить его в похожий файл на вашем ПК:

 pc $ sudo -s pc # cat /var/lib/bluetooth/YY:YY:YY:YY:YY:YY/linkkeys XX:XX:XX:XX:XX:XX 393FCA48F0DB57AA4D59F423E4EA60D5 5 0 

Этот способ кажется самым простым, так как Linux и Android обычно используют один и тот же стек bluetooth для bluez.

Тем не менее, если вы лично презираете такую ​​технику, есть еще один способ получить ключ из реестра Windows, если используются стандартные драйверы Windows. Я получил это диалоговое окно с сообщениями о безопасности, поэтому я использовал встроенную утилиту linux для chntpw, которая позволяет сбросить пароль или изменить файл реестра Windows. Требуемый файл был «windows \ system32 \ config \ SYSTEM».

Вот оно:

 $ chntpw -e SYSTEM blah-blah-blah > cd ControlSet001\services\BTHPORT\Parameters\Keys\yyyyyyyyyyyy (...)\BTHPORT\Parameters\Keys\5cac4c10c4f1> ls Node has 0 subkeys and 1 values size type value name [value if type DWORD] 16 REG_BINARY <xxxxxxxxxxxx> (...)\BTHPORT\Parameters\Keys\5cac4c10c4f1> hex xxxxxxxxxxxx Value <xxxxxxxxxxxx> of type REG_BINARY, data length 16 [0x10] :00000 39 3F CA 48 F0 DB 57 AA 4D 59 F4 23 E4 EA 60 D5 9?.H..W.MY.#..`. 

Как вы можете видеть, это точно такие же числа, как в файлах выше. Надеюсь, это поможет будущим поколениям.

Для справки, в стеке Microsoft Bluetooth, ключи ссылки расположены в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\aabbccddeeff где aabbccddeeff – ваш адаптер Bluetooth. Поскольку адаптер уже установлен, этот ключ должен существовать.

Внутри этого ключа вы можете иметь несколько значений REG_BINARY, где имя значения – MAC-адрес сопряженного устройства (в той же форме – шестнадцатеричный, строчный, без разделителей), а значение – это ключ канала (16 байтов).

Чтобы получить ключи связи из OS X, выполните (в OSX Terminal) по defaults read /private/var/root/Library/Preferences/blued.plist . В LinkKeys у вас должен быть ключ ссылки на MAC-адрес сопряженного устройства. Ключи закодированы в base64 так: echo -n 'aabbcc...==' | base64 -d | hexdump -C echo -n 'aabbcc...==' | base64 -d | hexdump -C echo -n 'aabbcc...==' | base64 -d | hexdump -C и введите этот ключ в свой реестр Windows.

  • Как создать мультизагрузочную флешку
  • Во время установки Windows он считает, что раздел EFI не находится в fat32, но он находится в fat32
  • Двойная загрузка XP с Windows 7 с установленными окнами 7?
  • Возможно ли выполнить двойной загрузку Windows XP и Windows 8 Developer Preview?
  • Что лучше всего переустанавливать Windows 7 при двойной загрузке с помощью ubuntu 11.04
  • Vista & XP Dual Boot - удаление XP
  • Может ли вирус ввести через Ubuntu и повлиять на Windows при двойной загрузке?
  • Раздел Ubuntu не загружается
  • Linux-раздел удален, GRUB больше не загружается
  • Какую команду я могу использовать для перезагрузки загрузчика?
  • Правильное отключение Intel SRT
  • Interesting Posts

    Android Chrome игнорирует -webkit-text-size-adjust: none свойство. При масштабировании текст масштабируется

    Восстановить EFS зашифрованные данные из загрузочного диска Vista x64

    Когда следует использовать составной индекс?

    Что такое «Execute Around» идиома?

    Преобразование объекта в строку JSON

    Ограничьте каждого пользователя только своей собственной домашней папкой

    Android Java; Как разобрать локальный файл JSON из папки с данными в ListView

    Как получить MAC-адрес клиентской машины в веб-приложении

    Как создать точную копию массива?

    Что обычно лучше всего использовать – StringComparison.OrdinalIgnoreCase или StringComparison.InvariantCultureIgnoreCase?

    Обещание против наблюдаемого

    Настройка десятичной точности, .net

    «Невозможно подключиться к виртуальной машине» для новой виртуальной машины Hyper-V

    Что такое последняя версия itext, которая не является AGPL?

    Ограничение размера хранилища HTML5 для субдоменов

    Давайте будем гением компьютера.