O que é o formato de ficheiro PACK?
Um arquivo .pack é um contêiner de arquivo de dados Pack200 usado para armazenar arquivos JAR comprimidos para facilitar o download via rede. Arquivos .pack são normalmente salvos com um sufixo adicional .gz - o pacote de entrega padrão é nomeado .jar.pack.gz e produzido pela ferramenta de linha de comando pack200 do Java.
Um JAR é um arquivo ZIP que também serve como o formato executável para a máquina virtual Java. O Pack200, padronizado em 2004 sob a JSR 200, re-codifica os pools de constantes dos arquivos de classe de um JAR usando um algoritmo binário especializado; combinado com GZIP, um arquivo .pack.gz pode ser até 60% menor que o JAR original e, portanto, significativamente mais rápido para baixar - o objetivo principal do formato para Java Web Start e entrega de applets de navegador.
O Pack200 agora está obsoleto. A Oracle descontinuou as ferramentas de linha de comando pack200 e unpack200 no Java 11 (JEP 336, 2018) e as removeu inteiramente no Java 14 (2020). Arquivos legados .pack ou .pack.gz só podem ser descompactados usando um ambiente JDK 8-13; o fluxo .pack bruto começa com o número mágico 0xCAFED00D.
Segurança e proteção
RISCO: MEDIUMUm arquivo .pack em si são dados inertes, mas ele se descompacta em um JAR Java contendo bytecode executável - apenas descompacte e execute JARs de fontes em que você confia, pois um JAR malicioso pode executar código arbitrário sob o JRE. O Pack200 foi uma superfície de ataque histórica conhecida (CVEs no descompactador), portanto, use uma compilação atual do JDK ao descompactar. Evite portais de download de «abridores de PACK» de terceiros; use os JDKs da Oracle/Adoptium para o unpack200 em vez disso.
Detalhes do formato
em resumo- Git packfile (.pack) - Dentro de .git/objects/pack, o Git armazena objetos em arquivos .pack binários (com um índice .idx); gerenciado pelo Git, nunca aberto manualmente.
- Minecraft / pacote de recursos de jogo (.pack) - Alguns jogos e pacotes de mods usam .pack para recursos agrupados ou pacotes de textura; a estrutura é específica do motor (geralmente baseada em ZIP).
- Skype / pacote de dados de app (.pack) - Vários aplicativos gravam blobs de dados internos «.pack»; o significado depende inteiramente do programa.
Programas que abrem arquivos PACK
Detalhes técnicos
especificação profunda| Tipo de formato | Contêiner de JAR comprimido binário Pack200 |
| Número mágico | 0xCAFED00D no deslocamento de byte 0 no fluxo .pack bruto; cabeçalho GZIP 0x1F8B no deslocamento 0 na forma comum .pack.gz |
| Ordem dos bytes | Big-endian |
| Compressão | Algoritmo de re-codificação de pool de constantes Pack200; GZIP/DEFLATE externo aplicado na forma de entrega padrão .pack.gz |
| Taxa de compressão | Até ~60% menor que o JAR equivalente comprimido apenas com GZIP |
| Tipo MIME | application/x-java-pack200 |
| Especificação | JSR 200 - Network Transfer Format for JAR Files (Java SE 5.0, introduzido em 2004) |
| Máximo de entradas no arquivo | Herda o limite de 65.535 entradas do JAR/ZIP |
| Criptografia | Nenhuma; as assinaturas de código JAR existentes são preservadas e mantidas pelo pack200/unpack200 |
| Verificação de integridade | GZIP CRC-32 no invólucro externo .pack.gz; assinaturas JAR verificadas independentemente após a descompactação |
| Tamanho de arquivo típico | 50 KB - 20 MB (sempre menor que o JAR de origem que ele codifica) |
| Status | Descontinuado no Java 11 (JEP 336, 2018); ferramentas pack200 e unpack200 removidas no Java 14 (2020) |
| Ferramentas de descompactação | unpack200 (apenas JDK 8-13); também 7-Zip no Windows para inspeção |
| Caso de uso principal | Minimizar o tamanho de download de JAR para aplicações Java Web Start e applets de navegador |
| Plataformas compatíveis | Windows, Linux, macOS - qualquer plataforma com JDK/JRE 8-13 instalado |
| Lançado | 2004 (Java SE 5.0 / J2SE 1.5 - JSR 200 'Network Transfer Format for JAR Files') |
| Versão mais recente | Pack200 as specified through JSR 200; deprecated in Java 11 (2018), removed in Java 14 (2020) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | docs.oracle.com |
Conversões de PACK
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos PACK.