Ila*_*ste 16 windows-7 bluetooth multi-boot
如何在 Windows 7 中挖掘配对设备的蓝牙链接密钥?这是依赖于我使用的蓝牙堆栈(东芝)的东西,还是在 Windows 7 中存储这些东西的通用位置?
注意:我不是在谈论用户在配对过程中通常输入的六位数代码 - 这是毫无价值的,因为它在配对过程后被丢弃。我的意思是设备在配对期间交换的 128 位链接密钥,然后用于加密所有蓝牙流量。
背景:
我在笔记本电脑上双启动 Windows 7 / Ubuntu,我想让我的手机与两个操作系统配对。由于双启动计算机只有一个蓝牙适配器,因此只有一个蓝牙地址,我无法对手机进行两次配对,因为在第二次配对 (Windows) 中,手机只是将之前的配对 (Linux) 替换为相同的蓝牙地址。
Ubuntu 论坛上的一个线程向我指出了我必须做的事情 - 首先在 Linux 上配对,然后在 Windows 上配对,然后用 Windows 协商的一个替换 Linux 端的链接密钥。
我可以找到 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 中找到配对设备的链接密钥?
您应该使用的注册表项是:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys。
在我的电脑上,它拒绝让我访问这个密钥。在我看到子项之前,我必须将所有者更改为管理员。
如果您使用的是东芝蓝牙堆栈,则其密钥存储在其他地方。人们可以找到位置,或者简单地返回到 Microsoft 堆栈。在后一种情况下,蓝牙密钥将存储在注册表中,如上所述。
该线程描述了该过程:
注意:首先创建系统还原点,并确保您有 Toshiba 驱动程序的安装介质以供返回(以防万一)。在哭胜利之前测试好配对手机的功能。
小智 6
管理员看不到这些密钥,您应该以系统帐户的身份打开注册表:
这适用于带有 thinkpad 蓝牙 4.0 适配器的 ThinkPad 上的 Windows 7,但可能适用于其他 Windows 系统
下载 PsExec:http : //technet.microsoft.com/en-us/sysinternals/bb897553.aspx
解压到c:\portable\pstools\打开cmd点击开始,输入cmd,回车,在黑白窗口里面输入:
c:\portable\pstools\psexec -s -i regedit
Run Code Online (Sandbox Code Playgroud)
regedit 打开,导航到: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\
在那里你会找到所有蓝牙适配器的 MAC 地址,在每个适配器下,是所有配对设备的 MAC 地址及其链接密钥。
计算您的适配器的 MAC 地址:
bluetooth settings> Hardware > ThinkPad Bluetooth 4.0 > Properties > Advanced > Address
Run Code Online (Sandbox Code Playgroud)
计算您的设备(键盘/鼠标)mac 地址:
Control Panel > Hardware and Sound > Devices and Printers > right click your device > Properties > Bluetooth > Unique Identifier
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33960 次 |
| 最近记录: |