Detector de arquivos


História

A história deste exercício parte da premissa de comparar a extensão do arquivo com o formato binário para explorar as ideias de dados binários, correspondência de padrões e codificação de strings. A tarefa de quem faz o exercício é escrever algumas funções que comparem o tipo de mídia esperado com o tipo de mídia codificado no arquivo.

Tarefas

A história conduz à definição das seguintes funções:

  • Retornar o tipo de mídia a partir de uma extensão em string.
  • Retornar o tipo de mídia a partir do formato binário de um arquivo.
  • Comparar o tipo de mídia esperado pela extensão em string com o tipo real do arquivo binário.

Referência do exercício

Tipo de arquivo Extensão comum Tipo de mídia 'assinatura' binária dos primeiros bytes
ELF none ou "exe" "application/octet-stream" 0x7F, 0x45, 0x4C, 0x46
BMP "bmp" "image/bmp" 0x42, 0x4D
PNG "png" "image/png" 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A
JPG "jpg" "image/jpg" 0xFF, 0xD8, 0xFF
GIF "gif" "image/gif" 0x47, 0x49, 0x46

Implementações