XP-Aktivierung per Internet entschlüsselt

HTML ruft COM

Während der Aktivierung werden die Methoden der COM-Komponente wie folgt durch die HTML-Applikation aufgerufen:

1. Das COM-Objekt wird instanziiert und dann mittels "Initialize()" initialisiert. Der Parameter "dwBPC" ist dabei immer auf 50293 gesetzt. Das entspricht dem bis zur Beta 2 von Windows XP benutzten Produkt-Code. Obwohl die finale englische Version den Produkt-Code 55274 trägt, findet diese Änderung keine Entsprechung im Aufruf von "Initialize()". Den Produkt-Code Ihrer XP-Installation finden Sie heraus, indem Sie die ersten fünf Ziffern der Produkt-ID nehmen, die Sie im Eigenschaften-Fenster von "Arbeitsplatz" erfahren.

Der Parameter "dwMode" wird immer mit 1 belegt, und "bstrLicSource" ist immer ein leerer BSTR. Die Bedeutung dieser beiden Parameter ist noch unklar. Wenn der Methoden-Aufruf erfolgreich ist, liefert er in "pdwRetCode" 0 zurück. Ein anderer Wert zeigt an, dass ein Fehler aufgetreten ist.

2. Die Registrierungsinformationen werden durch den Aufruf der diversen "Set*()"-Methoden an das Objekt übertragen. Da wir allerdings nicht registrieren, sondern nur aktivieren wollen, erhalten alle Methoden einen leeren BSTR für das Argument "bstrNewVal".

3. Mittels "AsyncProcessHandshakeRequest()" wird die Verbindung zum Aktivierungs-Server hergestellt. Der Boolsche Parameter "bReviseCustInfo" erhält den Wert "false", weil wir nicht registrieren wollen. Da es sich um eine asynchrone Kommunikation handelt, kehrt die Methode sofort zum Hauptprogramm zurück, ohne auf das Ende der Kommunikation zu warten.

4. "GetAsyncProcessReturnCode()" wird wiederholt aufgerufen, um den Status der Kommunikation mit dem Server abzufragen. Solange der Handshake noch nicht abgeschlossen ist, liefert die Methode den Wert 0x255 in "pdwRetCode" zurück. Ein erfolgreicher Abschluss wird mittels 0 signalisiert. Jedes andere Resultat zeigt einen Fehler an.

5. Die Methode "AsyncProcessNewLicenseRequest()" übernimmt den Hauptteil der Internet-Aktivierung. Sie überträgt - neben einer Reihe von anderen Daten - den Produkt-Key der XP-Installation und den Hardware-Hash für die Identifikation des Computers. Diese Informationen werden wir in den nächsten Abschnitten des Artikels genauer durchleuchten.

6. "GetAsyncProcessReturnCode()" wird nun wiederum wiederholt aufgerufen, bis die Kommunikation mit dem Aktivierungs-Server abgeschlossen ist (siehe Schritt 4).