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

Rik*_*ing 137 linux virtual-machine windows-8

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

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

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

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

所以看起来密钥应该以某种方式通过 ACPI 可用。但是,我已经尝试过ls /proc/acpi,据我所知,这没有任何用处,并且acpitool根本没有帮助我。

我到底怎么才能取出产品密钥?

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

Rik*_*ing 180

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

ls /sys/firmware/acpi/tables
Run Code Online (Sandbox Code Playgroud)

这给了我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
Run Code Online (Sandbox Code Playgroud)

*** 是许可证密钥的内容,以 ASCII 文本表示。

  • 或者更简单:**`sudo hexdump -s 56 -e '"MSDM key: " /29 "%s\n"' /sys/firmware/acpi/tables/MSDM`** (42认同)
  • @david6 更简单:sudo tail -c +56 /sys/firmware/acpi/tables/MSDM (6认同)
  • 挺有意思。但是这把钥匙真的有用吗?我相信嵌入式许可证比实际密钥更多。 (4认同)
  • @DanielB 您所需要做的就是致电 MS 并确认您实际上是在与您出售的计算机相同的计算机上安装 Windows。 (2认同)
  • 我遇到了同样的问题,并使用此方法成功提取了密钥,该方法仅适用于 UEFI 系统。但是,当您只想重新安装预装了 Windows 的系统时,只需要获取安装映像(Microsoft 出于某种原因使它变得足够困难),根据版本使用通用 OEM 密钥绕过讨厌的密钥检查您想要安装,安装完成后,Windows 将从 EFI BIOS 中获取您的密钥并自动激活 (!)。在我自己的系统上测试过,重新安装了 Windows 8.1。 (2认同)

Rub*_*zzo 31

使用 Fedora 我尝试过:

sudo cat /sys/firmware/acpi/tables/MSDM
Run Code Online (Sandbox Code Playgroud)

这给了我以下结果:

MSDMUoDELL  QA09   LOHR#####-#####-#####-#####-#####%  
Run Code Online (Sandbox Code Playgroud)

产品密钥已替换为#

  • 易读性: sudo cat /sys/firmware/acpi/tables/MSDM | 字符串 (8认同)

小智 10

/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: ** ** ** ** **                                   *****
...
Run Code Online (Sandbox Code Playgroud)

  • 嗯 - 两件事。(1) 为什么你在 13.10,现在是 2014 年 9 月。和 (2) - 文件夹`/sys/firmware/acpi/tables/` 是否存在?可能你在其他地方安装了一些东西(或根本没有)。 (2认同)

Xav*_*uvw 9

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

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

在 Windows 8.1 的 Ubuntu 14.04 上测试

  • 要仅获取密钥,请添加:`| tail -1` 在命令末尾。 (2认同)