1

MSG ファイルの名前付きプロパティ部分、特に文字列名前付きプロパティのストリーム名を計算しようとしています。MSG ファイル形式 の仕様によると、ID は次のように生成されます。

Stream ID = 0x100m ((ID XOR (GUID index << 1 | 1)) MOD 0x1f

ID 値は、「Unicode name identifier」の CRC-32 です。0x100mまた、実際にそうであると確信してい0x1000ます。

これは、GUID インデックスが 3 の場合に何らかの形でマップ'x-mailer'され0x100fます。ID の値は 0x894e50ff ですが (別の場所に格納されているため)、どのよう'x-mailer'にしてその値に変換されるのでしょうか?

(これらは の下に格納されたプロパティで"__nameid_version1.0"、一部は"__substg1.0_00040102"ストリーム内にあります)。

4

1 に答える 1

1

Microsoft エンジニアからの回答は次のとおりです。

こんにちはルーク、

ご連絡が遅くなり申し訳ありません。CRC-32 の計算を確認したところ、文字列「x-mailer」の値は実際に 0xff504e89 になりました。次の 2 つの点を考慮する必要があります。

  1. 「x-mailer」の CRC を UNICODE 文字列として計算していることを確認してください。ASCII では異なる結果が得られます。
  2. MS-OXRTFCP セクション 3.1.3.2 および 3.1.4 で指定されたアルゴリズムを使用していることを確認してください。これには、計算済みのルックアップ テーブルと対応するアルゴリズムの疑似コードの使用が含まれます。

これらに従えば、適切な結果が得られます。

これを機能させることができるかどうか教えてください。

よろしく、 Tom Jebo シニア サポート エスカレーション エンジニア Microsoft DS プロトコル チーム

于 2009-08-24T00:46:12.130 に答える