Question

J'ai lu que les fichiers ZIP commencent par les octets suivants:

50 4B 03 04

Référence: http://www.garykessler.net/library/file_sigs.html

Question: Y at-il une certaine séquence d'octets qui indiquent un fichier ZIP a été protégé par mot de passe

Était-ce utile?

La solution

Il est pas vrai que les fichiers ZIP doivent commencer par

50 4B 03 04

Entrées dans les fichiers zip commencer par 50 4B 03 04... ..et souvent, purs fichiers zip commencent par une entrée zip comme la première chose dans le fichier. Mais, il n'y a pas besoin que les fichiers zip commencer par ces octets. Tous les fichiers qui commencent par ces octets sont probablement fichiers zip, mais pas tous les fichiers zip commencer par ces octets.

Par exemple, vous pouvez créer une archive auto-extractible qui est un fichier PE-COFF, un EXE régulier, dans lequel il fait est une signature du fichier, qui est 4D 5A .... Puis, plus tard dans le fichier exe, vous pouvez stocker des entrées zip, en commençant par 50 4B 03 04.... Le fichier est à la fois un fichier .exe et .zip.

Une archive auto-extractible est pas la seule classe de fichier zip qui ne démarre pas avec 50 4B 03 04. Vous pouvez « cacher » des données arbitraires dans un fichier zip ainsi. WinZip et d'autres outils devraient avoir aucun problème de lecture d'un fichier zip au format de cette façon.

Si vous trouvez la signature 50 4B 03 04 dans un fichier, que ce soit au début du fichier ou ailleurs, vous pouvez regarder les quelques octets pour déterminer si cette entrée particulière est cryptée. Normalement, il ressemble à ceci:

50 4B 03 04 14 00 01 00 08 00 ... 

Les quatre premiers octets sont la signature d'entrée. Les deux octets suivants sont la « version nécessaire pour extraire ». Dans ce cas, il est 0x0014, qui est 20. Selon la spécification PKWARE, cela signifie que la version 2.0 de la spécification pkzip est nécessaire pour extraire l'entrée. (Le dernier zip « fonction » utilisée par l'entrée est décrite par v2.0 de la spécification). Vous pouvez trouver un plus grand nombre là-bas si des fonctionnalités plus avancées sont utilisées dans le fichier zip. chiffrement AES nécessite v5.1 de la spécification, d'où vous devriez trouver 0x0033 dans cet en-tête. (Tous les outils zip respectent ce sujet).

Les 2 octets suivants représente l'objectif général indicateur de bit (la spécification qu'il appelle un « indicateur de bit », même si elle est champ de bits ), dans ce cas 0x0001. Cela a bit 0 jeu, ce qui indique que l'entrée est cryptée.

D'autres bits dans le drapeau de bits ont un sens et peuvent également être définis. Par exemple bit 6 indique que le cryptage fort a été utilisé - AES ou un autre cryptage fort. Bit 11 indique que l'entrée utilise l'encodage UTF-8 pour le nom et le commentaire.

Toutes ces informations sont disponibles dans le PKWare APPNOTE.TXT spécifications .

Autres conseils

Il est des fichiers sous-jacents dans l'archive zip qui sont protégées par mot de passe. Vous pouvez avoir une série de mot de passe protégé par mot de passe et les fichiers non protégés dans une archive (par exemple un fichier readme, puis le contenu).

Si vous avez suivi les liens décrivant les fichiers ZIP dans l'URL que vous faites référence, vous trouveriez que celui-ci traite le bit qui indique si un fichier dans l'archive ZIP est crypté ou non. Il semble que chaque fichier dans l'archive peut être indépendamment crypté ou non.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top