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

12

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

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

Фон:

Я запускаю 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-файл и получения его с помощью BD_ADDR (с двоеточиями или без них).

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

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

Илари Каясте
источник

Ответы:

7

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

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

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

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

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

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

harrymc
источник
Я изменил владельца на Администратора, который затем позволил мне получить доступ к этому ключу, но, к сожалению, он не содержит вложенных ключей.
Илари Каясте
Вы сделали это в паре?
harrymc
Да, у меня есть телефон (плюс два других устройства), связанный с Windows. В то время я не был связан ни с одним из них - я думаю, что это не могло иметь значения, поскольку ключ должен храниться в любом случае.
Илари Каясте
1
Я уверен, что Toshiba не будет использовать записи реестра Microsoft. Можете ли вы вернуться к стеку Microsoft?
harrymc
1
В этой теме говорится: 1. Удалите Toshiba Bluetooth (Установка и удаление программ), 2. Перезагрузите компьютер, 3. Теперь Windows должна обнаружить «новое» устройство Bluetooth и установить для него собственные драйверы. Сначала создайте точку восстановления системы и убедитесь, что у вас есть установочный носитель для драйвера Toshiba (на всякий случай). Если это работает, хорошо протестируйте только те функции сопряженного телефона, которые вы действительно используете.
harrymc
5

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

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

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

Распакуйте его в c: \ portable \ pstools \ open cmd, нажмите «Пуск», введите «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 
thezeroth
источник
От @Cristian: Я использовал метод, описанный thezeroth, на моей машине с двойной загрузкой Xubuntu 15.10 / Windows 8, и он работает как шарм. Единственное, что в Xubuntu ключ сопряжения находился не в упомянутом файле, а в файле с именем Info внутри подпапки, названной в честь уникального идентификатора мыши (logitech M535). Помимо этого, идеальное решение.
fixer1234
3

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

Наиболее полезным инструментом является ADB от 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 обычно используется один и тот же стек bluez.

Тем не менее, если вы лично презираете такую ​​технику, есть другой способ получить ключ из реестра Windows, если используются стандартные драйверы Windows. Я получил это диалоговое окно с сообщением о безопасности, поэтому я использовал "chntpw" нативную утилиту linux, которая позволяет сбросить пароль или отредактировать файл реестра 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.#..`.

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

Дух хранитель
источник
Ваше устройство рутировано / установлен BusyBox? Команда "найти" не удалась.
0

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

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

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

Илья
источник
-1

PsExec.exe -s -i regedit / E% cd% \ btkeys_export.txt "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ BTHPORT \ Parameters \ Keys"

будь проще
источник
Добро пожаловать в Супер пользователя! Не могли бы вы уточнить это? Возможно, отредактируйте свой ответ, чтобы объяснить, что вы описываете и почему вы делаете это предложение. Благодарность!
Бертиб