Làm cách nào để lấy khóa Windows 8+ nhúng từ môi trường Linux?


121

Tôi đã thấy các câu hỏi khác của SuperUser về chủ đề này: Làm thế nào để tìm khóa sản phẩm Windows 8? | Làm thế nào để tìm khóa sản phẩm Windows 8 OEM? Tuy nhiên, tất cả các câu trả lời đều cho rằng bạn có Windows 8 đang chạy.

Tôi đã thực hiện cài đặt sạch Ubuntu 13.04 trên máy tính xách tay mới của mình và tôi đang cố gắng thiết lập môi trường VM cho các chương trình không thường xuyên này mà hoàn toàn từ chối chạy ngay cả với Wine.

Tôi thấy hình ảnh này trên một câu trả lời khác:

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

Vì vậy, có vẻ như khóa bằng cách nào đó có sẵn thông qua ACPI. Tuy nhiên, tôi đã thử ls /proc/acpivà điều đó không có ích gì như tôi có thể thấy, và acpitoolkhông giúp được gì cho tôi cả.

Làm thế quái nào tôi có thể lấy chìa khóa sản phẩm ra?

EDIT : Tôi đã thử chạy RW-Mọi thứ thông qua Wine ( chương trình trong hình ), nhưng không thể 'cài đặt trình điều khiển'. Vì vậy, không có xúc xắc ở đó.



Ít nhất là với cài đặt Windows 8.1 của tôi, điều này dẫn đến một khóa khác với khóa được tạo bởi giải pháp khác này .
caw

Câu trả lời:


164

Tôi tìm thấy nó! Tôi cần phải làm điều này:

ls /sys/firmware/acpi/tables

Mà đã cho tôi cái MSDMbàn tôi đang tìm kiếm.
Tôi đã tìm thấy khóa giấy phép của mình! :CƯỜI MỞ MIỆNG

Để có được nó, bạn cần đọc nội dung của /sys/firmware/acpi/tables/MSDMtập tin.

Đây là một ví dụ:

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

*** là nội dung của khóa cấp phép, trong văn bản ASCII.


4
Khá thú vị. Nhưng chìa khóa này có thực sự có thể sử dụng được không? Tôi tin rằng có nhiều giấy phép nhúng hơn khóa thực tế.
Daniel B

1
@DanielB Tất cả những gì bạn cần làm là gọi cho MS và xác nhận rằng trên thực tế, bạn đang cài đặt Windows trên cùng một máy tính với máy tính bạn đã bán.
Đạp xe

37
Hoặc đơn giản hơn:sudo hexdump -s 56 -e '"MSDM key: " /29 "%s\n"' /sys/firmware/acpi/tables/MSDM
david6

2
Tôi đã có cùng một vấn đề và trích xuất thành công khóa bằng phương pháp này, phương pháp này chỉ hoạt động cho các hệ thống UEFI. Tuy nhiên, khi bạn chỉ muốn cài đặt lại hệ thống đi kèm với Windows được cài đặt sẵn, chỉ cần lấy một hình ảnh cài đặt (Microsoft làm cho nó đủ khó vì một số lý do), phá vỡ kiểm tra khóa pesky bằng khóa OEM chung tùy thuộc vào phiên bản bạn muốn cài đặt và khi quá trình cài đặt kết thúc, Windows sẽ lấy khóa của bạn từ BIOS EFI và tự động kích hoạt (!). Tesed trên hệ thống của riêng tôi với cài đặt lại Windows 8.1.
Gregor

5
@ david6 Đơn giản hơn: sudo tail -c +56 / sys / firmware / acpi / bảng / MSDM
Nehal J Wani

28

Sử dụng Fedora tôi đã thử với:

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

Điều này đã cho tôi kết quả như sau:

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

Khóa sản phẩm đã được thay thế bằng #.


1
Vâng, điều đó cũng hoạt động - Tôi đặt hdcâu trả lời của mình vì nó cũng hiển thị dữ liệu nhị phân, do đó bạn có sự phân tách rõ ràng hơn về nơi nó bắt đầu.
Đi xe đạp

8
Đối với mức độ dễ đọc: sudo cat / sys / firmware / acpi / bảng / MSDM | chuỗi
Aaron J Lang

1
Và để lấy chìa khóa thực tếsudo cat /sys/firmware/acpi/tables/MSDM | strings | tail -n 1
George Sapkin

9

Tôi không thể tìm thấy /sys/firmware/acpi/tables/MSDMtrên ASUS T100TA của tôi chạy Ubuntu 13.10 amd64, nhưng tôi thấy một gói được gọi là acpidumpkhá hữu ích. Chạy acpidumpbằng root tôi đã có thể lấy nội dung bảng 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
Hừm - hai điều. (1) tại sao bạn vào ngày 13.10, là tháng chín năm 2014. Và (2) - thư mục /sys/firmware/acpi/tables/có tồn tại không? Có thể bạn có một cái gì đó gắn nó ở một nơi khác (hoặc hoàn toàn không).
Đi xe đạp

@Riking, nó tồn tại nhưng tập tin duy nhất trong thư mục đó là DSDT. Tại thời điểm tôi thiết lập, thiết bị 13.10 là phiên bản Ubuntu mới nhất hiện có. Việc chạy Linux 64 bit với UEFI 32 bit khá phức tạp nên tôi đã không dành thời gian để nâng cấp nó. Tôi thực sự không bao giờ sử dụng thiết bị này và nghĩ rằng nó có thể tốt để đưa Windows 8 trở lại cho người khác sử dụng.
Eric

8

Đây là một biến thể của câu trả lời được chấp nhận cho bạn đầu ra thân thiện hơn nhiều, dễ đọc và sao chép hơn

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

Đã thử nghiệm trên Ubuntu 14.04 cho Windows 8.1


1
Để chỉ nhận khóa, thêm: | tail -1vào cuối lệnh.
Victor
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.