Domanda

Sto cercando di calcolare il nome del flusso per la parte di proprietà denominata di un file MSG, in particolare stringa proprietà denominate. Il MSG specifica del formato di file dice che l'ID è generato come segue:

  

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

Se il valore ID è il CRC-32 per il "identificatore Unicode nome". Sono anche fiducioso che 0x100m è in realtà 0x1000.

Questa mappa in qualche modo 'x-mailer' al 0x100f quando l'indice GUID è 3. Il valore per ID è 0x894e50ff (dal momento che è memorizzato in un altro luogo), ma come si fa 'x-mailer' ottenere convertito a quel valore?

(Queste sono le proprietà memorizzate sotto "__nameid_version1.0", parzialmente all'interno del flusso "__substg1.0_00040102").

È stato utile?

Soluzione

Ecco il risposta da un ingegnere Microsoft:

  

Ciao Luca,

     

Ci dispiace sia voluto tanto tempo per tornare a   voi su questo. Ho verificato il CRC-32   calcolo e risulta effettivamente in   valore 0xff504e89 per la stringa   'X-mailer'. Due cose che avete bisogno   da considerare:

     
      
  1. assicurarsi che si sta calcolando CRC per 'x-mailer' come una stringa Unicode.   ASCII vi darà un diverso   risultato.
  2.   
  3. assicurarsi che si sta utilizzando l'algoritmo specificato da MS-OXRTFCP   sezioni 3.1.3.2 e 3.1.4, tra cui   utilizzando la tabella di ricerca precalcolate   e il corrispondente algoritmo   pseudocodice.
  4.   
     

Se si seguono questi, si otterrà il   risultato corretto.

     

Fatemi sapere se si è in grado di ottenere   questo lavoro.

     

Saluti, Tom Jebo Supporto anziano   Escalation Ingegnere Microsoft DS   Protocollo della squadra

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top