Frage
Ich versuche, den Stream-Namen für den benannte Eigenschaft Teil einer MSG-Datei zu berechnen, und zwar Zeichenfolge mit dem Namen Eigenschaften. Die MSG-Dateiformat Spezifikation a href = "http <: // msdn.microsoft.com/en-us/library/ee202960.aspx“rel = "nofollow noreferrer"> sagt , dass die ID erzeugt wird, wie folgt:
Stream ID = 0x100m ((ID XOR (GUID index << 1 | 1)) MOD 0x1f
Wenn der ID-Wert ist die CRC-32 für die „Unicode Namenskennung“. Ich bin auch davon überzeugt, dass 0x100m
ist eigentlich 0x1000
.
Dies irgendwie Karten 'x-mailer'
0x100f
, wenn der GUID-Index 3. Der Wert für ID ist 0x894e50ff ist (da es an einem anderen Ort gespeichert ist), aber wie funktioniert 'x-mailer'
auf diesen Wert umgewandelt werden?
(dies sind die Eigenschaften unter "__nameid_version1.0"
gespeichert sind, teilweise innerhalb des "__substg1.0_00040102"
stream).
Lösung
Hier ist die Antwort von einem Microsoft-Ingenieure:
Hallo Lukas,
Sorry, dass es so lange gedauert hat, um wieder zu Sie zu diesem Thema. Ich überprüfte die CRC-32 Berechnung und es in der Tat in einem Ergebnis Wert von 0xff504e89 für die Zeichenfolge 'X-Mailer'. Zwei Dinge, die Sie brauchen zu beachten:
- stellen Sie sicher, CRC für 'X-Mailer' sind die Berechnung als UNICODE-String. ASCII geben Sie eine andere Ergebnis.
- stellen Sie sicher, den Algorithmus von MS-OXRTFCP angegeben verwenden Abschnitte 3.1.3.2 und 3.1.4 einschließlich unter Verwendung der vorberechneten Nachschlagetabelle und der entsprechende Algorithmus Pseudo-Code.
Wenn Sie diese folgen, erhalten Sie die richtiges Ergebnis.
Lassen Sie mich wissen, wenn Sie in der Lage sind zu erhalten diese Arbeiten.
Grüße, Tom Jebo Profi-Support Escalation Engineer Microsoft DS Protokoll Team