3

i'm using Microsoft's SqmApi.dll library to add telemetry to an application. e.g.:

ISQM sqm = new Sqm("ContosoGrobber");

sqm.Increment(FileOpen, 1);
sqm.SetIfMax(QueryTime, stopWatch.Interval);
...

sqm.CloseSession(System.IO.Path.GetTempPath());

And now i have a .sqm file ready for me to WebRequest back to my web-server:

enter image description here

Now all i need is a way to crack open the guts inside the file:

ContosoGrobber00.sqm:


MSQMx       šwD                                      
€Ÿ¨¡•æÌp¿Ÿ¤•æÌˆºX¦Ô|NÕï'CðÆÏ                                            
g  

Has anyone figured out the undocumented internal format used by every Microsoft product created in the last 8 years?

It's obviously not Base64 encoded, so presumably compressed.

Bonus Reading

Bonus Chatter

The Microsoft Customer Experience Improvement Program–Part 2


for privacy reasons Microsoft doesn’t share any details in public about the SQM file format. The SQM file basically contains header data and Datapoints.

Glorfindel
  • 21,988
  • 13
  • 81
  • 109
Ian Boyd
  • 246,734
  • 253
  • 869
  • 1,219

1 Answers1

0

Perhaps it's some kind of MS standard serialization of the wire protocol? The MS-SQMCS client-server protocol doc notes that the header begins with 0x4D51534D (hex for MSQM).

unbob
  • 331
  • 3
  • 7