How do I get out my embedded Windows 8+ key from a Linux environment?

I have seen other SuperUser questions on this topic: How to find Windows 8 product key? | How to find Windows 8 OEM product key? However, all of the answers assume you have Windows 8 running.

I've already done a clean install of Ubuntu 13.04 on my new laptop, and I'm trying to set up a VM environment for those occasional programs that just absolutely refuse to run even with Wine.

I saw this image on another answer:

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

So it appears that the key should somehow be available via ACPI. However, I've tried ls /proc/acpi and that turns up nothing useful as far as I can see, and acpitool isn't helping me at all.

How the heck can I get the product key out?

EDIT: I have tried running RW-Everything via Wine (the pictured program), but it is unable to 'install its driver'. So no dice there.


Solution 1:

I found it! I needed to do this:

ls /sys/firmware/acpi/tables

Which gave me the MSDM table I was looking for.
I have found my license key! :D

To get it, you need to read the contents of the /sys/firmware/acpi/tables/MSDM file.

Here's an example:

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

The *** are the contents of the license key, in ASCII text.

Solution 2:

Using Fedora I have tried with:

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

Which gave me the following results:

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

The product key was replaced with #.

Solution 3:

I couldn't find /sys/firmware/acpi/tables/MSDM on my ASUS T100TA running Ubuntu 13.10 amd64, but I found a packaged called acpidump quite useful. Running acpidump as root I was able to get the MSDM table contents.

$ 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: ** ** ** ** **                                   *****
...

Solution 4:

This is a variant of the accepted answer giving you a much more user-friendly output, easier to read and copy

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

Tested on a Ubuntu 14.04 for a Windows 8.1