題 如何從Linux環境中獲取嵌入式Windows 8+密鑰?


我已經看到有關此主題的其他超級用戶問題: 如何查找Windows 8產品密鑰? | 如何查找Windows 8 OEM產品密鑰?  但是,所有答案都假設您已運行Windows 8。

我已經在我的新筆記本電腦上完成了Ubuntu 13.04的全新安裝,我正在嘗試為那些偶爾拒絕運行的偶然程序設置VM環境。

我在另一個答案上看到了這張圖片:

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

因此看起來密鑰應該通過ACPI以某種方式提供。然而, 我試過了 ls /proc/acpi 而且就我所見,這並沒有什麼用處 acpitool 根本沒有幫助我。

我怎麼能把產品鑰匙拿出來?

編輯:我試過通過Wine運行RW-Everything( 合照 程序),但它無法“安裝其驅動程序”。那裡沒有骰子。


102
2017-08-29 00:16


起源


如何從命令提示符或linux live disk獲取windows 7 cd key? - phuclv


答案:


我找到了!我需要這樣做:

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文本。


146
2017-08-29 03:54



很有趣。但這個鍵實際上是否可用?我相信嵌入式許可證比實際密鑰更多。 - Daniel B
@DanielB您需要做的就是致電MS並確認您實際上是在與銷售的計算機相同的計算機上安裝Windows。 - Riking
或者更簡單: sudo hexdump -s 56 -e '"MSDM key: " /29 "%s\n"' /sys/firmware/acpi/tables/MSDM - david6
我遇到了同樣的問題並使用此方法成功提取了密鑰,該方法僅適用於UEFI系統。但是,當您只想重新安裝預安裝了Windows的系統時,只需要獲取安裝映像(Microsoft因某種原因使其變得足夠困難),根據版本避免使用通用OEM密鑰進行令人討厭的密鑰檢查您想安裝,安裝完成後,Windows將從EFI BIOS中獲取您的密鑰並自動激活(!)。使用Windows 8.1重新安裝在我自己的系統上進行測試。 - Gregor
@ david6更簡單:sudo tail -c +56 / sys / firmware / acpi / tables / MSDM - Nehal J Wani


使用Fedora我嘗試過:

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

這給了我以下結果:

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

產品密鑰已替換為 #


25
2018-02-10 16:53



是的,這也有效 - 我說 hd 在我的回答中,因為它也顯示二進制數據,因此您可以更清楚地分開它的起始位置。 - Riking
易讀性:sudo cat / sys / firmware / acpi / tables / MSDM |字符串 - Aaron J Lang
並獲得實際的關鍵 sudo cat /sys/firmware/acpi/tables/MSDM | strings | tail -n 1 - George Sapkin


我找不到 /sys/firmware/acpi/tables/MSDM 在我的ASUS T100TA上運行Ubuntu 13.10 amd64,但我找到了一個打包的叫 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: ** ** ** ** **                                   *****
...

8
2017-09-14 05:34



嗯 - 兩件事。 (1)你為什麼在13.10,它是2014年9月。和(2) - 文件夾 /sys/firmware/acpi/tables/ 存在?可能你有東西安裝在其他地方(或根本沒有)。 - Riking
@Riking,它確實存在,但該目錄中唯一的文件是 DSDT。在我設置設備時,13.10是最新版本的Ubuntu可用。使用32位UEFI運行64位Linux是相當複雜的,所以我沒有花時間升級它。我真的從不使用該設備,並認為將Windows 8重新放在其上以供其他人使用可能會很好。 - Eric


這是一個變種 接受了答案 為您提供更加用戶友好的輸出,更易於閱讀和復制

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

在Ubuntu 14.04上測試Windows 8.1


1
2017-12-21 20:55



要僅獲取密鑰,請添加: | tail -1 在命令的最後。 - Victor