Exemplo de scripts para detecção de tipo de arquivo personalizado

Aqui estão relacionados vários exemplos de soluções de script que detectam tipos de arquivo personalizados. Estes exemplos podem ser usados como referência para gravar seus próprios scripts personalizados e detectar o tipo de arquivo personalizado indicado.
O exemplo de script abaixo detecta o tipo de arquivo do Microsoft Word:
$Int1 = getHexStringValue('D0CF'); $Int2 = getBinaryValueAt($data, 0x0, 2); assertTrue($Int1 == $Int2); $Int3 = getHexStringValue('ECA5'); $Int4 = getBinaryValueAt($data, 0x200, 2); assertTrue($Int3 == $Int4);
O seguinte exemplo de script detecta o tipo de arquivo CDD:
$Int1 = getBinaryValueAt($data, 0x0, 4); $Int2 = getBinaryValueAt($data, 0x8, 4); assertTrue($Int1 == $Int2); $Int3 = getBinaryValueAt($data, 0x0, 2); $Int4 = getBinaryValueAt($data, 0x2, 2); assertTrue($Int3 != $Int4); $Last = getBinaryValueAt($data, 0x27, 1); $RecSep = getHexStringValue('1e'); assertTrue($Last == $RecSep);
O seguinte exemplo de script detecta o tipo de arquivo CATIA:
$Int1 = ascii('V'); $Int2 = getBinaryValueAt($data, 0x0, 1); assertTrue($Int1 == $Int2); $Int3 = ascii('CFV'); $Int4 = getBinaryValueAt($data, 0x3, 3); assertTrue($Int3 == $Int4);
O seguinte exemplo de script detecta o tipo de arquivo EPUB.
$slash=getHexStringValue('2f'); $epub1=ascii('epub'); $epub2=ascii('zip'); $slash1=getBinaryValueAt($data, 0xb, 1); assertTrue($slash == $slash1); $word1=getBinaryValueAt($data, 0xc, 4); assertTrue($word1 == $epub1); $word2=getBinaryValueAt($data, 0x11, 3); assertTrue($word2 == $epub2);
Os arquivos EPUB estão no formato de livro aberto (XML) encapsulado em um formato de arquivo zip. Você não pode testar este script com o utilitário analisador de tipo de arquivo porque o script detecta a string “aplicativo/epub+zip” contida no arquivo de manifesto (com o nome de “mimetype”). O utilitário não pode decodificar o arquivo zip para ler o manifesto. No entanto, o mecanismo de detecção pode decodificar o arquivo zip e ler o manifesto. Você pode implementar este script em uma instância da regra de detecção Assinatura do tipo de arquivo personalizado e detectar arquivos EPUB.
O seguinte exemplo de script detecta o tipo de arquivo Amazon Kindle:
$book=ascii('BOOK'); $mobi=ascii('MOBI'); $word1=getBinaryValueAt($data, 0x3c, 4); $word2=getBinaryValueAt($data, 0x40, 4); assertTrue($book == $word1); assertTrue($mobi == $word2); $null=getBinaryValueAt($data, 0x3b, 1); assertTrue($null == 0); $nullx=getBinaryValueAt($data, 0x44, 1); assertTrue($nullx == 0);
O seguinte exemplo de script detecta o tipo de arquivo Oracle IRM, que é usado para Gerenciamento de direitos digitais (DRM):
$soft=ascii('Soft'); $seal=ascii('SEAL'); $word1=getBinaryValueAt($data, 0x0, 4); $word2=getBinaryValueAt($data, 0x4, 4); assertTrue($soft == $word1); assertTrue($seal == $word2);
Além disso, os dois tutoriais a seguir oferecem outros exemplos de linguagem de script: