home *** CD-ROM | disk | FTP | other *** search
-
- TECHNICKÉ INFORMACE O ARJ Zá⌐í 1994
-
-
- ** DªLEÆITÉ ZMëNY ****************************************************
-
- Nêkteré programy, které usnadñují práci s archivaçními utilitami,
- pouæívají k identifikaci ARJ archívu postup, kterÿ není spolehlivÿ.
- Poçínaje ARJ verzí 2.39, existují dvê varianty "velkého" (ARJSFX)
- samorozbalovacího modulu. Modul o délce 17kB umoæñuje zabezpeçení
- archívu ochrannou obálkou ARJ-SECURITY, standardnê poæívanÿ modul
- o délce 15kB pouæití obálky neumoæñuje. Poprvé v historii jsou
- ve⌐ejnê popsána pole v hlaviçce ARJ archívu vyuæívaná bezpeçnostní
- obálkou.
-
- Dal¿í zmênou je, æe hlavní hlaviçka ARJ archívu v samorozbalovacím
- archívu nyní nenásleduje têsnê za dekompresním EXE modulem.
-
- ARJ pouæívá k identifikaci ARJ archívu stále stejnÿ postup, kterÿ
- se od verze 1.00 nezmênil. Algoritmus je následující:
-
- (1) Najdi identifikaçní bajty hlaviçky ARJ archívu, 0x60 a 0xEA.
- (2) P⌐eçti z dal¿ích dvou bajtû délku hlaviçky v bajtech
- (3) Jestliæe délka hlaviçky p⌐ekroçí 2600 bajtû, vraƒ se zpátky
- k identifikaçním bajtûm, posuñ se têsnê za nê a pokraçuj opêt
- krokem (1).
- (4) P⌐eçti hlaviçku archívu (délku zná¿)
- (5) Spoçítej dvaat⌐icetibitovÿ kontrolní souçet (CRC) hlaviçky.
- (6) P⌐eçti z dal¿ích çty⌐ bajtû uloæenÿ kontrolní souçet hlaviçky.
- (7) Pokud se skuteçnÿ kontrolní souçet li¿í od uloæeného, vraƒ se
- k identifikaçním bajtûm, posuñ se têsnê za nê a pokraçuj opêt
- krokem (1).
-
- Tento algoritmus je v nezkrácené podobê obsaæen ve zdrojovém kódu
- k programu UNARJ.
-
- Pouæívají-li p⌐i práci s ARJ soubory-seznamy, mêly by podpûrné
- ARJ programy (archivaçní "shelly" apod.) p⌐epínaçem "-p" zajistit,
- æe ARJ z archívu rozbalí opravdu pouze specifikované soubory. Mûæe
- to bÿt dûleæité u archívû, v nichæ jsou uchovávána jména adresá⌐û,
- ve kterÿch byly archivované soubory pûvodnê uloæeny.
-
- Ve zpracování roz¿í⌐ené hlaviçky ve star¿ích verzích ARJ, AV.C
- a UNARJ.C je chyba. P⌐i zpracování hlaviçky ve funkci read_header()
- by se mêly p⌐eskoçit çty⌐i bajty kontrolního souçtu, a ne jen dva.
- Tato chyba v¿ak v souçasné dobê nemá æádné negativní dûsledky,
- protoæe æádná verze ARJ zatím roz¿í⌐enou hlaviçku nepouæívá.
-
- **********************************************************************
-
- Seznam provedenÿch zmên:
- Datum Popis zmêny:
- -------- ------------------------------------------------------------
- 03/17/93 P⌐ipojena informace o "rozdvojení" ARJSFX modulu.
- 02/17/93 P⌐ipojen popis polí vyuæívanÿch bezpeçnostní obálkou.
- P⌐ipojen popis pole, v nêmæ se uchovává datum/ças,
- kdy byla v archívu naposledy provedena zmêna.
- 12/03/91 K p⌐íznakûm v hlaviçce ARJ p⌐ipojen p⌐íznak BACKUP.
- 11/21/91 Oddêlenê popsány obê varianty hlaviçek, které se
- v ARJ archívech vyskytují.
- 11/11/91 P⌐ipojena informace o odli¿nostech p⌐i pouæití
- textového reæimu.
- 06/28/91 P⌐ipojeno nêkolik novÿch çísel pro dal¿í operaçní systémy.
- 05/19/91 Vylep¿en popis zpracování roz¿í⌐ené hlaviçky.
- 05/11/91 Zjednodu¿ení dokumentu.
- P⌐ipojen typ "název disku" (volume label).
- 03/11/91 P⌐ipojen typ "adresá⌐" (directory).
- 02/23/91 P⌐ipojeny dal¿í komentá⌐e.
- 01/10/91 Opraven popis pole datum/ças a po⌐adí reæimu p⌐ístupu
- k souboru.
- 10/30/90 Opraveny hodnoty ARJ p⌐íznakû.
-
-
- ARJ archív obsahuje dva druhy hlaviçek:
-
- Hlavní hlaviçku achívu - na zaçátku archívu.
- Lokální hlaviçky archivovanÿch souborû - p⌐edcházejí kaædému
- archivovanému souboru.
-
- Struktura hlavní hlaviçky archívu
- (⌐ádovê nejniæ¿í slabiky jsou uvádêny jako první):
-
- Bajty Popis
- ----- -------------------------------------------------------------------
- 2 identifikaçní bajty hlaviçky (hlavní i lokální) = 0x60 0xEA
- 2 základní velikost hlaviçky (od 'first_hdr_size' do 'comment')
- = first_hdr_size + strlen(filename) + 1 + strlen(comment) + 1
- = 0 jde-li o konec archívu
- maximální délka hlaviçky mûæe bÿt 2600 bajtû.
-
- 1 first_hdr_size (délka aæ k p⌐ípadnému roz¿í⌐ení vçetnê).
- 1 çíslo verze ARJ.
- 1 nejniæ¿í çíslo verze ARJ, která umoæní rozbalení archívu.
- 1 hostitelskÿ operaçní systém (0 = MSDOS, 1 = PRIMOS, 2 = UNIX,
- 3 = AMIGA, 4 = MAC-OS, 5 = OS/2, 6 = APPLE GS, 7 = ATARI ST,
- 8 = NEXT, 9 = VAX VMS)
- 1 p⌐íznaky
- (0x01 = nevyuæito)
- (0x02 = OLD_SECURED_FLAG; p⌐íznak staré verze
- bezpeçnostní obálky)
- (0x04 = VOLUME_FLAG) indikuje existenci svazku, kterÿ
- na tento svazek navazuje.
- (0x08 = nevyuæito)
- (0x10 = PATHSYM_FLAG) indikuje, æe jméno archívu bylo
- p⌐eloæeno ("\" zmênêno na "/")
- (0x20 = BACKUP_FLAG) indikuje archív se zálohami
- (0x40 = SECURED_FLAG)
- 1 verze bezpeçnostní obálky (2 = souçasná)
- 1 typ souboru (musí bÿt roven 2)
- 1 vyhrazeno
- 4 datum/ças prvotního vytvo⌐ení archívu.
- 4 datum/ças naposledy provedené zmêny v archívu.
- 4 velikost archívu (v souçasné dobê vyuæito jen v archívech
- chránênÿch bezpeçnostní obálkou)
- 4 umístêní bezpeçnostní obálky
- 2 zaçátek jména souboru ve specifikaci souboru
- 2 délka bezpeçnostní obálky v bajtech
- 2 (prozatím nevyuæito)
- ? (prozatím nic)
-
- ? pûvodní název archívu (zakonçen nulovÿm terminátorem)
- ? komentá⌐ k archívu (zakonçen nulovÿm terminátorem)
-
- 4 kontrolní souçet základní çásti hlaviçky
-
- 2 velikost první roz¿í⌐ené hlaviçky (0, jestliæe neexistuje)
- ? první roz¿í⌐ená hlaviçka (prozatím se nevyuæívá)
- 4 kontrolní souçet první roz¿í⌐ené hlaviçky (pouze,
- je-li délka roz¿í⌐ené hlaviçky nenulová)
-
-
- Struktura lokální hlaviçky archivovaného souboru
- (⌐ádovê nejniæ¿í slabiky jsou uvádêny jako první):
-
- Bajty Popis
- ----- -------------------------------------------------------------------
- 2 identifikaçní bajty hlaviçky (hlavní i lokální) = 0x60 0xEA
- 2 základní velikost hlaviçky (od 'first_hdr_size' do 'comment')
- = first_hdr_size + strlen(filename) + 1 + strlen(comment) + 1
- = 0 jde-li o konec archívu
- maximální délka hlaviçky mûæe bÿt 2600 bajtû.
-
- 1 first_hdr_size (délka aæ k p⌐ípadnému roz¿í⌐ení vçetnê).
- 1 çíslo verze ARJ.
- 1 nejniæ¿í çíslo verze ARJ, která umoæní rozbalení souboru.
- 1 hostitelskÿ operaçní systém (0 = MSDOS, 1 = PRIMOS, 2 = UNIX,
- 3 = AMIGA, 4 = MAC-OS, 5 = OS/2, 6 = APPLE GS, 7 = ATARI ST,
- 8 = NEXT, 9 = VAX VMS)
- 1 p⌐íznaky (0x01 = GARBLED_FLAG) indikuje za¿ifrovanÿ soubor
- (0x02 = nevyuæito)
- (0x04 = VOLUME_FLAG) indikuje soubor, kterÿ pokraçuje
- v dal¿ím svazku (soubor je rozdêlen)
- (0x08 = EXTFILE_FLAG) indikuje soubor, kterÿ zaçíná
- v p⌐edcházejícím svazku
- (0x10 = PATHSYM_FLAG) indikuje, æe jméno souboru bylo
- p⌐eloæeno ("\" zmênêno na "/")
- (0x20 = BACKUP_FLAG) indikuje soubor oznaçenÿ jako záloha
- 1 pouæitá kompresní metoda (0 = bez komprese,
- 1 = komprimováno co nejúçinnêji...
- 4 = komprimováno co nejrychleji)
- 1 typ souboru (0 = binární, 1 = sedmibitovÿ text,
- 3 = adresá⌐, 4 = název disku)
- 1 vyhrazeno
- 4 datum/ças naposledy provedené zmêny v souboru
- 4 délka po sbalení
- 4 pûvodní délka (li¿í se u souborû sbalenÿch v textovém reæimu)
- 4 kontrolní souçet pûvodního souboru
- 2 zaçátek jména souboru ve specifikaci souboru
- 2 reæim p⌐ístupu k souboru
- 2 informace o hostitelském operaçním systému (prozatím nevyuæito)
- ? p⌐ípadné dal¿í údaje
- 4 bajty v p⌐ípadê, æe soubor pokraçuje z p⌐edcházejícího
- svazku (pak obsahuje pozici zaçátku této çásti souboru)
- (tyto çty⌐i bajty jsou obsaæeny jen v p⌐ípadê, æe je nastaven
- p⌐íznak EXTFILE_FLAG).
- 0 bajtû ve v¿ech ostatních p⌐ípadech.
-
- ? název souboru (zakonçen nulovÿm terminátorem)
- ? komentá⌐ k souboru (zakonçen nulovÿm terminátorem)
-
- 4 kontrolní souçet základní çásti hlaviçky
-
- 2 velikost první roz¿í⌐ené hlaviçky (0, jestliæe neexistuje)
- ? první roz¿í⌐ená hlaviçka (prozatím se nevyuæívá)
- 4 kontrolní souçet první roz¿í⌐ené hlaviçky (pouze,
- je-li délka roz¿í⌐ené hlaviçky nenulová)
-
- ...
-
- ? komprimovanÿ soubor
-
-
- Formát polí datum/ças:
-
- 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
- |<---- rok-1980 ---->|<- mêsíc ->|<--- den ---->|
-
- 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- |<-- hodiny -->|<---- minuty --->|<- sekundy/2 ->|
-
-
- konec dokumentu