Salta ai contenuti

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

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.

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

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.
  • 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.

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.

Suggest a better description

Write how you would explain this entry. Your proposal will be held in a private inbox for review.

Controller: José Luis de la Torre Reyes. Proposals are processed to review documentation improvements on the basis of legitimate interests. You can request access, correction, erasure or object by writing to seluedita@gmail.com. Opening this form uses a first-party security cookie for one hour. Submitting stores the proposal and an IP-derived security identifier in the private inbox; omitting your name does not make the submission technically anonymous. Privacy information · Cookies and browser storage.

0 / 4000

Proposals are not published automatically. Do not include personal information in your description.