Eu tenho tentado fazer engenharia reversa nos formatos de arquivo do Microsoft Office e descobri que eles são realmente Open XML e o formato de arquivo "Open XML" é na verdade um formato ZIP.
Quando abro os arquivos do Office com um editor binário (hex), ele tem a mesma assinatura de arquivo de um arquivo ZIP (a assinatura é PK.. (67324752)
).
A propósito, os arquivos do Office podem ser abertos com o WinRAR como qualquer arquivo ZIP.
Minha pergunta é: por que a Microsoft decidiu usar contêineres ZIP e XML em vez de um formato de arquivo proprietário com assinatura e cabeçalhos personalizados? Não torna mais fácil a engenharia reversa ou mais lenta para ler e escrever?
No que diz respeito às partes 'factuais' da questão...
Eles costumavam fazer exatamente isso para os formatos originais personalizados e posteriores baseados em CDF (.doc, .xls, etc.) até o Office 2003 e, posteriormente, brincaram com XML de arquivo único bruto como formato de documento, até que finalmente mudou para ZIP+XML para o novo formato (.docx, .xlsx, etc.) no Office 2007.
Quanto ao "Por que", só a própria Microsoft sabe exatamente porque essa escolha foi feita, mas os contêineres ZIP já eram muito comuns naquela época (por exemplo, para a especificação OpenDocument concorrente, para arquivos Java .jar e assim por diante) para que você possa fazer o seu próprio palpite.
Você pode encontrar mais detalhes na Wikipedia: Padronização do Office Open XML
O formato é literalmente chamado de "Office Open XML" e tem um conjunto completo de especificações publicadas como um padrão ECMA ( ECMA-376 ) mediante solicitação da UE para oferecer suporte a alguma forma de formato de documento aberto.
Portanto, impedir a engenharia reversa não é seu objetivo; muito pelo contrário. É por isso que os antigos formatos CDF binários foram abandonados em primeiro lugar.