Pergunta

Eu li que a arquivos ZIP iniciar com os seguintes bytes:

50 4B 03 04

Referência: http://www.garykessler.net/library/file_sigs.html

Pergunta:Há uma certa seqüência de bytes que indicam um arquivo ZIP tem sido protegida por palavra-passe?

Foi útil?

Solução

Não é verdade que o ZIP de arquivos devem começar com

50 4B 03 04

Entradas dentro de arquivos zip iniciar com 50 4B 03 04... ..e muitas vezes, pura arquivos zip iniciar com um fecho de entrada como a primeira coisa no arquivo.Mas, não há nenhuma exigência de que arquivos zip começar com aqueles bytes.Todos os arquivos que começam com esses bytes são provavelmente arquivos zip, mas não todos os arquivos zip começar com aqueles bytes.

Por exemplo, você pode criar um arquivo de extração automática que é um PE-COFF arquivo, um EXE normal, em que há, na verdade, é uma assinatura para o arquivo, que é 4D 5A ....Em seguida, mais tarde, no arquivo exe, você pode armazenar zip entradas, começando com 50 4B 03 04....O arquivo é, de um lado .exe e um .zip.

Um arquivo de extração automática não é a única classe do arquivo zip que não começar com 50 4B 03 04 .Você pode "esconder" arbitrária de dados em um arquivo zip desta forma.WinZip e outras ferramentas não deve ter problemas para ler um arquivo zip formatados desta forma.

Se você encontrar o 50 4B 03 04 assinatura dentro de um arquivo, no início do arquivo ou em outro lugar, você pode olhar para os próximos bytes para determinar se determinada entrada é criptografado.Normalmente parece algo como isto:

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

Os primeiros quatro bytes são a entrada de assinatura.Os dois bytes seguintes são a "versão necessária para extrair".Neste caso, é 0x0014, que é de 20.De acordo com o pkware spec, o que significa que a versão 2.0 do pkzip especificação é necessária para extrair a entrada.(O mais recente zip "recurso", usado pela entrada é descrito por v2.0 da especificação).Você pode encontrar maiores números não se recursos mais avançados são usados no arquivo zip.A criptografia AES requer v5.1 da especificação, portanto, você deve encontrar 0x0033 no cabeçalho.(Nem todas as ferramentas de zip respeito isso).

Os próximos 2 bytes representa o sinalizador de bits de propósito geral (o spec a chama de um "sinalizador de bit", mesmo que seja uma campo de bits), neste caso 0x0001.Este tem o bit 0, que indica que a entrada está encriptada.

Outros bits que pouco bandeira tem um significado e pode também ser definido.Por exemplo, o bit 6 indica que a encriptação forte foi usado - ou AES ou algum outro de encriptação mais forte.Bit 11 diz que a entrada usa a codificação UTF-8 para o nome do arquivo e o comentário.

Toda esta informação está disponível no PKWare AppNote.txt spec.

Outras dicas

São arquivos subjacentes no arquivo zip que são protegidos por senha. Você pode ter uma série de arquivos não protegidos de senha e senha em um arquivo (por exemplo, um arquivo de leitura e depois o conteúdo).

Se você seguisse os links que descrevem arquivos ZIP no URL que você faz referência, você encontraria isso Este Discute o bit que indica se um arquivo no arquivo zip é criptografado ou não. Parece que cada arquivo no arquivo pode ser criptografado de forma independente ou não.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top