¿El formato de un archivo puede contener más de una firma?

Iniciado por Eleкtro, 3 Septiembre 2016, 23:41 PM

0 Miembros y 1 Visitante están viendo este tema.

Eleкtro

Hola

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):
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 (xml) [Seleccionar]
...
<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
Citar52 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.








tincopasan

no sé mucho de videos, ya que la ingeniería la aplico en exe, pero si sé por ejemplo:
cada archivo tiene una única signatura, en el caso de los avis es un poco engañosa porque no es una firma en si misma sino un contenedor, o sea el video puede estar en varios formatos y supongo que lo que está haciendo el que dices es tratar de indentificar alguno de ellos, ya que depdende de los codec que se hayan utilizado para su creación, pero en sí mismo la signatura inicial es:
RIFFPÌ´+AVI LIST

.:UND3R:.

Tampoco podría ayudarte, pero haría lo siguiente, descárgate algunos AVIs por ejemplo:
Y ve si todos cumplen con las firmas, de ser que algunos cumplen y otros no, se entendería que variará en base a alguna "versión", "patrón" o proceso de conversión (son ideas locas, pues no manejo los formatos de video) en caso que todas las firmas estén en cada AVI, ya podrás obtener deducciones, espero que entiendas mi idea, suerte :D

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

Eleкtro

Cita de: .:UND3R:. en  4 Septiembre 2016, 18:34 PMen caso que todas las firmas estén en cada AVI, ya podrás obtener deducciones, espero que entiendas mi idea, suerte :D

Pues si, pero ponerse a descargar videos AVI y verificar que hayan sido convertidos con distintos codecs para ver si hay diferencias al hacer coincidir las firmas puedo demorarme mucho xD, por eso pregunté, por que yo suponía que esto también podría suceder con executables o dlls y etc...

Gracias @.:UND3R:. y también gracias @Tincopasan. Doy el tema por "resuelto".

Saludos!