
Utilitário portátil de extração de arquivos zip com amplo suporte a sistemas operacionais, descriptografia e correções de segurança para vulnerabilidades de path traversal e symlink.
Este é o arquivo README para o lançamento público de 22 de maio de 2004 do programa portátil de extração de zipfiles UnZip (e utilitários relacionados) do grupo Info-ZIP.
unzip551.zip código-fonte do UnZip portátil, versão 5.51, distribuição de código-fonte unzip551.tar.Z mesmo que acima, mas em formato tar compress'd unzip551.tar.gz mesmo que acima, mas em formato tar gzip'd
ANTES DE PERGUNTAR: O UnZip, seu utilitário complementar Zip, e utilitários relacionados e arquivos de suporte podem ser encontrados em muitos lugares; leia o arquivo "WHERE" para mais detalhes. Para contatar os autores com sugestões, relatos de bugs, ou correções, continue lendo este arquivo (README) e, se isto fizer parte de uma distribuição de código-fonte, o arquivo "ZipPorts" no diretório proginfo. Também em distribuições de código-fonte: leia "BUGS" para uma lista de bugs conhecidos, não-bugs e possíveis bugs futuros; INSTALL para instruções sobre como compilar o UnZip; e "Contents" para uma lista comentada de todos os arquivos distribuídos.
O UnZip é um utilitário de extração para arquivos comprimidos no formato .zip (também chamados de "zipfiles"). Embora altamente compatível tanto com os utilitários PKZIP e PKUNZIP da PKWARE para MS-DOS quanto com o próprio programa Zip do Info-ZIP, nosso objetivo principal tem sido a portabilidade e funcionalidades não-MSDOS.
Esta versão do UnZip foi portada para uma incrível variedade de hardware-- de micros a supercomputadores--e sistemas operacionais: Unix (muitos sabores), VMS, OS/2 (incluindo versão DLL), Windows NT e Windows 95 (incluindo versão DLL), Windows CE (versão GUI), Windows 3.x (incluindo versão DLL), MS-DOS, AmigaDOS, Atari TOS, Acorn RISC OS, BeOS, Macintosh (versão GUI), SMS/QDOS, MVS, VM/CMS, FlexOS, Tandem NSK, Human68k (parcialmente), AOS/VS (parcialmente) e TOPS-20 (parcialmente). O UnZip possui funcionalidades não encontradas no PKUNZIP, incluindo código-fonte; extração padrão de árvores de diretório (com uma opção para desativar isso, ao contrário do oposto); atributos estendidos de arquivo específicos do sistema; e, é claro, a capacidade de rodar na maioria dos seus sistemas operacionais favoritos. Além disso, é gratuito. :-)
Para distribuições de código-fonte, veja o arquivo Contents principal para uma lista do que está incluído, e leia INSTALL para instruções sobre compilação (incluindo comentários específicos do SO). Os arquivos Contents dos sistemas operacionais individuais (por exemplo, vms/Contents) podem listar informações importantes de compilação além de explicar quais arquivos são o quê, portanto, certifique-se de lê-los. Alguns dos portes têm seus próprios arquivos README especiais, portanto, procure por eles também.
Veja unzip.1 ou unzip.txt para uso (ou a documentação correspondente do UnZipSFX, ZipInfo, fUnZip e ZipGrep). Para VMS, unzip_def.rnh ou unzip_cli.help podem ser compilados em unzip.hlp e instalados como uma entrada de ajuda normal do VMS; veja vms/descrip.mms.
O lançamento de manutenção 5.51 adiciona um porte de linha de comando para CE, destinado a processamento em lote. Com a integração deste porte, o porte pUnZip foi revisado e "revitalizado". As mudanças mais importantes para o público em geral são várias correções de bugs, principalmente relacionadas a problemas de segurança:
A principal adição no lançamento 5.5 é o suporte ao novo algoritmo Deflate64(tm) da PKWARE, que apareceu pela primeira vez no PKZIP 4.0 (publicado em novembro de 2000). Como de costume, algumas outras correções de bugs e limpezas foram integradas:
O lançamento de manutenção 5.42 corrige mais bugs e limpa as condições de redistribuição:
O lançamento de manutenção 5.41 adiciona outro novo porte e corrige alguns bugs.
O lançamento 5.4 adiciona novos portes, novamente. Outros itens importantes são mudanças no formato de listagem, novas funcionalidades suplementares e várias correções de bugs (especialmente relativas ao manuseio de carimbos de data/hora...):
O lançamento 5.32 adiciona dois novos portes e uma correção para pelo menos um bug relativamente sério:
O lançamento 5.31 incluiu nada além de pequenas correções de bugs e correções de erros de digitação, com exceção de alguns pequenos ajustes de desempenho.
O lançamento 5.3 adicionou ainda mais portes e mais recursos de portabilidade entre plataformas:
O que (ainda!) não foi adicionado é suporte a arquivos multiparte (também conhecido como "diskette spanning") e uma interface DLL unificada e mais poderosa. Estas são as duas maiores prioridades para os lançamentos 6.x. O trabalho na primeira é quase certo de ter começado no momento em que você lê isto. Desta vez é sério! Pode apostar. :-)
Embora as DLLs ainda sejam basicamente uma bagunça, as DLLs do Windows (16 e 32 bits) agora têm alguma documentação e um pequeno exemplo de aplicativo. Note que elas agora devem ser compatíveis com C/C++, Visual BASIC e Delphi. Linguagens mais estranhas (FoxBase, etc.) provavelmente estão Fora de Questão.
Finalmente, note que o suporte a unshrinking agora está DESLIGADO por padrão, embora o código-fonte ainda esteja disponível (como com unreducing). Isto foi feito por razões legais, não técnicas, e não, não estamos mais felizes com isso do que você. :-( Veja o arquivo COPYING para detalhes.
O site do Info-ZIP está em http://www.info-zip.org/pub/infozip/ e contém as informações mais atualizadas sobre lançamentos futuros, links para binários e problemas comuns. (Veja http://www.info-zip.org/pub/infozip/FAQ.html para este último.) Arquivos também podem ser obtidos via ftp://ftp.info-zip.org/pub/infozip/ . Agradecimentos ao LEO (Munique, Alemanha) por hospedar nosso site principal.
Se você tem uma pergunta sobre redistribuição de software Info-ZIP, seja como está, como empacotamento para um produto comercial, ou como parte integrante de um produto comercial, por favor leia a seção de Perguntas Frequentes (FAQ) do arquivo COPYING incluído.
Na medida em que compiladores C são raros em algumas plataformas e os autores só têm acesso direto a um subconjunto dos sistemas suportados, outros podem querer fornecer executáveis prontos para uso em novos sistemas. Em geral não há problema com isso; exigimos apenas que tais distribuições incluam este arquivo README, o arquivo WHERE, o arquivo COPYING (contém informações de copyright/redistribuição), e os arquivos de documentação apropriados (unzip.txt e/ou unzip.1 para UnZip, etc.). Se o sistema local fornecer uma maneira de fazer arquivos auto-extraíveis nos quais tanto os executáveis quanto os arquivos de texto possam ser armazenados juntos, isso é o melhor (em particular, use UnZipSFX se possível, mesmo que seja alguns kilobytes maior que as alternativas); caso contrário, sugerimos um executável UnZip simples e um zipfile separado contendo os arquivos de texto e binários restantes. Se outro método de arquivamento estiver em uso comum no sistema alvo (por exemplo, Zoo ou LHa), isso também pode ser usado.
Todos os relatos de bugs e patches (apenas diffs de contexto, por favor!) devem ser enviados para [email protected], que é o endereço de e-mail dos autores do Info-ZIP. (Note que alguns sistemas raros exigem que a parte Zip-Bugs seja maiúscula como mostrado; a maioria dos sistemas funciona OK com minúsculas "zip-bugs", no entanto.) NÃO NOS ENVIE GRANDES BINÁRIOS – JAMAIS. Se precisar nos enviar um arquivo-problema que por acaso seja grande (> 20K), contate-nos primeiro para instruções.
"Perguntas idiotas" que não são adequadamente respondidas na documentação também devem ser direcionadas para Zip-Bugs em vez de para um fórum global como Usenet. (Por favor, certifique-se de que sua pergunta não seja respondida pela documentação, no entanto – um grande esforço foi feito para torná-la clara e completa.)
Sugestões para novas funcionalidades podem ser discutidas em [email protected], uma lista de discussão para testadores beta do Info-ZIP e partes interessadas; você precisa se inscrever primeiro, no entanto (veja abaixo). Não prometemos agir sobre todas as sugestões ou mesmo todos os patches, mas se for algo manifestamente útil, enviar os patches necessários diretamente para Zip-Bugs (conforme as instruções no arquivo ZipPorts) provavelmente produzirá uma resposta mais rápida do que pedir que nós o façamos – os autores estão sempre ridiculamente sem tempo. (Por favor, NÃO envie patches ou zipfiles codificados para a lista Info-ZIP. Por favor, LEIA o arquivo ZipPorts antes de enviar qualquer patch grande. Seria difícil enfatizar demais este ponto...)
Se você está considerando um porte, não apenas deve ler o arquivo ZipPorts, mas também verifique com Zip-Bugs ANTES de começar, pois o código está constantemente sendo atualizado nos bastidores. (Por exemplo, portes VxWorks, VMOS e Netware foram uma vez reivindicados como em construção, embora ainda não tenhamos visto nenhum patch atualizado.) Vamos combinar de enviar-lhe as fontes mais recentes. A alternativa é a possibilidade de que seu trabalho duro será guardado em um subdiretório e principalmente ignorado, ou completamente ignorado se alguém já tiver feito o porte (e você se surpreenderia com a frequência com que isso acontece).
Se você gostaria de se manter atualizado com o desenvolvimento do nosso UnZip (e utilitário Zip companheiro), junte-se às fileiras de testadores beta, adicione seus próprios pensamentos e contribuições, ou simplesmente observe, você pode se inscrever em uma de nossas listas de discussão. Há uma lista apenas de anúncios (Info-ZIP-announce) e uma lista geral de discussão/teste (Info-ZIP). Você deve ser um assinante para postar, e pode se inscrever através dos links em nossa página de Perguntas Frequentes:
http://www.info-zip.org/pub/infozip/FAQ.html#lists
(Observe que, a partir do final de maio de 2004, as listas estão indisponíveis enquanto aguardamos uma mudança para um novo site; esperamos restaurá-las em breve. No ínterim...) Sinta-se à vontade para usar nossa página web de relato de bugs para relatos de bugs e para fazer perguntas não respondidas na página de FAQ acima:
http://www.info-zip.org/zip-bug.html
Há também uma lista de discussão fechada para discussões internas de nossa equipe principal de desenvolvimento. Esta lista agora é mantida em segredo para evitar que sejamos inundados com mensagens de spam.
-- Greg Roelofs (às vezes conhecido como Cave Newt), principal desenvolvedor do UnZip, com inspiração de David Kirschbaum, foi o Autor deste texto.
-- Christian Spieler (abreviação: SPC), atual coordenador de manutenção do UnZip, aplicou as mudanças mais recentes.