|
Die Schwierigkeiten mit dem
CD-Key in Windows
Zurück zum Index
Nicht selten, sofern man an verschiedenen und fremden Maschinen zu arbeiten
hat, taucht die Frage nach dem
CD-Key auf. Sei es, weil der Sticker verschwunden ist und ohne dem eine
Neuinstallation nicht geht, oder andere Probleme.
Als Supporter steht man vor einem System, das dringend repariert werden
müsste weil startunfähig, die CD ist vorhanden, nur der Aufkleber mit dem
wichtigen Key ist schlicht weg.
Oder das System hat sich völlig zerlegt, bootet nicht, zeigt einen
Festplattenschaden... kurz - auslesen der Registry oder den Hive importieren ist
nicht mehr möglich, der nötige Key zur Neuinstallation - siehe oben, wohl aber
die Original CD mit Windows ist vorhanden.
Auch nicht selten kommt es vor, in kleineren Firmen ist die Aufzeichnung
nicht perfekt organisiert.
Hier gibt es eine Schublade mit CD's, und den zugehörigen Keys in loser Folge.
Die Zuordnung der CD ließe sich noch klären, aber die wild herumfliegenden
Sticker halt nicht mehr. Auch hier kann die Zuordnung wieder hergestellt werden,
was sich bei "toten" Systemen leicht als nützlich erweisen kann. Es
ist eine Frage der Zeit, bevor man das passende Pärchen auf herkömmliche Weise
identifiziert hat.
Wer zum Support eine Bart-CD hat, der kann zwar die Fremdregistry, bzw den
passenden Hive (Software) laden,
nur Tools um den Key, der sich normal unter
HKLM\Software\Microsoft\Windows NT\CurrentVersion\DigitalProductID
befindet, kann man nicht aus einem völlig toten System, gegebenenfalls zweiter
Festplatte auslesen. Massenweise Keyfinder und wie sich die alle nennen, agieren
nur auf dem lokalen System, nicht aber der Importierten Registry, bzw. dem Zweig
davon. Übrigens hat eine PE, oder Bart-CD keinen DigitalProductID-Key - also
nicht wundern.
Die Registry befindet sich auf der entsprechenden Festplatte des unwilligen
Systems unter
C:\Windows\System32\Config
Hat hier, oder in diesem Teil der Festplatte der Fehlerteufel zugeschlagen, dann
gibt es ein Exemplar welches direkt bei der Installation von XP
(oder W2K= C:\Winnt\Repair) angelegt wird, auch noch hier
C:\Windows\Repair
Die gesuchte Datei ist jeweils "Software" ohne jegliche
Dateierweiterung.
Hängt man die Festplatte als weitere in ein vorhandenes System, so ist der
Laufwerksbuchstabe natürlich nicht mehr C:, sondern eben ein anderer und von
der Konfiguration des Host-Windows abhängig.
Hat man sich als Supporter angewöhnt, einen fremden Hive unter dem
angefordertem Schlüssel "Test" zu
laden, so ergibt sich der endgültige Zweig der zu durchforsten ist mit:
HKLM\Test\Microsoft\Windows NT\CurrentVersion\DigitalProductID
was von cd-key.exe als Standard berücksichtigt wird und auch Grund der
Eigenentwicklung war.
Ein erster spielerischer Ansatz, das mit VB6 zu erledigen, war von Erfolg
gekrönt, für die lokale Registry.
Der nächste Schritt, einen importierten Hive zu lesen war nun nur ein Mausklick
entfernt, ebenfalls in VB6.
Ein defekter Hive allerdings, und natürlich auch abgeschaltete
Systemwiederherstellung oder Einwirkung von Schadsoftware die Keys verfremdet, schon klappt genau das nicht mehr. Unter der Bart-CD,
die leider kein Scripting ermöglicht, musste also eine andere Lösung her.
Als schnelle Lösung, ohne aufwendige bunte Interfaces und schmucklos, entstand cd-key.exe
in VB6 erstellt, die dazu nötige DLL - MSVBM60.DLL hat man schnell in die
Bart-CD aus seinem Windows integriert, mehr ist nicht notwendig. Es würde auch
ein USB-Stick reichen, auf dem alles abgelegt ist.
Wer nun auf eine derartige Installation trifft, aber der Hive Software sich
wegen eines Defektes nicht mehr als Struktur laden lässt, der stand bisher
ebenso chancenlos da, immer aus dem Blickwinkel des Supporters
Jetzt nicht mehr, vorrausgesetzt, man kann mit einem Hexeditor umgehen und so
die für den Regedit nicht mehr
ladbare Struktur, oder halt Teile davon, eben anders zu durchforsten, was beispielsweise mit WinHex kein
Problem ist.
Mit dem Wissen, wo der Key steht, der Länge und dem Vorspann zumindest in
Win2000, XP und Windows2003, der kann den sogenannten RAW Key auslesen und den
in das genannte cd-key.exe kopieren, decodieren und .. schon steht der CD
Key im Klartext bereit.
Den sogenannten Rawkey bekommt man zu Gesicht, klickt man auf den Wert
DigitalProductID.
Hier
steht der heiß gesuchte Key
In 0000 steht die Länge des anzulegendes Arrays in Bytes für den kompletten
Schlüssel.
Ab dem Eintrag 52 Dezimal für 30 Bytes! befindet sich der Schlüssel, den es zu
dekodieren gilt.
Ist der Registrypart defekt und läßt sich nur mit Hex-Editoren einlesen,
dann wird es schwieriger.
Tipp: suchen nach dem Produktkey sowie Arraylänge (A4) und ein wenig Intuition.
Auch einer völlig maroden Festplatte oder Installation, sofern noch etwas
willig, lässt sich dieser Key auch aus Sektordaten mit etwas Glück noch
entnehmen, bekommt man die richtige Stelle zu fassen.
Es sei hier noch angemerkt, der Produktkey ist etwas anderes als der CD-Key
(DigitalProductID), was vielerorts gerne verwürfelt wird.
Als Spielerei, geht oder auch nicht - wurde versucht den Code auch in VBS (Wshell)
abzubilden, es geht beides, sowohl den Key aus der Reg, oder importiert
auslesen, als auch den Raw Key in einen richtigen CD.Key umwandeln,
eigentlich sogar recht einfach, wobei aus einem String paarweise Bytes generiert
werden.
Etwas bedenklich mag den aufmerksamen Leser stimmen, wenn es so einfach ist, via
Scripting tief im System zu lesen, dann kann das Schadsoftware sicher auch,
früher oder später ;) und solche Daten in die Weltgeschichte schicken.
prdkey.vbs liest wahlweise den lokalen oder eingebundenen
Key aus, angenommen wird der Name TEST ( gross / klein ist egal), unter dem die
fremde Registry zu finden ist.
cscript prdkey.vbs = lokaler DigitalKey - Beispiel

prdrawkey.vbs (nicht downloadbar) liest aus der Eingabeaufforderung den
30-stelligen Key aus und gibt....... :)
cscript prdrawkey.vbs fb5b............ = CD-Key als Ergebnis.
Die Scripts wurden direkt aus der CMD gestartet.
Als Erweiterung für cd-key.exe könnte man, ohne
allzu großen Aufwand
auch die Registry eines im Netzwerk befindlichen PC's auslesen - wird eventuell
nachgereicht wenn mal wieder Zeit frei ist.
Die verfügbare, bugbereinigte Version (2.01.0008) zeigt den decodierten Key aus
dem Raw-Key
nun vollständig an und zählt die Eingabe der Zeichen unterstützend mit.

MD5: 6E496BB838A46D01206FA641D219AD93 der ausführbaren Datei
Möglicherweise wird noch die Unterstützung zum Lesen und durchsuchen des Hives
direkt von der HD mit eingebaut, was das leidige Abzählen erheblich erleichtern
würde.
Funktioniert übrigens auch problemlos unter Vista und unter Windows 7 - Beta
und RC.
Nachtrag vom 22.11.07
Besonders bei neueren XP-Installationen wird der Key nicht korrekt
entschlüsselt.
Der Grund hierfür liegt darin begründet das Microsoft eine Version XP
inklusive Servicepack2 ( genauer SP2c) wegen Keymangels released hat welches den
Schlüssel erweitert. Damit sind nun mehr Buchstaben möglich was das
vorliegende Programm nicht berücksichtigt, die Art der Generierung hingegen hat
sich nicht geändert wie auch zumindest unter Vista inkl. Servicepack1 Beta
bisher nicht.
Erkennbar sind derartige Versionen ( betrifft XP) an englischsprachigen
Meldungen beim Runterfahren / Start.
Ob das mal programmtechnisch eingepflegt wird ist ungewiss.

|