![]() | Эта статья включает в себя список общих ссылок , но он остается в значительной степени непроверенным, поскольку в нем отсутствует достаточное количество соответствующих встроенных ссылок . ( Июль 2016 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
![]() | |
Другие имена | LHarc, LHx, LH |
---|---|
Оригинальный автор (ы) | Харуясу Йошизаки |
Стабильный выпуск | 2.13 / 20 июля 1991 г . |
Предварительный выпуск | 2.55b / 24 ноября 1992 г . |
Написано в | Ассемблер , C |
Операционная система | ДОС |
Преемник | LHA32 |
Лицензия | Разрешающая лицензия |
Интернет сайт | https://www.vector.co.jp/vpack/browse/person/an000224.html |
Расширение имени файла | .lzh, .lha |
---|---|
Тип интернет-СМИ | приложение / x-lzh-compressed |
Типовой код | " LHA␣ " (LHA-SPACE) |
Единый идентификатор типа (UTI) | public.archive.lha |
Разработан | Харуясу Йошизаки ( Йоши ) |
Тип формата | Сжатие данных |
Расширен с | LArc |
LHA или LZH - это бесплатная утилита сжатия и соответствующий формат файла. Он был создан в 1988 году доктором Харуясу Йошизаки (吉 崎 栄 泰, Йошизаки Харуясу ) и первоначально назывался LHarc . Полная версия LHarc, предварительно названная LHx , в конечном итоге была выпущена как LH . Затем он был переименован в LHA, чтобы избежать конфликта с новой тогда командой MS-DOS 5.0 LH ("высокая загрузка"). Исходный LHA и его порт для Windows , LHA32, больше не находятся в разработке, потому что Йошизаки занят на работе. [1]
Хотя LHA больше не использовался на западе, он оставался популярным в Японии до 2000-х годов. [2] Он использовался id Software для сжатия установочных файлов своих более ранних игр, включая Doom и Quake . Поскольку некоторые версии LHA распространялись с исходным кодом по разрешительной лицензии , LHA был перенесен на многие операционные системы и до сих пор является основным форматом архивирования, используемым на компьютере Amiga , хотя в середине 1990-х он конкурировал с LZX . Это произошло из-за Аминет, крупнейший в мире архив программного обеспечения и файлов, связанных с Amiga, стандартизированный для реализации Стефаном Бобергом LHA для Amiga.
Microsoft выпустила надстройку Microsoft Compressed (LZH) Folder Add-on, которая была разработана для японской версии Windows XP . [3] Японская версия Windows 7 поставляется со встроенной надстройкой папки LZH. [4] Пользователи неяпонских версий Windows 7 Enterprise и Ultimate также могут установить надстройку папки LZH, установив дополнительный языковой пакет для японского языка из Центра обновления Windows .
Методы сжатия [ править ]
В архиве LZH метод сжатия хранится в виде пятибайтовой текстовой строки, например -lz1- . Это с третьего по седьмой байты файла.
Канонический ЛЖ [ править ]
LHarc сжимает файлы, используя алгоритм из более раннего продукта LZHUF Йошизаки, который был модифицирован из LZARI, разработанного Харухико Окумура (奥 村 晴 彦, Okumura Haruhiko ) , но использует кодирование Хаффмана вместо арифметического кодирования . LZARI использует код Лемпеля – Зива – Сторера – Шимански с арифметическим кодированием.
- lh0
- К исходным данным не применяется метод сжатия.
- lh1
- Этот метод представлен в LHarc версии 1.
- Он поддерживает скользящее окно размером 4 КиБ с поддержкой максимальной длины 60 байтов. Используется динамическое кодирование Хаффмана.
- lh2
- вариант lh1. Этот метод поддерживает скользящее окно размером 8 КиБ с поддержкой максимальной длины 256 байт. Используется динамическое кодирование Хаффмана.
- lh3
- lh2 вариант со статическим Хаффманом.
- lh4, lh5, lh6, lh7
- Методы 4, 5, 6, 7 поддерживают скользящее окно 4, 8, 32, 64 КиБ соответственно с поддержкой максимальной длины совпадения 256 байтов. Используется статическая кодировка Хаффмана. lh5 впервые представлен в LHarc 2, затем lh6 в LHA 2.66 (MSDOS), lh7 в LHA 2.67 beta (MSDOS). Сам LHA никогда не сжимается в lh4.
- lhd
- Технически это не метод сжатия, но он используется в архиве .LZH, чтобы указать, что сжатый объект является пустым каталогом.
Расширения Джо Джареда [ править ]
Джо Джаред расширил LZSS для использования словарей большего размера.
- lh8, lh9, lha, lhb, lhc, lhe
- Размеры словаря (скользящего окна) составляют 64, 128, 256, 512, 1024, 2048 КБ соответственно.
Джаред перенес LZH на Atari. То, что lh8 - то же самое, что lh7, было ошибкой. Файлы, использующие методы с более крупными номерами, также могут не существовать, поскольку Джаред считает их только запланированными функциями. [5]
Расширения UNLHA32 [ править ]
UNLHA32.DLL использует свой собственный метод для тестирования.
- lhx
- Он использует словарь 128–256 КиБ.
Расширения PMarc [ править ]
Эти методы сжатия созданы PMarc, архиватором CP / M, созданным Miyo. Архив обычно имеет расширение .PMA.
- pc1
- Сжатый исполняемый архив PopCom. Подробности неизвестны.
- pm0
- К исходным данным не применяется метод сжатия.
- pm1
- Скользящее окно 8 КБ, статический хаффман. Редко генерируется, декомпрессор реконструируется. [6]
- pm2
- Вариант lh5, раздвижное окно 4K.
- pms
- Используется для обозначения самораспаковывающегося архива PMarc. Следует пропустить, чтобы раскрыть реальный формат.
Расширения LArc [ править ]
LArc использует тот же формат файла, что и .LZH, но был написан Кадзухико Мики, Харухико Окумура и Кеном Масуямой с расширением ".LZS". [7] Программа, похоже, появилась раньше LZH. Он использует двоичное дерево поиска в сопоставлении LZ. [8]
- lzs
- Он поддерживает скользящее окно размером 2 КиБ с поддержкой максимальной длины 17 байт.
- lz2
- Он похож на lzs, за исключением того, что размер словаря и длину соответствия можно изменить.
- lz3
- Неизвестный.
- lz4
- К исходным данным не применяется метод сжатия.
- lz5
- Он поддерживает скользящее окно размером 4 КиБ с поддержкой максимальной длины 17 байт.
- lz7
- lz8
- Неизвестный.
Общие реализации поддерживают только lzs, lz5, а также lz4 только для хранения.
Проблемы [ править ]
LHICE / ICE [ править ]
Существуют копии LHICE, помеченные как версия 1.14. По словам Окумуры, LHICE написан не Йоши. [9]
Ошибка 2000-го года [ править ]
Из-за ошибки временные метки DOS из заголовков уровней 0 и 1 после 2011 года будут установлены на 1980, что означает, что некоторые утилиты необходимо исправить. Это вызвано ошибкой, которая интерпретирует битовое поле беззнакового 8-битного номера года как 5-битное число. Максимальный год должен быть 2107. [10] [11]
Вместо этого в новых заголовках уровня 2 и 3 используется 32-битное время Unix . Он страдает от проблемы 2038 года . [12]
Размер заголовка [ править ]
По словам Микко, автора популярной библиотеки LHA UNLHA32.DLL, многие реализации LHA не проверяют длину заголовков файлов LHA при чтении архива. В этом сценарии могут возникнуть две проблемы: переполнение буфера может произойти для наивных реализаций, предполагающих максимальный размер 4 КБ из исходной спецификации; Антивирусное программное обеспечение может пропускать файлы с такими большими заголовками и не выполнять поиск вирусов. Аналогичная проблема существует с ARJ . Micco сообщила об этой проблеме японским властям, но они не считают ее действительной уязвимостью. [13]
Micco зашла так далеко, что завершила разработку UNLHA32 и посоветовала людям отказаться от этого формата. Тем не менее, они вернулись в 2017 году, чтобы исправить проблему с перехватом DLL .
См. Также [ править ]
- Список форматов архивов
- LZX
Ссылки [ править ]
- ^ "Мир LHA доктора Харуясу Йошизаки" . 1999-04-28. Архивировано из оригинала на 1999-04-28 . Проверено 12 января 20 .
- ^ 吉澤, 亨 史 (07.06.2010). «「 LZH 」の 開 発 中止 - 企業 な ど は 使用 し な い よ う 作者 が 注意 喚起» . CNET Japan (на японском языке) . Проверено 12 января 20 .
- ^ «Надстройка для сжатых папок Microsoft (LZH)» . Архивировано из оригинала на 2007-08-19 . Проверено 5 октября 2007 .
- ^ «Windows 7 で (LZH の 圧 縮 Microsoft) フ ォ ル ダ ー の ア ド イ ン ト ー ル で き せ ん» . Support.microsoft.com . Проверено 17 июля 2016 .
- ↑ Джаред (1998). lzhformat.html
- ^ "fragglet / lhasa" . GitHub .
- ^ "圧 縮 デ ー タ の 拡 張 子" .LZS "| 圧 縮 ・ 解凍 ソ フ ト の ガ イ ド" . Lzh-zip.com . Проверено 17 июля 2016 .
- ^ «Алгоритмы сжатия данных LARC и LHarc» . GameDev.net .
- ^ «История сжатия данных в Японии» . Oku.edu.mie-u.ac.jp . Проверено 12 июля +2016 .
- ^ "Аминет - util / arc / lha138pch.lha" . Aminet.net . Проверено 12 июля +2016 .
- ^ "Аминет - util / arc / lha_68k.lha" . Aminet.net . Проверено 12 июля +2016 .
- ^ Примечания к формату LHA Nifty, Другие форматы данных.
- ^ "LZH 書庫 の ヘ ッ ダ ー 処理 に お け る 脆弱 性 に つ い て (2010 г.)" . micco.mars.jp .
Внешние ссылки [ править ]
- История сжатия данных в Японии
- LHA Notes Документ о LHA.
- jLHA - библиотека LHA для Java
- интерфейс jLHA
- LHA для Unix (на японском языке)
- Взлом сжатия данных, урок 11 LZH, LZARI и LZB
- Файл магии NSRL содержит информацию PMarc
- Explzh Текущий архиватор Windows 7 для LZH / LHA. (Помимо LZH он поддерживает RAR, Zip, 7Z, ACE, Tar, Cab и другие)
- lhasa - кроссплатформенный декомпрессор LHA с открытым исходным кодом (+ расширения UNLHA32, PMArc, LArc)
- lzh format документ, описывающий формат заголовка LZH.