Anbei ein paar gesammelte Notizen und Hinweise für mögliche zukünftige Weiterentwicklung des Artikels. Vielleicht will sich ja irgend wann mal jemand daran wagen, die Produktaktivierung von Windows 8 und 10 auch noch auszutricksen, so daß es auch in der VM uneingeschränkt nutzbar ist.
Der Knackpunkt ist nach wie vor, die virtuelle Hardware der physikalischen Hardware an entscheidenden Punkten anzupassen. Der Schwerpunkt der Hardwareprüfung von Windows 10 soll wohl auf dem Mainboard liegen.
Der Artikel wurde vor Jahren mit VirtualBox Version 4.2 entwickelt. Möglicherweise sind inzwischen neue Funktionen hinzugekommen, die weitere Hardwareanpassungen möglich machen.
Möglicherweise kann die 30-Tage-Frist für die VM-Nutzung bis zum nächsten physikalischen Boot unendlich verlängert werden mit diesem Trick:
Win + R drücken regedit eingeben und starten.
Zum Pfad: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT \CurrentVersion\SoftwareProtectionPlatform\Activation.
Im rechten Feld ein Doppelklick auf Manual und den Wert von 0 auf 1 ändern.
Jetzt neu starten.
gefunden hier: https://www.deskmodder.de/wiki/index.php/Seriennummern_Key_generischer_Schl%C3%BCssel_Windows_10.
Womöglich läßt sich sogar Internet in der VM mit dieser Änderung nutzen, doch so optimistisch bin ich erst einmal nicht.
Dies sollen sog. "Whitepapers" sein, die den Umgang mit oa3tool.exe erklären. oa3tool.exe wird von OEM-Herstellern genutzt, um die MSDM-Tabelle für jeden Rechner individuell zu erstellen. Möglicherweise kann eine Fake-MSDM erstellt werden, die zur virtuellen Hardware paßt. Vielleicht finden sich auch Hinweise, welche Hardwarebestandteile in Windows 8 und 10 tatsächlich geprüft werden. Es handelt sich um EXE-Dateien, die ich weder mit wine noch mit XP ausführen konnte:
OEM ACTIVATION 3.0 OVERVIEW AND USAGE GUIDE
http://www.datafilehost.com/d/aae1286f
OEM ACTIVATION 3.0 CUSTOM SOLUTION TEST GUIDANCE PLAN
http://www.datafilehost.com/d/ec9cad5e
OEM ACTIVATION 3.0 WEB SERVICES REFERENCE GUIDE FOR TEST
http://www.datafilehost.com/d/4de630c0
OEM ACTIVATION 3.0 DIGITAL OPERATIONS CENTER PORTAL REFERENCE GUIDE FAQ
http://www.datafilehost.com/d/d1120051
OEM ACTIVATION 3.0 DIGITAL OPERATIONS CENTER PORTAL REFERENCE GUIDE FOR OEMS
http://www.datafilehost.com/d/b2c63819
OEM ACTIVATION 3.0 DIGITAL OPERATIONS CENTER PORTAL REFERENCE GUIDE FOR TPIS
http://www.datafilehost.com/d/82793f77
OEM ACTIVATION 3.0 DIGITAL OPERATIONS CENTER TESTING PORTAL DOCUMENTATION
http://www.datafilehost.com/d/4b628e1d
OEM ACTIVATION 3.0 FACTORY FLOOR GUIDANCE V1.5
http://www.datafilehost.com/d/bf3b4c55
OEM ACTIVATION 3.0 MOTHERBOARD REPLACEMENT GUIDE
http://www.datafilehost.com/d/f5cd7bcc
Interessant ist auch die undokumentierte Option "oa3tool.exe /validate", die einige Infos zu MSDM ausspuckt.
Mit Clover kann ein UEFI auf Softwarebasis eingesetzt werden. Die Verwendung im Rahmen des Artikels habe ich hier beschrieben: https://forum.ubuntuusers.de/topic/installiertes-windows-in-virtualbox-nutzen/9/#Clover-als-EFI-Bootloader-in-VirtualBox-Nachfolger-von-DUET. Clover bietet ein paar Möglichkeiten zur Hardwareanpassung, insbesondere kann das virtuelle BIOS von VirtualBox verändert werden. In den VirtualBox-BIOS-Tabellen gibt es einige Einträge, die "VirtualBox" als Hersteller nennen; stattdessen könnten diese Einträge den physikalischen Einträgen angeglichen werden. Das Auslesen und Anpassen der VM-BIOS-Einträge ist nicht ganz trivial, weshalb ich diesen Weg seinerzeit nicht weiterverfolgt habe. Diese Einträge könnten durchaus der Schlüssel zur Überlistung der Softwareaktivierung sein.
Mit dem Programm iasl (enthalten im Paket acpica-tools) können die mittels dd ausgelesenen Tabellen disassembliert und wieder kompiliert werden. Beispiel: DSDT auslesen
sudo dd if=/sys/firmware/acpi/tables DSDT of=~/DSDT.aml
Disassemblieren (DSDT.dsl wird erzeugt):
iasl -d ~/DSDT.aml
Kompilieren (DSDT.aml wird erzeugt):
iasl -f -oa ~/DSDT.dsl
-f erzwingt die Kompilierung auch bei Fehlern (war bei meiner DSDT tatsächlich nötig, viele Hersteller sollen in der Hinsicht sehr schlampig sein), -oa unterdrückt Optimierungen. Die erzeugt .aml-Datei ist nicht unbedingt genauso groß wie das Original. Die so erzeugten BIOS-Dateien können in einen EFI-Ordner von Clover abgelegt werden und werden beim Boot automatisch eingebunden.
Diese wertvolle Info habe ich mal per PN bekommen:
Die HardwareInfo kann - zumindest zum Teil - aus der Windows Registry abgefragt werden. Dort gibt es z.B. den Key:
HKEY_LOCAL_MACHINE → SYSTEM → HardwareConfig
Darin wiederum sind mehrere Unterschlüssel (mit UUIDs bezeichnet, sieht zum. danach aus). Diese Unterschlüssel enthalten die BIOS Info (also Version Nr., Manufacturer, etc.) Auf meiner Maschine sind dabei 5 Unterschlüssel vorhanden, zwei davon enthalten BIOS Werte, zwei andere sind mehr oder weniger leer. Die zwei Werte-Sätze unterscheiden sich leicht, in einem steht z.B: Version 2.09, im anderen 2.15. Es sieht also so aus, als ob Infos über mehrere verschiedene BIOS-Versionen dort abgelegt sind.
Der letzte Unterschlüssel ist nicht mit einer UUID bezeichnet sondern trägt den Namen 'Current'. Und jetzt wirds interessant:
Starte ich W8 native, enthält der 'Current' Key die Werte eines der o.g. 'vollen' Unterschlüssel, und zwar genau die Werte, die ich auch mit dmidecode unter Linux abgefragt habe.
Starte ich aber W8 über die VM, enthält der 'current' Key keine Info, er verweist quasi auf einen der o.g. 'leeren' Unterschlüssel.
Außerdem:
Passend dazu gibt "slmgr /vbl all " bei den Lizensierungs-Infos in der VM einen andere 'Installations-ID' an als in W8 native. D.h. obwohl die HardwareInfo eigentlich vorhanden ist, ignoriert sie W8. Evtl. wird besagte Installations-ID bei jeden Start aus den HW Daten generiert
Möglicherweise entspricht diese Installations-ID dem in MSDM gespeicherten Hardware-Hash.
Umfangreicher Thread rund um MSDM und Produktaktivierung von Windows 8
Tools, die nützlich sein können:
Syntax zu regedit
Darin ein Link zum Vergleichen von Registrys: windiff
Ein Hinweis zum Aktivieren von neuen Registry-Einträgen:
To activate registry changes in HKEY_CURRENT_USER without logging off:
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True
Ob das auch für Einträge in HKEY_LOCAL_MACHINE wirkt, weiß ich nicht.
Eintragen in Registry ohne blödes Nachfragen:
regedit /s /Pfad/zur/datei.reg
(In einer batch-Datei interessant)
slmgr Software Licensing Management Tool
Um die Aktivierungsüberprüfung von Hand anzustoßen, könnte slui.exe nützlich sein. Übersicht für slui 1 bis 4, Übersicht für slui 1-9.