Как я могу прочитать лицензионный ключ Windows 8 с Ubuntu?

18

У меня двойная загрузка Windows 8 и Ubuntu на моем ноутбуке.

Можно ли прочитать лицензионный ключ Windows под Ubuntu? (Я думаю, это как-то скрыто в реестре Windows)

rubo77
источник
Это система UEFI? Если да, то, вероятно, она находится в памяти ключей UEFT?
Амит КК
Да, это система UEFI. Я уже нашел его и разместил ответ ниже;)
rubo77
2
Рецензенты: это не вне темы. Речь идет об использовании Ubuntu для поиска информации в установке Windows. Прекрасно.
Сет
Согласитесь, это по теме, особенно если учесть, что на самом деле речь может идти о считывании информации ACPI из хранилища прошивки: эта информация даже не хранится в том, что большинство из нас считает системой Windows.
Элия ​​Каган

Ответы:

32

Я нашел это здесь . Ключ, похоже, хранится в ACPI-прошивке:

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

Который дал мне следующие результаты:

MSDMU
LENOVOCB-01   
ACPI
#####-#####-#####-#####-#####

(Я заменил ключ продукта на #)

труба в , | tail -n1если вам нужен только ключ в качестве вывода.

rubo77
источник
2
Это может быть специфично для Lenovo, чтобы иметь ключ в прошивке. Мои рабочие компьютеры (Dell Laptop и Compaq Desktop) имеют SLIC, но не имеют MSDM. По общему признанию, оба этих компьютера предшествуют Windows 8 на несколько лет.
Чувак
1
На более новых компьютерах Dell эта таблица действительно существует. Я нашел его на двух настольных компьютерах Dell Precision T1700 с июня 2014 года.
Хорхе Суарес де Лис
Это прекрасно работает на Lenovo Yoga3.
Шенбриден
Работал над моим UEFI Acer Aspire V. Так что это относится и к другим системам UEFI.
Торриен
3

Если ваш HD сломан и вам нужно установить новый HD или просто хотите узнать ключ без HD, это может помочь вам:

sudo acpidump > myhiddenkey.txt

После этого найдите в папке HOME только что созданный TXT-файл. Нажмите F3 для поиска в файле слова «MSDM» и бинго!

Если у вас еще acpmdumpнет времени, установите его, используя

sudo apt-get install acpidump

Он работал на моем Live Pendrive Ubuntu 14.04 LTS на ноутбуке Positivo. Ключ был из Windows 8 Single-language.

Пауло Сержио Мотояма младший
источник
Опс, я забыл. Причина вывода в текстовый файл заключается в том, что окно терминала может не поддерживать столько строк текста.
Пауло Сержио Мотояма младший
Результат - примерно 8 строк после появления «MSDM», так что это покажет ключ: sudo acpidump|grep MSDM -A8без использования текстового файла
rubo77
1
acpidumpимеет возможность -nвыбрать только одну часть. Это выведет ключ в одну строку: sudo acpidump -n msdm | cut -c58-|xargs|tr -d " "
rubo77
Есть ли способ узнать, к какой версии Windows он принадлежит? 8 или 8.1? или это не имеет значения? Я не хочу использовать сторонние шашки
страшная точка с запятой
1

Есть еще один, чтобы добавить к последней команде, которая помогла мне:

sudo acpidump|grep MSDM -A6|cut -c58- |xargs | tr -d " " | grep -oP '[^.]+$'

Я не уверен, что строка определенно находится в конце, но именно так я извлек сам ключ.

Джереми
источник
Всегда относитесь к своему ответу как к единственно верному ответу. 😃
rubo77
Чтобы сделать это хорошим ответом, добавьте, что точная позиция может отличаться в других системах. Это приведет к выбору точных 6 строк после нахождения MSDN на выходе, который находится в HEX
rubo77
Вы можете использовать acpidump -n msdmвместоsudo acpidump|grep MSDM -A6
rubo77
1

Небольшое уточнение принятого ответа. Это напечатает только ключ:

sudo strings /sys/firmware/acpi/tables/MSDM | grep .*-.*-.*-.*-.*
freshnewpage
источник
1
лучше использовать sudo strings /sys/firmware/acpi/tables/MSDM |tail -n1(в редком случае ваше имя подходит для вашего grep regex)
rubo77