LHA (formát souboru) - LHA (file format)
![]() | Tento článek obsahuje seznam obecných Reference, ale zůstává z velké části neověřený, protože postrádá dostatečné odpovídající vložené citace.Červenec 2016) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
![]() LHarc běžící v systému MS-DOS | |
Přípona názvu souboru | .lzh, .lha |
---|---|
Typ internetového média | application / x-lzh -primed |
Typový kód | "LHA␣ "(L-H-A-SPACE) |
Jednotný identifikátor typu (UTI) | public.archive.lha |
Vyvinul | Haruyasu Yoshizaki (Yoshi) |
Typ formátu | Komprese dat |
webová stránka | https://github.com/jca02266/lha |
LHA nebo LZH je freeware komprese nástroj a související formát souboru. To bylo vytvořeno v roce 1988 Haruyasu Yoshizaki (吉 崎 栄 泰, Yoshizaki Haruyasu)a původně pojmenovaný LHarc. Úplný přepis LHarca, předběžně pojmenovaného Dxv, byl nakonec propuštěn jako LH. Poté byla přejmenována na LHA aby nedošlo ke konfliktu s tehdy novým MS-DOS 5.0 LH ("vysoké zatížení"). Podle rané dokumentace se LHA vyslovuje jako Los Angeles.
Ačkoli se na západě již příliš nepoužívá, LHA zůstává populární v Japonsko. To bylo používáno id Software komprimovat instalační soubory pro jejich dřívější hry, včetně Osud a Zemětřesení. LHA byla přenesena do mnoha operačních systémů a je stále hlavním archivačním formátem používaným v systému Windows Amiga počítač, i když konkuroval LZX v polovině 90. let. To bylo způsobeno Aminet, nejvacsi svetovy archiv softwaru a suboru pro Amigu, standardizujici implementaci LHA pro Amigu Stefan Boberg.
Společnost Microsoft vydala doplněk složky Microsoft Compressed (LZH), který byl navržen pro japonskou verzi Windows XP.[1] Japonská verze Windows 7 dodává se s vestavěným doplňkem složky LZH.[2] Uživatelé jiných než japonských verzí Windows 7 Enterprise a Ultimate si mohou nainstalovat doplněk složky LZH instalací volitelného japonského jazykového balíčku z Windows Update.
Metody komprese
V archivu LZH je metoda komprese uložena jako pětibajtový textový řetězec, např. -lz1-. Jedná se o třetí až sedmý bajt souboru.
Kanonický LZH
LHarc komprimuje soubory pomocí algoritmu z dřívějšího produktu Yoshizaki LZHUF, který byl upraven z LZARI vyvinutého Haruhiko Okumura (奥 村 晴 彦, Okumura Haruhiko), ale používá Huffmanovo kódování namísto aritmetické kódování. LZARI používá Lempel – Ziv – Storer – Szymanski s aritmetickým kódováním.
- lh0
- Na zdrojová data není použita žádná metoda komprese.
- lh1
- Tato metoda je zavedena v LHarc verze 1.
- Podporuje 4KiB Posuvné okno, s podporou maximálně 60 bajtů shodné délky. Používá se dynamické Huffmanovo kódování.
- lh2
- lh1 varianta. Tato metoda podporuje 8 posuvných oken KiB s podporou maximálně 256 bajtů shodné délky. Používá se dynamické Huffmanovo kódování.
- lh3
- lh2 varianta se statickým Huffmanem.
- lh4, lh5, lh6, lh7
- Metody 4, 5, 6, 7 podporují 4, 8, 32, 64 KiB Posuvné okno respektive s podporou maximálně 256 bajtů shodné délky. Používá se statické Huffmanovo kódování. lh5 je poprvé představen v LHarc 2, následovaný lh6 v LHA 2.66 (MSDOS), lh7 v LHA 2.67 beta (MSDOS). Samotná LHA nikdy nekomprimuje na lh4.
- lhd
- Technicky nejde o kompresní metodu, ale používá se v archivu .LZH k označení, že komprimovaný objekt je prázdný adresář.
Joe Jared rozšíření
Joe Jared rozšířil LZSS o použití větších slovníků.
- lh8, lh9, lha, lhb, lhc, lhe
- Velikosti slovníku (posuvného okna) jsou 64, 128, 256, 512, 1024, 2048 KiB.
Jared přenesl LZH do Atari. Skutečnost, že lh8 je stejný jako lh7, byla přehlédnutím. Soubory používající metody s většími čísly také nemusí existovat, protože Jared je považuje pouze za plánované funkce.[3]
Rozšíření UNLHA32
UNLHA32.DLL používá pro účely testování vlastní metodu.
- lhx
- Používá slovník 128–256 KiB.
Rozšíření PMarc
Tyto kompresní metody vytváří společnost PMarc, a CP / M archivátor vytvořil Miyo. Archiv má obvykle příponu .PMA.
- pc1
- PopCom komprimovaný spustitelný archiv. Podrobnosti neznámé.
- pm0
- Na zdrojová data není použita žádná metoda komprese.
- odpoledne
- Posuvné okno 8 KB, statický huffman. Zřídka se generuje dekompresor s reverzní technikou.[4]
- pm2
- varianta lh5, posuvné okno 4K.
- pms
- Slouží k označení samorozbalovacího archivu PMarc. Mělo by být přeskočeno, aby se odhalil skutečný formát.
LArc rozšíření
LArc používá stejný formát souboru jako .LZH, ale napsali jej Kazuhiko Miki, Haruhiko Okumura a Ken Masuyama s příponou „.LZS“.[5] Zdá se, že program přišel před LZH. Při porovnávání LZ používá binární vyhledávací strom.[6]
- lzs
- Podporuje 2 KiB Posuvné okno, s podporou maximálně 17 bajtů shodné délky.
- lz2
- Je to podobné jako u lzs, kromě toho, že lze změnit velikost slovníku a délku shody.
- lz3
- Neznámý.
- lz4
- Na zdrojová data není použita žádná metoda komprese.
- lz5
- Podporuje 4 KiB Posuvné okno, s podporou maximálně 17 bajtů shodné délky.
- lz7
- lz8
- Neznámý.
Běžné implementace vypadají, že podporují pouze lzs, lz5, plus lz4 pouze pro úložiště.
Problémy
LHICE / ICE
Existují kopie LHICE označené jako verze 1.14. Podle Okumury není LHICE napsán Yoshi.[7]
chyba y2k11
Kvůli chybě budou časová razítka systému DOS z hlaviček úrovně 0 a 1 po roce 2011 nastavena na rok 1980, což znamená, že je třeba opravit některé nástroje. To je způsobeno chybou, která interpretuje nepodepsané 8bitové číslo roku bitové pole jako 5bitové číslo. Maximální rok by měl být místo toho 2107.[8][9]
Novější záhlaví úrovně 2 a 3 používají 32bitovou verzi Unixový čas namísto. Trpí Problém roku 2038.[10]
Velikost záhlaví
Podle společnosti Micco, autora populární knihovny LHA UNLHA32.DLL, mnoho implementací LHA při čtení archivu nekontroluje délku záhlaví souborů LHA. Z tohoto scénáře by mohly vyplynout dva problémy: může dojít k překročení vyrovnávací paměti pro naivní implementace za předpokladu maximální velikosti 4KB z původní specifikace; antivirový software může přeskočit soubory s tak velkými záhlavími a selhat při hledání viru. Podobný problém existuje s ARJ. Společnost Micco nahlásila tento problém japonským úřadům, ale nepovažují jej za platnou chybu zabezpečení.[11]
Společnost Micco zašla tak daleko, aby uzavřela vývoj UNLHA32 a doporučila lidem, aby se vzdali tohoto formátu. Přesto se v roce 2017 vrátili opravit a Únos DLL problém.
Viz také
Reference
- ^ „Doplněk složky Microsoft Compressed (LZH)“. Archivovány od originál dne 19. 8. 2007. Citováno 2007-10-05.
- ^ „Windows 7 で (LZH の 圧 縮 に Microsoft) フ ォ ル ダ ー の ア ド イ ン を イ ン ス ト ー ル で き ま せ ん“. Support.microsoft.com. Citováno 2016-07-17.
- ^ Jared (1998). lzhformat.html
- ^ „fragglet / lhasa“. GitHub.
- ^ "圧 縮 デ ー タ の 拡 張 子" .LZS "| 圧 縮 ・ 解凍 ソ フ ト の ガ イ ド". Lzh-zip.com. Citováno 2016-07-17.
- ^ "Algoritmy komprese dat LARC a LHarc". GameDev.net.
- ^ „Historie komprese dat v Japonsku“. Oku.edu.mie-u.ac.jp. Citováno 12. července 2016.
- ^ „Aminet - util / arc / lha138pch.lha“. Aminet.net. Citováno 12. července 2016.
- ^ „Aminet - util / arc / lha_68k.lha“. Aminet.net. Citováno 12. července 2016.
- ^ Poznámky k formátu LHA společnosti Nifty, další datové formáty.
- ^ „LZH 書庫 の ヘ ッ ダ ー 処理 に お け る 脆弱 性 に つ い て (2010 年 版)“. micco.mars.jp.
externí odkazy
- Historie komprese dat v Japonsku
- Poznámky LHA Dokument o LHA.
- jLHA - LHA knihovna pro Javu
- LHA pro Unix (v japonštině)
- Lekce hackování datové komprese 11 LZH, LZARI a LZB
- Magický soubor NSRL obsahuje informace PMarc
- Explzh Aktuální archivátor Windows 7 pro LZH / LHA. (Kromě LZH podporuje RAR, Zip, 7Z, ACE, Tar, Cab a další)
- Lhasa cross-platform, otevřený zdroj LHA dekompresor (+ UNLHA32, PMArc, LArc rozšíření)
- formát lzh dokument popisující formát záhlaví LZH.