
Windows XP Keygen
Ein Windows-XP-/Windows-Server-2003-VLK-Keygenerator. Dieses Tool ermöglicht es Ihnen, gültige Windows-XP-Schlüssel auf Basis des Raw Product Key zu generieren, der zufällig sein kann.
Der Raw Product Key (RPK) wird in Form von 9 Ziffern XXX-YYYYYY angegeben und ist nur erforderlich, um einen Windows-XP-Schlüssel zu generieren.

Gehen Sie zum Tab Releases und laden Sie die neueste Version von dort herunter.
Dieses Projekt ist nicht tot – ich werde mein Bestes tun, um es zur Vollendung zu bringen.
Im Allgemeinen trennt uns von der Generierung gültiger Windows-XP-Schlüssel für JEDE EDITION und JEDEN BUILD nur das Fehlen der jeweiligen privaten Schlüssel, die aus ihren öffentlichen Gegenstücken in pidgen.dll erzeugt werden. Es gibt keinen Code für die diskrete Logarithmusfunktion elliptischer Kurven, der online weithin verfügbar ist, sondern nur vage Informationen darüber, wie man es macht.
Im Laufe der Zeit wurde das Problem teilweise gelöst.
Die BINK-Ressource war in keiner Weise codiert und die Daten wurden lediglich sequenziell in die Ressource geschrieben. sk00ter hat das BINK-Format in den MDL-Foren ebenfalls vollständig erklärt.
Unter Nutzung des vorhandenen Wissens der Community zu diesem Thema habe ich einen BINK-Reader in Python 3 geschrieben. Die Datei ist in diesem Repository öffentlich; klicken Sie hier, um den Quellcode anzusehen.
Die Lösung des diskreten Logarithmus ist der am wenigsten erforschte Forschungsbereich Stand 28. Mai 2023. Mein Freund nephacks hat jedoch genau jenes schwer fassbare Werkzeug gefunden, um dieses schwierige Problem in den dunkelsten Ecken des Internets zu lösen. Es heißt ECDLP (Elliptic Curve Discrete Logarithm Problem) Solver von Mr. HAANDI. Da es äußerst mühsam war, es online zu finden, habe ich es auf meiner Website erneut hochgeladen. Sie können das Tool hier herunterladen.
Die ReadMe-Datei, die mit der Version 0.2a des Solvers geliefert wird, ist für sich genommen gut genug, sodass jeder mit Verstand das Tool einrichten kann. Allerdings ist es nicht Open Source, weshalb die Integration in meinen Keygen nachweislich unmöglich ist.
Im Idealfall würde der Keygen Sie nach einer aus pidgen.dll extrahierten BINK-Ressource fragen, die er dann in folgende Segmente entpackt:
pubX; pubY)genX; genY)a; b)pMit Kenntnis dieser Segmente würde der Keygen die Generatorordnung genOrder mithilfe des Schoof-Algorithmus per Brute-Force ermitteln, gefolgt vom privaten Schlüssel privateKey, wobei die berechnete genOrder genutzt wird, um den optimalsten Pollard-Rho-Algorithmus anzuwenden. Es besteht kein Zweifel, dass wir mit moderner Rechenleistung jeden privaten Schlüssel innerhalb von 20 Minuten knacken können, sofern wir den funktionierenden Algorithmus haben.
Sobald der Keygen den richtigen privaten Schlüssel per Brute-Force ermittelt hat, reduziert sich die Aufgabe darauf, tatsächlich einen Schlüssel zu generieren, was dieser Keygen tut. Um Ihnen eine bessere Perspektive zu geben, kann ich Ihnen den Ablauf des idealen Keygens zeigen. Durchgestrichen ist, was mein Keygen implementiert:
genOrder, privateKey)Wir müssen einen zufälligen Raw Product Key als Basis verwenden, um eine Produkt-ID in der Form AAAAA-BBB-CCCCCCS-DDEEE zu generieren.
| Ziffern | Bedeutung |
|---|---|
| AAAAA | OS-Familienkonstante |
| BBB | Channel-ID |
| CCCCCC | Sequenznummer |
| S | Prüfziffer |
| DD | Public-Key-Index |
| EEE | Zufällige 3-stellige Zahl |
Die OS-Familienkonstante AAAAA ist für jede Serie von Windows XP unterschiedlich. Beispielsweise beträgt sie für SP3 76487.
Die Abschnitte BBB und CCCCCC codieren im Wesentlichen den Raw Product Key. Wenn beispielsweise der erste Abschnitt gleich XXX und der zweite Abschnitt gleich YYYYYY ist, wird der Raw Product Key als XXX-YYYYYY codiert.
Die Prüfziffer S wird so gewählt, dass die Summe aller C-Ziffern, zu der sie addiert wird, eine durch 7 teilbare Zahl ergibt.
Der Public-Key-Index DD zeigt uns, welcher öffentliche Schlüssel verwendet wurde, um die Authentizität unseres Product Keys erfolgreich zu verifizieren. Beispielsweise beträgt er 22 für Professional-Schlüssel und 23 für VLK-Schlüssel.
Eine zufällige Zahl EEE wird verwendet, um jedes Mal eine andere Installations-ID zu generieren.
Der Product Key selbst (nicht zu verwechseln mit dem RPK) hat die Form FFFFF-GGGGG-HHHHH-JJJJJ-KKKKK, codiert in Base-24 mit dem Alphabet BCDFGHJKMPQRTVWXY2346789, um Zeichen auszuschließen, die leicht verwechselt werden können, wie I und 1 oder O und 0.
Gemäß der Formel für die Alphabetkapazität kann der Schlüssel höchstens 114 Bits an Informationen enthalten. $$N = \log_2(24^{25}) \approx 114$$
Basierend auf dieser Berechnung entpacken wir den 114-Bit-Product Key in 4 geordnete Segmente:
| Segment | Kapazität | Daten |
|---|---|---|
| Upgrade | 1 Bit | Upgrade-Versionsflag |
| Serial | 30 Bits | Raw Product Key (RPK) |
| Hash | 28 Bits | RPK-Hash |
| Signatur | 55 Bits | Elliptische-Kurven-Signatur für den RPK-Hash |
Der Einfachheit halber kombinieren wir die Segmente Upgrade und Serial zu einem einzigen Segment namens Data. Nach dieser Logik können wir den RPK extrahieren, indem wir Data nach rechts verschieben, und ihn wieder einpacken, indem wir Bits nach links verschieben, da die meisten a priori gültigen Product Keys, die ich geprüft habe, das Upgrade-Bit auf 1 gesetzt hatten.
Microsoft überarbeitete das Product-Key-Format mit Windows Server 2003, um einen Backend-Server-Authentifizierungsschlüssel aufzunehmen, was ein tatsächlich sicherer Ansatz zur Lizenzvalidierung war, da niemand jemals erraten konnte, welchen Validierungsalgorithmus sie auf ihrem privaten Server eingesetzt hatten. Neben der Hinzufügung des Online-Validierungsmechanismus erhöhten sie auch die gesamte Arithmetik von 384 auf 512 Bits und den Signaturskalar auf 62 Bits an Informationen.
| Segment | Kapazität | Daten |
|---|---|---|
| Upgrade | 1 Bit | Upgrade-Versionsflag |
| Channel-ID | 10 Bits | Der BBB-Teil des RPK |
| Hash | 31 Bits | RPK-Hash |
| Signatur | 62 Bits | Elliptische-Kurven-Signatur für den RPK-Hash |
| Auth Key | 10 Bits | Backend-Authentifizierungswert |