Estoy algo indeciso por que no sabía si publicar eso en Programación General o Ingeniería Inversa, pero me decanto por la última opción puesto que el tema trata de analizar en profundidad los bytes de archivos y aquí estais mucho más acostumbrados a analizar las firmas en los executables así que supongo que eso será de mucha ayuda para resolver mi duda...
Quizás mi duda pueda ser algo obvia, pero lo cierto es que ando algo confuso, verán, necesito saber si un formato de archivo puede contener varias firmas.
Por ejemplo, la firma de Matroska, es decir, un archivo MKV, es la siguiente (en Hexadecimal):
Código:
0x1A, 0x45, 0xDF, 0xA3
Sin embargo, estoy analizando una aplicación gratuita que se llama TridNET la cual sirve para identificar formatos mediante el uso de firmas, y el autor escribió varias firmas para el formato AVI:
Código
... <Pattern> <Bytes>52494646</Bytes> <ASCII> R I F F</ASCII> <Pos>0</Pos> </Pattern> <Pattern> <Bytes>415649204C495354</Bytes> <ASCII> A V I L I S T</ASCII> <Pos>8</Pos> </Pattern> <Pattern> <Bytes>00006864726C6176696838000000</Bytes> <ASCII>..hdrlavih8</ASCII> <Pos>18</Pos> </Pattern> <Pattern> <Bytes>4C495354</Bytes> <ASCII> L I S T</ASCII> <Pos>88</Pos> </Pattern> <Pattern> <Bytes>00007374726C73747268</Bytes> <ASCII> . . s t r l s t r h</ASCII> <Pos>94</Pos> </Pattern> <Pattern> <Bytes>00000076696473</Bytes> <ASCII> . . . v i d s</ASCII> <Pos>105</Pos> </Pattern> ...
Lo que no tengo claro de todo esto es, si se supone que debo hacer coincidir todas esas firmas en la cabecera de un archivo AVI, o debo calcular el porcentaje de éxito según la cantidad de firmas que se hayan podido encontrar en la cabecera del archivo, o si simplemente debo dar la comprobación por exitosa al encontrar cualquiera de esas firmas en un archivo AVI.
Pero según esta lista de firmas, la firma para identificar el formato AVI solamente sería "RIFF + AVI LIST":
http://www.garykessler.net/library/file_sigs.html
Citar
Código:
52 49 46 46 xx xx xx xx RIFF....
41 56 49 20 4C 49 53 54 AVI LIST
Eso me ha causado gran confusión, ¿alguien me lo puede aclarar bien?, gracias.
Saludos.