LHarc, работающий в MS-DOS | |
Расширение имени файла | .lzh,.lha |
---|---|
Тип Интернет-носителя | application / x -lzh-compressed |
Код типа | "LHA␣ "(LHA-SPACE) |
Унифицированный идентификатор типа (UTI) | public.archive.lha |
Разработано | Харуясу Йошизаки (Йоши) |
Тип формата | Сжатие данных |
Веб-сайт | ht tps: //github.com/jca02266/lha |
LHA или LZH - это бесплатная утилита сжатия и соответствующий формат файла. Он был создан в 1988 году Харуясу Йошизаки (吉 崎 栄 泰, Йошизаки Харуясу) и первоначально назывался LHarc . Полная версия LHarc, предварительно названная LHx, в конечном итоге была выпущена как LH. Затем он был переименован в LHA, чтобы избежать конфликта с новой на тот момент командой MS-DOS 5.0 LH("высокая загрузка"). Согласно ранним документам, LHA произносится как La.
Хотя LHA больше не используется на западе, он остается популярным в Японии. Он использовался id Software для сжатия установочных файлов своих более ранних игр, включая Doom и Quake. LHA был перенесен во многие операционные системы и до сих пор является основным форматом архивирования, используемым на компьютере Amiga, хотя в середине 1990-х он конкурировал с LZX. Это произошло из-за Aminet, крупнейшего в мире архива программного обеспечения и файлов, связанных с Amiga, стандартизованного на реализации Стефаном Бобергом LHA для Amiga.
Microsoft выпустила надстройку Microsoft Compressed (LZH) Folder Add-on, которая была разработана для японской версии Windows XP. Японская версия Windows 7 поставляется со встроенной надстройкой папки LZH. Пользователи неяпонских версий Windows 7 Enterprise и Ultimate также могут установить надстройку папки LZH, установив дополнительный языковой пакет для японского языка из Центра обновления Windows.
В архиве LZH метод сжатия сохраняется в виде пятибайтовой текстовой строки, например -lz1-. Это с третьего по седьмой байты файла.
LHarc сжимает файлы, используя алгоритм из более раннего продукта LZHUF Йошизаки, который был модифицирован из LZARI, разработанного Харухико Окумура (奥 村 晴 彦, Окумура Харухико), но использует кодирование Хаффмана вместо арифметического кодирования. LZARI использует Лемпеля – Зива – Сторера – Шиманского с арифметическим кодированием.
Джо Джаред расширил LZSS для использования словарей большего размера.
Джаред перенес LZH на Atari. То, что lh8 - то же самое, что lh7, было упущением. Файлы, использующие методы с более крупными номерами, также могут не существовать, поскольку Джаред считает их только запланированными функциями.
UNLHA32.DLL использует свой собственный метод для целей тестирования.
Эти методы сжатия созданы PMarc, архиватором CP / M, созданным Миё. Архив обычно имеет расширение.PMA.
LArc использует тот же формат файла, что и.LZH, но был написан Кадзухико Мики, Харухико Окумура и Кеном Масуямой с именем расширения ".LZS". Программа вроде вышла до ЛЖ. Он использует двоичное дерево поиска в сопоставлении LZ.
Обычные реализации, похоже, поддерживают только lzs, lz5, а также lz4 только для хранения.
Существуют копии LHICE, помеченные как версия 1.14. По словам Окумуры, LHICE написан не Йоши.
Из-за ошибки временные метки DOS из заголовков уровней 0 и 1 после 2011 года будут установлены на 1980, что означает, что некоторые утилиты нужно пропатчить. Это вызвано ошибкой, которая интерпретирует битовое поле 8-битного номера года без знака как 5-битное число. Вместо этого максимальный год должен быть 2107.
В более новых заголовках уровня 2 и 3 вместо этого используется 32-битное время Unix. Он страдает от проблемы года 2038.
По словам Микко, автора популярной библиотеки LHA UNLHA32.DLL, многие реализации LHA не проверяют длину заголовков файлов LHA, когда читаем архив. В этом сценарии могут возникнуть две проблемы: переполнение буфера может произойти для наивных реализаций, предполагающих максимальный размер 4 КБ из исходной спецификации; Антивирусное программное обеспечение может пропускать файлы с такими большими заголовками и не выполнять поиск вирусов. Аналогичная проблема существует с ARJ. Micco сообщила об этой проблеме японским властям, но они не считают ее действительной уязвимостью.
Micco зашла так далеко, что завершила разработку UNLHA32 и посоветовала людям отказаться от этого формата. Тем не менее, они вернулись в 2017 году, чтобы исправить проблему с перехватом DLL.