BigBastis Blog About Me & my Digital Lifestyle

2Mai/124

Office oder Windows Lizenzschluessel aus einer anderen Windows Installation wiederherstellen

Die Beiträge hier im Blog darüber wie man den Office und Windows Key aus der Registry lesen kann erfreuen sich sich großer Beliebtheit, weswegen ich auch das kleine Tool Get My Keys Back erstellt habe.

Doch erreichen mich immer mehr Mails mit der Frage danach wie man den Schlüssel wiederherstellen kann wenn man Windows neuinstalliert hat, wenn die Installation beschädigt ist oder wenn die Daten auf einer anderen Festplatte liegen.

Manchmal passiert es auch, dass Get My Keys Back es nicht schafft den Office Key auszulesen, obwohl Office installiert ist. Mit dieser Anleitung könnt ihr es nun manuell machen.

Get My Keys Back funktioniert hier natürlich nicht, da es nur in der gerade aktiven Registry nach dem Schlüssel sucht. Ich habe mich mit dieser Frage etwas beschäftigt und hoffe euch mit diesem Beitrag eine Hilfestellung geben zu können.

SerialDecoder

Um es euch möglichst einfach zu machen habe ich das kleine Tool "SerialDecoder" geschrieben, das ihr ab sofort auf meiner Homepage herunterladen und testen könnt. Dieses Programm benötigt aber auch die Werte aus der Registry, und zwar aus der Registry die nicht mehr aktiv ist, z.B. die auf eurer anderen Festplatte von der ihr die Seriennummer haben wollt.

Der Prozess den Schlüssel zu beschaffen unterteilt sich in drei Schritte:

  1. Beschaffen der Registrydaten von der alten Festplatte
  2. Beschaffen der Daten aus der alten Registry
  3. Umwandeln der Daten in den schlüssel
Schritt 1

An euch liegt es nun diese Daten aus der anderen Festplatte zu lesen. Dies ist relativ einfach, folgt einfach dieser kleinen Anleitung:

  1. Schließt die alte Festplatte an und öffnet diese im Windows Explorer
  2. Navigiert dort in das Verzeichnis: \Windows\System32\config
  3. Kopiert aus diesem Verzeichnis die Datei "SOFTWARE" in ein Verzeichnis auf eurer aktiven Festplatte.

    Die gesuchte Datei

  4. Startet nun die Registry, indem ihr die Windows-Taste und die R-Taste gleichzeitig drückt.

    Windows-Taste + R drücken

  5. In das nun erscheinende Fenster tippt ihr "regedit" ohne "" und drückt auf OK.
  6. Im Regestrierungseditor klickt ihr auf Datei und dann auf Struktur laden... (Tipp: Struktur laden ist nur anklickbar, wenn ihr den passenden Knoten (HKEY_LOCAL_MACHINE) auswählt)

    Struktur laden

  7.  Wählt nun die eben kopierte Datei "SOFTWARE" aus.

    Datei laden

  8. Gebt nun einen schlüssigen Namen ein z.B. "Alte Festplatte"
  9. Nun wird diese Registry Datei geladen und ihr seht sie in eurem Registry-Explorer. Öffnet diese nun.

Schritt 2: Auslesen der Schlüssel

Navigiert in der nun geladenen Struktur an folgende Stellen um die Keys zu erhalten:

Office auf 32-Bit Systemen:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office

Office auf 64-Bit Systemen:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office

Bei Office wählt ihr nun eure Version, wobei

  • 11 = 2003
  • 12 = 2007
  • 14 = 2010
  • 15 = 2013

Im Normalfall solltet ihr einfach die größte Zahl auswählen. In diesem Verzeichnis wählt ihr nun den Ordner Registration. Hier werden wahrscheinlich einige Ordner mit sehr kryptischen Namen sein, sucht den wo der Schlüssel namens "DigitalProductId" auftaucht:

Probiert die Ordner einfach durch, der richtige Ordner ist meist der mit den meisten Schlüsseln.

Klickt nun mit der rechten Maustaste auf den passenden Ordner und wählt "Exportieren". Speichert die Datei nun ab.

(Falls ihr nur diesen Key benötigt springt zum Schritt 3 Schlüssel umwandeln weiter unten)

Windows Key:

SOFTWARE\Microsoft\Windows NT\CurrentVersion

Hier seht ihr nun einige Schlüssel, unter Anderem auch den DigitalProductId, der uns interessiert (Beispiel für Windows Key).

Klickt nun mir der rechten Maustaste auf den Ordner "CurrentVersion" in der rechten Übersicht und wählt "Exportieren" und speichert die Daten an einem für euch leicht wieder findbaren Ort.

Schritt 3: Schlüssel umwandeln

Da ihr nun die Daten zum Windows und/oder zum Office Key gesichert habt könnt ihr diese nun nutzen um den Key wiederherzustellen.

Nun müsst ihr mein kleines Tool namens "SerialDecoder" von meiner Homepage laden und starten.

Öffnet nun eine der Dateien die ihr eben durch das Exportieren erstellt habt in einem Texteditor:
Sucht den Eintrag namens "DigitalProductId" und markiert alle Zeichen ab hex: bis zum Ende des Eintrags. Ein Beispiel wie es aussehen kann seht ihr in dem Oberen Bild. Wichtig: Markiert wirklich nur diesen Bereich ohne das hex: und ohne den Eigenschaften-Namen, wirklich genauso wie es oben in dem Bild gezeigt ist.

Das Bild zeigt ein Beispiel für einen Windows Key, die Office-Keys sind für gewöhnlich länger, lasst euch davon also nicht verwirren.

Kopiert diesen Markierten Text nun in die Zwischenablage und fügt diesen Text nun im SerialDecoder ein:

Nicht erschrecken: Der SerialDecoder entfernt alle unnötigen Zeichen wie Leerzeichen und Zeilenumbrüche.

Klickt nun auf "Schlüssel auslesen" unten im Fenster und wählt die Art von Schlüssel die ihr auslesen wollt. (Hier Windows Key)

Der SerialDecoder wandelt nun die Daten in euren Key um.

ACHTUNG: SerialDecoder kann nicht feststellen ob ihr die Daten korrekt eingefügt habt, also ob ihr vielleicht zuviel kopiert habt oder zu wenig. Deswegen achtet sehr genau was ihr reinkopiert! Des Weiteren kann ich natürlich nicht für die Korrektheit des ausgelesenen Keys garantieren. Das Programm ist grad in der Testphase und lebt momentan von eurem Feedback, damit ich es weiter verbessern kann.

6Nov/0913

Windows Lizenzschlüssel aus der Registry auslesen

Da der Beitrag über das Auslesen des Office Schlüssels sehr beliebt ist, habe ich nun auch das Lesen des Windows Schlüssels als Beispiel verfasst.

Das Vorgehen hierbei ist sogar noch einfacher als beim Office Schlüssel, da es keine Aufteilungen in Versionen gibt! In allen Windows NT Versionen (also alle ab XP) befindet sich der Schlüssel in der Registry unter diesem Pfad:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

winkeyBild 1: Der Registryordner mit dem Windows Schlüssel

In diesem Ordner finden wir den Binärwert "DigitalProductId", der viele Hexadezimalzeichen enthält!

Der Code ist hierbei dem aus dem Officebeispiel sehr ähnlich, da er ja auch nichts anderes macht, als den im HEX-Code vorhandenen Key in lesbare Schrift umzuwandeln! Die einzige Schwierigkeit hierbei besteht darin, den Key richtig zusammen zusetzen, denn es wird nicht das komplette Alphabet verwendet um einen Windows Key zu generieren sondern nur diese Zeichen:

B C D F G H J K M P Q R T V W X Y 2 3 4 6 7 8 9

Wenn man das beachtet steht einem nichts mehr im Wege! Der Code aus diesem Beispiel stammt ausnahmsweise nicht von mir sondern von vcware.de - danke dafür an dieser Stelle!

Ich habe diesbezüglich wie immer ein kleines Demoprojekt angefertigt, das ihr euch herunterladenkönnt! Download

Bitte berichtet ob es bei euch gut geklappt hat.
Hier könnt ihr euch das komplette kostenlose Programm zum auslesen von Windows & Office key herunterladen. (English & Deutsch)

14Jul/090

Microsofts Visionen werden Langsam Wirklichkeit

Microsoft ist ja berühmt dafür, in unregelmäßigen Abständen Videos mit ihren eigenen Zukunftsvisionen zu veröffentlichen. Meißt sind auch Angaben dabei wie lange es dauern wird, bis wir oder "die" (Microsoft) diese Visionen verwirklicht haben.

Erst vor ein paar Monaten hat Microsoft ein Video Veröffentlicht, dass zeigen soll wie unser Leben in der Zukunft aussehen soll. Aber darum gehts jetzt nicht, denn ich will jetzt lieber einen kleinen Rückblick in das Jahr 2005 starten, wo Microsoft ein Video Veröffentlicht hat, das beschreibt wie Zusammenarbeit in der Zukunft (damals in 2010) aussehen wird:

Warum ich jetzt darauf zu sprechen komme? Ganz einfach, denn vor wenigen Tagen hat Microsoft Videos veröffentlicht, die die Verbesserungen von Office in der Version 2010 zeigen. - So ein Zufall oder?

Und erstaunlicherweise sind viele der Punkte die man in dem Video sieht tatsächlich Bestandteil von Office 2010.

So können zb. mehrere Personen gleichzeitig an einem Dokument arbeiten, egal ob Office auf dem Rechner installiert oder nicht, es genügt ein Browser!

Präsentationen können von jedem Ort auf der Welt gehalten werden und auch hier genügt ein Browser zum Vorführen oder zum anschauen der Präsentation!

Dateien sind für alle live zugänglich und Änderungen sehr einfach einsehbar (siehe OneNote 2010).

Lediglich die Sache mit den Webcams ist zur Zeit noch nicht so ohne weiteres möglich! Aber das wird sicher auch noch!

Ich persönlich freue mich schon auf der neue Office und hoffe Microsoft wird auch eine vernünftige Mac-Version bereitstellen!

3Mai/0927

Den Office Lizenzschlüssel aus der Registry auslesen

Bei einem Praktikum hat man mir mal die Aufgabe gestellt alle Office (und noch andere) Schlüssel zu Katalogisieren, um zu sehen ob irgendwelche Schlüssel doppelt verwendet werden und ob noch weitere Lizenzen von Nöten sind!

Diese Aufgabe würde sich als sehr Zeitaufwendig herausstellen, da es mehr als 100 Rechner inklusive Laptops in der Firma gibt. Alle aufzufinden, inbesondere die Leptops war dann nicht mehr ganz einfach!

Deswegen habe ich mich dafür entschieden ein kleines Programm zu erstellen, dass für mich den KEY ausließt und ihn für mich Lokal auf einem Freigegebenen Laufwerk speichert! Dabei habe ich die Startscripts auf dem Server so modifiziert, dass mein Programm bei den Start von Windows einmal ausgeführt wird und nach installierten Office Version sucht!

So muss ich nicht durch die ganze Firma rennen und die Leute belästigen und habe gleich eine gute Übersicht!

Wo ist der Schlüssel eigentlich gespeichert? Wie so ziemlich alles bei Wondows in der Registry, nämlich hier:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Registration

unbenanntDer Ordner Registration teilt sich dann jeh nach Installation in noch mehrere Unterordner auf, die aus einer ID der Installation bestehen. In diesen ordnern gibt es den Schlüssel "DigitalProductID" die die Seriennummer enthällt!

Doch leider ist diese Seriennummer nicht im Klartext gespeichert, sondern im Hexadedimalen Zahlensystem, weswegen wir das ersteinmal umwandeln müssen!

Übrigens in dem oben angegebenen Registry Pfad steht die 12.0 für die Office version in diesem Fall ist es Office 2007. 2003 hätte dann entsprechend eine 11 dort stehen usw...

Diese Funktion wird für uns die Konvertierung vornehmen. Ich werde diese jetzt nicht auseinandernehmen, da sie im grunde ein Zahlensystem in ein anderes konvertiert. Das besondere Hier ist, dass es in den Office Keys immer nur die gleichen paar buchstaben gibt! Nämlich: B, D, D, F, G, H, J, K, M, P, Q, R, T, V, W X und die Zahlen 2, 3, 4, 6, 7, 8, 9. Warum das so ist weis ich leider auch nicht, darauf muss man bei der Konvertirung aber achten!


    Function Reg(ByVal hexbuf() As Byte)
        Dim tmp As String

        For l = LBound(hexbuf) To UBound(hexbuf)
            tmp = tmp & " " & Hex(hexbuf(l))
        Next
        Dim StartOffset As Integer = 52
        Dim EndOffset As Integer = 67
        Dim Digits(24)

        Digits(0) = "B" : Digits(1) = "C" : Digits(2) = "D" : Digits(3) = "F"
        Digits(4) = "G" : Digits(5) = "H" : Digits(6) = "J" : Digits(7) = "K"
        Digits(8) = "M" : Digits(9) = "P" : Digits(10) = "Q" : Digits(11) = "R"
        Digits(12) = "T" : Digits(13) = "V" : Digits(14) = "W" : Digits(15) = "X"
        Digits(16) = "Y" : Digits(17) = "2" : Digits(18) = "3" : Digits(19) = "4"
        Digits(20) = "6" : Digits(21) = "7" : Digits(22) = "8" : Digits(23) = "9"

        Dim dLen As Integer = 29
        Dim sLen As Integer = 15
        Dim HexDigitalPID(15)
        Dim Des(30)

        Dim tmp2 As String
        Dim HN As Integer
        Dim Value As Integer
        Dim KEYSTRING2 As String

        For i As Integer = StartOffset To EndOffset
            HexDigitalPID(i - StartOffset) = hexbuf(i)
            tmp2 = tmp2 & " " & Hex(HexDigitalPID(i - StartOffset))
        Next
        Dim KEYSTRING As String = ""
        For i = dLen - 1 To 0 Step -1
            If ((i + 1) Mod 6) = 0 Then
                Des(i) = "-"
                KEYSTRING = KEYSTRING & "-"
            Else
                HN = 0
                For N As Integer = (sLen - 1) To 0 Step -1
                    Value = ((HN * 2 ^ 8 ) Or HexDigitalPID(N))
                    HexDigitalPID(N) = Value \ 24
                    HN = (Value Mod 24)
                Next
                Des(i) = Digits(HN)
                KEYSTRING = KEYSTRING & Digits(HN)
            End If
        Next
        KEYSTRING2 = StrReverse(KEYSTRING)

        Return KEYSTRING2
    End Function

Diese Funktion erwartet einen Parameter zur ausführung, nämlich hexbuf() as Byte also einen Byte Array! den bekommen wir in dem wir einen Wert aus der Registry auslesen, undzwar einen REG_BINARY Wert!

Diese Funktion stammt nicht von mir, ich habe sie vor einer Weile im Netz gefunden und in VB.NET umgeschrieben.

Einen Wert aus der Registry auszulesen ist mit .NET relativ einfach:


Dim Value() As Byte = My.Computer.Registry.GetValue_
                  ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Registration\...", "DigitalProductID", "")

Alle dazu benötigten Funktionen stellt uns der My-Namespace zur Verfügung!

Im Großen und Ganzen wars das schon gewesen! Ich habe diesbezüglich ein kleines Demo - Projekt angefertigt, dass ihr hier herunterladen könnt! In dem Projekt werden alle eure Office Keys ausgelesen, da oftmalls Outlook einen anderen KEY hat als der Rest usw... Das kann man daran erkennen, dass in dem Ordner Registration mehrere Unterordner gibt, die aus einer langen Zahl bestehen, welche auf jedem Computer anders ist! - Ihr müsst ledeglich die Version anpassen, im meinem Beispiel wird der KEY von Office 2007 ausgelesen. Also Version 12!

Hat dieser Beitrag dir geholfen? Hattest du Probleme oder hast du Anregungen? Schreib dann bitte einen Kommentar.

Hier gibts das Demo-Projekt: Office Key Finder - Demo Projekt

Hier könnt ihr euch das komplette kostenlose Programm zum auslesen vom Windows & Office Key herunterladen. (English & Deutsch)

   
Get Adobe Flash player