Pregunta
Estoy tratando de calcular el nombre de corriente de la parte propiedad con el nombre de un archivo MSG, específicamente de cuerda propiedades con nombre. El MSG formato de archivo de especificación dice que la ID se genera como sigue:
Stream ID = 0x100m ((ID XOR (GUID index << 1 | 1)) MOD 0x1f
Cuando el valor ID es el CRC-32 para el "identificador de nombre Unicode". También estoy seguro de que es en realidad 0x100m
0x1000
.
Esto de alguna manera mapas 'x-mailer'
a 0x100f
cuando el índice GUID es 3. El valor de ID es 0x894e50ff (ya que se almacena en otro lugar), pero ¿cómo 'x-mailer'
se convierten a ese valor?
(Estas son las propiedades almacenadas bajo "__nameid_version1.0"
, parcialmente dentro de la corriente de "__substg1.0_00040102"
).
Solución
Aquí está la respuesta de un ingeniero de Microsoft:
Hola Lucas,
Lo sentimos tomó tanto tiempo para volver a en esto. Verifiqué el CRC-32 cálculo y que de hecho se traduce en una valor de 0xff504e89 para la cadena 'X-mailer'. Dos cosas que usted necesita a tener en cuenta:
- asegurarse de que se está calculando CRC para 'X-Mailer' como una cadena Unicode. ASCII le dará una diferente resultado.
- asegúrese de que está utilizando el algoritmo especificado por MS-OXRTFCP secciones 3.1.3.2 y 3.1.4, incluyendo usando la tabla de consulta precalculada y el algoritmo correspondiente pseudocódigo.
Si usted sigue estos, obtendrá la resultado adecuado.
Quiero saber si usted es capaz de conseguir este trabajo.
Saludos, Tom Jebo superior de apoyo Ingeniero de soporte Microsoft DS Protocolo del equipo