Puppenspieler

Puppenspieler

Der MSN Explorer ist wieder zurück!.

Worum es geht

Ein Client ohne Gegenstelle ist nur noch ein Fenster

MSN Explorer war Microsofts eigener Internetzugang: Browser, E-Mail, Messenger und Portal in einem. Die Server dahinter sind abgeschaltet. Seitdem startet der Client, fragt nach Hause – und bekommt keine Antwort.

Puppenspieler gibt die Antworten. Er spricht Passport 1.4 und Directory Access, liefert Konfiguration, Anmeldung, Berechtigungen, Assistentenseiten und Installationsdateien. Der Client merkt nichts. Er tanzt, weil jemand die Fäden hält.

Die Kette

Vier Schritte, jeder hängt am vorigen

Fällt einer aus, bleibt der Client stehen – meist ohne zu sagen, warum.

  1. VerzeichnisDer Client fragt den Nexus, wohin er sich wenden soll. Die Antwort landet in der Registry und gilt, bis sie gelöscht wird.
  2. Anmeldungclientpost.srf nimmt Adresse und Kennwort entgegen. Die Antwort trägt Erfolg, Ticket und das Ziel, auf das der Client danach springt.
  3. BerechtigungenWelche Dienste das Konto nutzen darf. Ohne passende Kennung hält sich der Client für nicht freigeschaltet.
  4. InstallationDer Assistent holt Paketbeschreibungen und Programmdateien, legt das Konto lokal an und startet MSN Explorer.

Aus den Binaries

Was bisher nirgends geschrieben stand

Diese Formate stammen nicht aus Dokumentation – die gibt es nicht mehr –, sondern aus dem Disassembly von msnsign.dll und aus Mitschnitten eines funktionierenden Nachbaus. Sie sind der eigentliche Grund, warum es jetzt läuft.

Die Anmeldeantwort

Der Parser prüft ein Attribut auf dem Wurzelelement, nicht ein Kindelement. Das Ticket steht innerhalb von <User>. Und die Zielangabe braucht eine Abfragezeichenfolge, weil der Client &home=… anhängt.

<?xml version="1.0" encoding="utf-8"?>
<LoginResponse Success="true">
  <User>
    <TNP>t=…*1&amp;p=…</TNP>
  </User>
  <Redirect>https://…/dummy.htm?ru=1</Redirect>
</LoginResponse>
Die Directory-Access-Hülle

Das Wurzelelement heißt Return, nicht root. root ist die Hülle der Anfrage. Belegt an einem Endpunkt, der bis heute antwortet.

<Return><Result>SUCCEEDED</Result></Return>
<Return><Result>FAILED</Result><Errors><Error>
  <Code>217</Code><ErrNumber>901</ErrNumber>
</Error></Errors></Return>
Die Mitgliederliste

Der Anmeldename steht in PMN, nicht in Member – erkennbar am XPath Member[PMN $ieq$ "…"] in der DLL. Als Rolle kennt sie SubscriptionViewer, SubscriptionAdmin und BillableAccountAdmin.

<Members><Member>
  <PMN>name@msn.com</PMN>
  <PUIDHigh></PUIDHigh><PUIDLow></PUIDLow>
  <Role>BillableAccountAdmin</Role>
</Member></Members>
Der Nexus liefert bis heute aus

Die Konfigurationsdatei unter nexus.passport.com/client/client.xml wird weiterhin von Microsofts Buildsystem erzeugt und ausgeliefert – nachweisbar am eingebetteten Erzeugungsvermerk mit Zeitstempel, Buildserver und Umgebung prod. Die Anmeldung dorthin ist tot, die Konfiguration lebt.

Stand

Was läuft

Dienste
Verzeichnis client.xmlläuft
Anmeldung clientpost.srfläuft
Profil ClientProfileRequest.srfläuft
Berechtigungen getpermits.aspläuft
Mitglieder enumerate.aspläuft
Assistent getxgl.aspläuft
Produktdaten msninstallersvc.asmxläuft
Programmdateien /downloads/läuft
Messenger gateway.dlloffen
Gruppen · Postfachdatenoffen

Installation und Anmeldung laufen vollständig durch: Konto anlegen, Pakete laden, installieren, starten, einloggen. Messenger und die WebDAV-Dienste fehlen noch.

Aufbau

Was man braucht

Voraussetzungen
ClientMSN Explorer 9, deutsche Fassung
SystemWindows XP in einer VM
ServerIIS mit ASP.NET 4
Netzhosts-Umleitung der MSN-Namen, eigenes Stammzertifikat

Das Paket enthält den Emulator, die Assistentenpakete, Skripte für Zertifikat und Registry sowie eine Anleitung. Ein Wort der Warnung: Der Client prüft das Zertifikat und besteht auf HTTPS – ohne importiertes Stammzertifikat kommt keine Verbindung zustande.

Emulator herunterladen

Warum

Dateien allein sind nur die halbe Software

Das Verhalten eines vernetzten Programms steckt zur einen Hälfte im Client und zur anderen im Protokoll. Wer nur die Installationsdateien aufhebt, hat die Hälfte aufgehoben – und die uninteressantere. Erst wenn die Gegenstelle wieder antwortet, lässt sich sehen, wie das Ding wirklich funktioniert hat.