如何从Linux环境中获取嵌入式Windows 8+密钥?


116

我已经看到有关此主题的其他超级用户问题:如何查找Windows 8产品密钥?| 如何查找Windows 8 OEM产品密钥? 但是,所有答案都假设您已运行Windows 8。

我已经在我的新笔记本电脑上完成了Ubuntu 13.04的全新安装,我正在尝试为那些偶尔拒绝运行Wine的偶然程序设置VM环境。

我在另一个答案上看到了这张图片:

http://i.stack.imgur.com/v14oN.jpg

因此看起来密钥应该通过ACPI以某种方式提供。但是,我已经尝试过ls /proc/acpi了,就我所见,acpitool它没有任何用处,并且根本没有帮助我。

我怎么能把产品钥匙拿出来?

编辑:我尝试过运行RW-Everything via Wine(图示的程序),但它无法“安装它的驱动程序”。那里没有骰子。



至少在我的Windows 8.1安装中,这会产生与其他解决方案产生的密钥不同的密钥。
caw

Answers:


160

我找到了!我需要这样做:

ls /sys/firmware/acpi/tables

这给了MSDM我正在寻找的桌子。
我找到了我的许可证密钥!:d

要获得它,您需要读取/sys/firmware/acpi/tables/MSDM文件的内容。

这是一个例子:

riking@hp-laptop:~$ sudo xxd /sys/firmware/acpi/tables/MSDM
0000000: 4d53 444d 5500 0000 0313 4850 514f 454d  MSDMU.....HPQOEM
0000010: 534c 4943 2d4d 5043 0100 0000 4850 2020  SLIC-MPC....HP  
0000020: 0000 0400 0100 0000 0000 0000 0100 0000  ................
0000030: 0000 0000 1d00 0000 4639 XXXX XXXX XXXX  ........F98**-**
0000040: XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX  ***-*****-*****-
0000050: XXXX XXXX XX                             ****T

***是许可密钥的内容,采用ASCII文本。


4
很有趣。但这个键实际上是否可用?我相信嵌入式许可证比实际密钥更多。
Daniel B

1
@DanielB您需要做的就是致电MS并确认您实际上是在与销售的计算机相同的计算机上安装Windows。
Riking 2014年

35
或者更简单:sudo hexdump -s 56 -e '"MSDM key: " /29 "%s\n"' /sys/firmware/acpi/tables/MSDM
david6 2014年

2
我遇到了同样的问题并使用此方法成功提取了密钥,该方法仅适用于UEFI系统。但是,当您只想重新安装预安装了Windows的系统时,只需要获取安装映像(Microsoft因某种原因使其变得足够困难),根据版本规避使用通用OEM密钥检查令人讨厌的密钥您要安装,安装完成后,Windows将从EFI BIOS中获取您的密钥并自动激活(!)。使用Windows 8.1重新安装在我自己的系统上进行测试。
Gregor

5
@ david6更简单:sudo tail -c +56 / sys / firmware / acpi / tables / MSDM
Nehal J Wani 2016年

28

使用Fedora我尝试过:

sudo cat /sys/firmware/acpi/tables/MSDM

这给了我以下结果:

MSDMUoDELL  QA09   LOHR#####-#####-#####-#####-#####%  

产品密钥已替换为#


1
是的,这也有效 - 我提出hd了我的答案,因为它也显示了二进制数据,因此你可以更清楚地分开它的起始位置。
Riking 2014年

8
易读性:sudo cat / sys / firmware / acpi / tables / MSDM | 弦乐
Aaron J Lang

1
并获得真正的关键sudo cat /sys/firmware/acpi/tables/MSDM | strings | tail -n 1
乔治萨普金

8

/sys/firmware/acpi/tables/MSDM在运行Ubuntu 13.10 amd64的ASUS T100TA上找不到,但是我找到了一个acpidump非常有用的打包。acpidump以root身份运行我能够获得MSDM表内容。

$ sudo acpidump
...
MSDM @ 0x78d53f90
  0000: 4d 53 44 4d 55 00 00 00 03 6c 5f 41 53 55 53 5f  MSDMU....l_ASUS_
  0010: 4e 6f 74 65 62 6f 6f 6b 00 00 00 00 41 53 55 53  Notebook....ASUS
  0020: 01 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00  ................
  0030: 00 00 00 00 1d 00 00 00 ** ** ** ** ** ** ** **  ........*****-**
  0040: ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **  ***-*****-*****-
  0050: ** ** ** ** **                                   *****
...

2
嗯 - 两件事。(1)你为什么在13.10,它是2014年9月。和(2) - 文件夹/sys/firmware/acpi/tables/存在吗?可能你有东西安装在别的地方(或根本没有)。
Riking 2014年

@Riking,它确实存在,但该目录中唯一的文件是DSDT。当我设置设备13.10是最新版本的Ubuntu可用。使用32位UEFI运行64位Linux是相当复杂的,所以我没有花时间升级它。我真的从不使用该设备,并认为将Windows 8重新放在其上以供其他人使用可能会很好。
Eric

5

这是已接受答案的变体,为您提供更加用户友好的输出,更易于阅读和复制

sudo strings /sys/firmware/acpi/tables/MSDM

在Ubuntu 14.04上测试Windows 8.1


要仅获取密钥,请| tail -1在命令末尾添加:。
维克多
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.