ToolActToolAct

Desempacotar e Extrair ZIP

Upload de arquivos ZIP para visualizar e extrair arquivos, baixar individualmente ou extrair todos

Upload de Arquivo ZIP

Arraste um arquivo ZIP aqui, ou clique para selecionar

Suporta arquivos formato .zip

O que é Extração ZIP?

A extração ZIP abre um arquivo compactado e restaura os arquivos guardados dentro dele. Ela é útil quando você recebe um pacote comprimido, quer inspecionar o conteúdo antes de baixar tudo, precisa de apenas um arquivo ou deseja verificar nomes e tamanhos antes de confiar no pacote. Para arquivos normais, ZIP é sem perda e o conteúdo extraído deve ser igual ao original. Mas extrair não torna conteúdo desconhecido seguro. Um ZIP pode conter nomes enganosos, pastas inesperadas, dados enormes após a expansão ou executáveis que não devem ser abertos sem verificação. Esta ferramenta do navegador lê o arquivo localmente e permite baixar itens selecionados, sendo prática para pequenas checagens. Ela não substitui revisão de segurança de arquivos suspeitos.

Como Usar

Como usar

  1. Arraste um arquivo ZIP para a área de upload ou clique no botão 'Selecionar Arquivo ZIP'
  2. Visualize a lista de arquivos e as informações dos arquivos dentro do pacote
  3. Clique em 'Baixar' em um arquivo individual para extraí-lo
  4. Clique em 'Extrair Tudo' para baixar todos os arquivos como um ZIP

Segurança na Extração

  • Inspecione a lista de arquivos antes de baixar os itens extraídos, especialmente quando o pacote veio de uma fonte desconhecida.
  • Tenha cuidado com arquivos executáveis, pacotes aninhados e nomes de arquivo suspeitos.

Casos de uso

Inspecione um ZIP antes de extrair qualquer coisaSolte um arquivo .zip e a página monta uma árvore de pastas ordenada com ícones de tipo de arquivo, pastas expansíveis e tamanhos de arquivo calculados. Você pode verificar rapidamente se o pacote contém os documentos, ativos ou código esperados antes de baixar arquivos individuais. O leitor percorre o registro End of Central Directory no final do arquivo para localizar o diretório central, então um .zip acidentalmente truncado ou anexado que ainda termina com um marcador EOCD válido listará suas entradas declaradas mesmo quando alguns cabeçalhos locais estão danificados.
Baixe apenas os arquivos que você realmente precisaSelecione um arquivo, uma pasta inteira, vários itens aninhados ou tudo dentro do pacote, e baixe os arquivos selecionados pelo navegador. A lógica de seleção expande pastas em seus arquivos contidos, permitindo retirar apenas alguns itens necessários de um pacote maior.
Use a extração do lado do navegador para revisão leve de pacotesO JSZip lê o pacote localmente e cada arquivo extraído é baixado como um download individual do navegador. A extração em lote não recria a árvore original de pastas no disco nem produz um novo ZIP, funcionando melhor para revisão, triagem e pequenas tarefas de recuperação em vez de restauração completa de backup.
Identifique um nome de arquivo suspeito antes de extraí-loLeia a lista de arquivos em busca de extensões duplas como report.pdf.exe, arquivos de sistema ocultos ou caminhos que tentam escapar de um diretório com segmentos ... Trate pacotes desconhecidos como não confiáveis mesmo que a fonte pareça familiar, e escaneie qualquer executável com antivírus antes de abrir. Nomes de arquivo cujo bit 11 da flag de propósito geral está definido são armazenados como UTF-8, então nomes não ASCII são decodificados corretamente, enquanto flags ausentes podem exibir caracteres corrompidos que por si só são indício de um pacote adulterado ou reempacotado.
Extraia um único arquivo de configuração de um ZIP de backup sem baixar o restoNavegue pela árvore de pastas, selecione apenas o config.json ou certificado desejado e baixe apenas essa entrada. Esta é uma forma rápida de recuperar um arquivo perdido de um backup de vários gigabytes sem gastar banda nas partes que você não precisa. Pacotes acima de 4 GB dependem da extensão ZIP64, e a ferramenta lê os campos extras ZIP64 para tamanho descomprimido, tamanho comprimido e offset do cabeçalho local, então a recuperação de arquivo único ainda funciona para backups que excedem o limite clássico de 32 bits.

Princípio técnico

A leitura de um arquivo ZIP segue a ordem inversa da gravação. O navegador recebe o arquivo como um `ArrayBuffer` por meio da File API (`file.arrayBuffer()`) e o leitor percorre o final do arquivo de trás para frente procurando a assinatura End of Central Directory `0x06054b50` (PK\x05\x06). O EOCD ocupa no máximo 22 bytes mais um comentário opcional de até 65.535 bytes, então a janela de busca é limitada. O EOCD aponta o offset e o tamanho do Central Directory, que contém um File Header (`0x02014b50`) para cada entrada. Cada File Header contém os tamanhos comprimido e descomprimido, CRC-32, método de compressão, nome do arquivo e o offset do Local File Header correspondente (`0x04034b50`). O leitor pode então buscar diretamente qualquer entrada individual sem analisar as anteriores — por isso a extração de um único arquivo de um backup de vários GB é rápida. A descompressão depende do byte de método: `0x00` é armazenado (sem compressão, apenas memcpy), `0x08` é DEFLATE conforme RFC 1951 (~99% dos arquivos no mercado), `0x0C` é BZIP2, `0x0E` é LZMA e `0x5D` é o mais antigo PPMd. Esta ferramenta usa JSZip (ou fflate para maior throughput — o `unzipSync` do fflate decodifica um arquivo DEFLATE típico de 10 MB em dezenas de milissegundos, várias vezes mais rápido que o JSZip). Após a descompressão, o CRC-32 dos bytes brutos é recalculado e comparado com o valor no diretório central; uma divergência indica corrupção ou adulteração. Duas questões de segurança são relevantes para qualquer caminho de extração. A primeira é a vulnerabilidade Zip Slip (Snyk, 2018): um arquivo malicioso pode conter entradas com sequências de traversal de caminho como `../../etc/passwd`, e um extrator ingênuo que concatena o nome da entrada a um diretório de destino gravará fora do sandbox pretendido. A correção é normalizar o caminho concatenado com `path.resolve()` e verificar se ele ainda começa com o diretório de destino antes de qualquer gravação. Esta ferramenta oferece cada entrada como um download individual do navegador via `URL.createObjectURL(new Blob([bytes]))` e o navegador isola o destino, então o traversal de diretório não pode escapar da pasta de Downloads do usuário, mas o mesmo arquivo em um extrator de servidor seria explorável. Segundo, arquivos criptografados não são tratados: o ZipCrypto tradicional é uma cifra de fluxo de 32 bits que é trivialmente quebrada com um ataque de texto conhecido de três bytes, e o WinZip AES-256 moderno (PKWARE APPNOTE 7.0) requer o campo extra AE-2 com autenticação HMAC-SHA1 — nenhum dos dois caminhos é implementado aqui. Arquivos acima de 4 GiB dependem dos campos extras da extensão ZIP64 para tamanhos e offsets de 64 bits, que o analisador deve ler em vez dos campos de 32 bits do diretório central.

  • Ordem de análise: busca reversa do final do arquivo pela assinatura EOCD `0x06054b50` (máx. 22 + 65535 bytes do final) → busca ao Central Directory → busca a cada Local File Header.
  • Métodos de compressão: `0x00` armazenado, `0x08` DEFLATE (RFC 1951, ~99% dos arquivos), `0x0C` BZIP2, `0x0E` LZMA, `0x5D` PPMd.
  • Integridade: CRC-32 com polinômio `0xEDB88320` (IEEE 802.3 invertido) recalculado nos bytes extraídos e comparado com o valor do diretório central.
  • Zip Slip (Snyk 2018): entradas com traversal de caminho `../` podem gravar fora do diretório de extração; corrija normalizando e validando o caminho resolvido antes da gravação.
  • Implementação no navegador: `File.arrayBuffer()` → JSZip / fflate `unzipSync()` → `URL.createObjectURL(new Blob([bytes]))` por entrada para downloads, sem requisição ao servidor.
  • Criptografia não tratada: ZipCrypto é quebrado em 3 bytes de texto conhecido; WinZip AES-256 (APPNOTE 7.0, campo extra AE-2 com HMAC-SHA1) não é implementado aqui.
  • ZIP64 (APPNOTE 4.5+) estende os campos de tamanho/offset de 32 bits para 64 bits via campos extras; necessário para arquivos ou entradas individuais acima de 4 GiB (2³² − 1 bytes).

Exemplos

Visualizar Conteúdo do Arquivo

Visualize a lista de arquivos dentro de um arquivo ZIP diretamente no navegador, sem precisar instalar software de extração

Extrair Arquivos Individuais

Baixe apenas o arquivo que você precisa do arquivo compactado, sem extrair tudo

Extração em Lote

Extraia e baixe todos os arquivos do arquivo compactado com um único clique

Perguntas frequentes

O ZIP é enviado para o servidor para a extração?

Não. A página lê o ZIP localmente via API FileReader e descompacta as entradas no navegador usando JSZip. Os arquivos nunca saem do seu dispositivo. Você pode confirmar pela aba Network durante a extração.

Quais variantes de ZIP ele suporta?

Arquivos ZIP padrão usando compressão DEFLATE (a variante mais comum). Entradas Stored (sem compressão) também funcionam. ZIP64 (para arquivos acima de 4 GB) é suportado na maioria das versões. Entradas criptografadas (protegidas por senha) e formatos 7Z, RAR, TAR não são suportados — use uma ferramenta dedicada para esses.

Consigo extrair ZIPs protegidos por senha?

Em geral, não. O JSZip não lida com entradas criptografadas com ZipCrypto nem com AES. Descriptografe primeiro com 7-Zip ou WinRAR no desktop e, depois, reempacote e envie aqui se precisar inspecionar a estrutura.

E se o ZIP tiver nomes em chinês ou japonês?

A página lê os nomes dos arquivos como UTF-8 por padrão. ZIPs antigos criados no Windows podem armazenar os nomes em GBK (chinês) ou Shift_JIS (japonês) sem ativar a flag de UTF-8 — esses aparecem embaralhados. Recrie o ZIP com uma ferramenta que reconheça UTF-8, ou use o 7-Zip no desktop com a configuração de code page correta.

Qual é o limite de tamanho de arquivo?

A memória do navegador. Desktops modernos lidam com ZIPs de 1 GB ou mais; navegadores de celular ficam sem memória por volta de algumas centenas de MB. Para arquivos muito grandes, use uma ferramenta de desktop que faça streaming a partir do disco.

Consigo visualizar o conteúdo dos arquivos sem extrair?

Sim para arquivos de texto — clique em qualquer entrada e a página mostra o conteúdo. Imagens aparecem como miniaturas. Entradas binárias (executáveis, ZIPs aninhados) só mostram metadados; baixe para inspecionar.

Arquivos ocultos e dotfiles são extraídos?

Sim. O ZIP não tem o conceito de atributo 'oculto' — todas as entradas são visíveis. Nomes de arquivo começando com ponto (.gitignore, .env) são extraídos normalmente; trate-os como arquivos comuns.