# PAK · pacchetti di risorse

Contenitore di risorse con un'intestazione di 40 byte e una directory i cui nomi condividono prefissi tra le voci.

**Edizione documentata: Imperivm HD · Documentazione parziale**

## A cosa serve

Un file .pak raggruppa file di risorse. Qui l'estensione indica il contenitore HMMSYS PackFile di Imperivm; altri giochi usano formati diversi con la stessa estensione PAK.

La firma completa occupa 18 byte: il testo HMMSYS PackFile seguito da un a capo, dal byte 26 e da un byte zero. Identifica il contenitore prima di interpretarne la directory.

## Intestazione

LE significa little-endian. Le posizioni di questa tabella sono offset all'interno del file, contati da zero.

| Posizione in byte | Dimensione | Contenuto |
| --- | --- | --- |
| 0 | 18 byte | Firma HMMSYS PackFile e i suoi tre byte finali |
| 18 | 14 byte | Area il cui significato completo non è documentato qui |
| 32 | uint32 LE | Numero di voci |
| 36 | uint32 LE | Lunghezza della directory in byte |
| 40 | Variabile | Inizio della directory |

## Voci della directory

Ricostruisci il nome con il prefisso indicato del nome precedente seguito dal suffisso attuale. Non sommare a Offset il campo in posizione 36: quel campo misura la directory e gli offset delle voci sono assoluti.

- TotalLen: un byte con la lunghezza totale del nome.
- PrefixLen: un byte con la lunghezza del prefisso condiviso con il nome precedente.
- Suffix: TotalLen − PrefixLen byte con la parte restante del nome.
- Offset: intero little-endian a 32 bit con la posizione assoluta dei dati della voce nel file PAK.
- Size: intero little-endian a 32 bit con la dimensione della voce.

## Quando ispezioni o estrai

- Controlla la firma e che l'intestazione sia completa.
- Convalida lunghezze e posizioni prima di leggere ogni voce; non accettare un prefisso più lungo del nome precedente.
- Controlla che Offset e Size descrivano un intervallo interno al file.
- In estrazione, conserva la gerarchia relativa e rifiuta percorsi assoluti o risalite con .. fuori dalla cartella di destinazione.

## Limiti noti

Questa scheda descrive l'intestazione, la forma della directory e l'interpretazione attuale dei suoi offset. Non è una specifica completa del comportamento con file danneggiati né di ogni possibile variante.

L'area tra la fine della directory e la prima voce non è caratterizzata qui. Non è documentata nemmeno una procedura completa di reimpacchettamento compatibile con il gioco.

## Consultare e condividere

- [Markdown](/exports/it/formatos/pak.md)
- [JSON](/exports/it/formatos/pak.json)

## Pagine correlate

- [BFHP / HPFS · contenitori di mappe](/it/formatos/bfhp/)
- [LZIS · flusso a blocchi](/it/formatos/lzis/)
