LHA (формат файла)
![]() | Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( Июль 2016 г. ) |
![]() | |
Другие имена | LHarc, LHx, LH |
---|---|
Оригинальный автор(ы) | Харуясу Ёсидзаки |
Стабильная версия | 2.13 / 20 июля 1991 г |
Предварительный выпуск | 2.55б / 24 ноября 1992 г |
Написано в | Язык ассемблера , Си |
Операционная система | ПРИНАДЛЕЖАЩИЙ |
Преемник | LHA32 |
Лицензия | Разрешительная лицензия |
Веб-сайт | https://www.vector.co.jp/vpack/browse/person/an000224.html |
Расширение имени файла | .лж, .лха |
---|---|
Тип интернет-СМИ | приложение/x-lzh-сжатое |
Введите код | " LHA␣ (LHA-SPACE) |
Единый идентификатор типа (UTI) | public.archive.lha |
Разработано | Харуясу Ёсидзаки ( Йоши ) |
Тип формата | Сжатие данных |
Расширено с | ЛАрк |
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 он конкурировал с LZX , хотя в середине 1990-х годов . Это произошло благодаря Aminet , крупнейшему в мире архиву программного обеспечения и файлов, связанных с Amiga, стандартизации реализации LHA Стефана Боберга для Amiga.
Microsoft выпустила надстройку Microsoft Compressed (LZH) Folder, разработанную для японской версии Windows XP . [3] Японская версия Windows 7 поставляется со встроенной надстройкой папки LZH. [4] Пользователи неяпонских версий Windows 7 Enterprise и Ultimate также могут установить надстройку папки LZH, установив дополнительный пакет японского языка из Центра обновления Windows .
Методы сжатия [ править ]
В архиве LZH метод сжатия хранится в виде пятибайтовой текстовой строки, например -lz1- . Это байты с третьего по седьмой файла.
Канонический ЛЖ [ править ]
LHarc сжимает файлы с использованием алгоритма из более раннего продукта LZHUF Йошизаки, который был модифицирован на основе LZARI, разработанного Харухико Окумурой ( 奥村晴彦 , Окумура Харухико ) , но используется кодирование Хаффмана вместо арифметического кодирования . LZARI использует Лемпеля-Зива-Сторера-Шиманского с арифметическим кодированием.
- лх0
- К исходным данным не применяется метод сжатия.
- лх1
- Этот метод представлен в LHarc версии 1.
- Он поддерживает размером 4 КиБ скользящее окно и максимум 60 байтов соответствующей длины. Используется динамическое кодирование Хаффмана.
- лх2
- вариант lh1. Этот метод поддерживает скользящее окно размером 8 КиБ с поддержкой максимальной длины 256 байт. Используется динамическое кодирование Хаффмана.
- лх3
- Вариант 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 (MSDOS). Сам LHA никогда не сжимается в lh4.
- лру
- Технически это не метод сжатия, но он используется в архиве .LZH для обозначения того, что сжатый объект представляет собой пустой каталог.
Расширения Джо Джареда [ править ]
Джо Джаред расширил LZSS, чтобы использовать словари большего размера.
- lh8, lh9, lha, lhb, lhc, lhe
- Размеры словаря (скользящего окна) составляют 64, 128, 256, 512, 1024, 2048 КиБ соответственно.
Джаред портировал LZH на Atari. Тот факт, что lh8 совпадает с lh7, был упущением. Файлы, использующие методы с большими номерами, могут также не существовать, поскольку Джаред считает их только запланированными функциями. [5]
Расширения UNLHA32 [ править ]
UNLHA32.DLL использует собственный метод для целей тестирования.
- лхх
- Он использует словарь размером 128–256 КиБ.
Расширения PMarc [ править ]
Эти методы сжатия созданы PMarc, архиватором CP/M, созданным Miyo. Архив обычно имеет расширение .PMA.
- ПК1
- Сжатый исполняемый архив PopCom. Подробности неизвестны.
- pm0
- К исходным данным не применяется метод сжатия.
- pm1
- Скользящее окно, 8 КБ, статический Хаффман. Редко генерируется, декомпрессор подвергается обратному проектированию. [6]
- pm2
- Вариант lh5, раздвижное окно 4K.
- вечера
- Используется для обозначения самораспаковывающегося архива PMarc. Следует пропустить, чтобы раскрыть реальный формат.
Расширения LArc [ править ]
LArc использует тот же формат файлов, что и .LZH, но был написан Кадзухико Мики, Харухико Окумура и Кеном Масуямой, с расширением «.LZS». [7] Программа вроде бы предшествовала LZH. Он использует двоичное дерево поиска при сопоставлении LZ. [8]
- лзс
- Он поддерживает скользящее окно размером 2 КиБ и максимум 17 байтов соответствующей длины.
- лз2
- Он похож на lzs, за исключением того, что можно изменить размер словаря и длину совпадения.
- лз3
- Неизвестный.
- лз4
- К исходным данным не применяется метод сжатия.
- лз5
- Он поддерживает скользящее окно размером 4 КиБ и максимум 17 байтов соответствующей длины.
- лз7
- лз8
- Неизвестный.
Общие реализации, по-видимому, поддерживают только lzs, lz5, а также lz4, предназначенный только для хранения.
Проблемы [ править ]
LHICE/ICE [ править ]
Существуют копии LHICE с пометкой версии 1.14. По словам Окумура, LHICE написан не Ёсидзаки. [9]
Ошибка Y2K11 [ править ]
Из-за ошибки метки времени DOS из заголовков уровня 0 и 1 после 2011 года будут установлены на 1980 год, а это означает, что некоторые утилиты необходимо исправить. Это вызвано ошибкой, которая интерпретирует беззнаковое 7-битное битовое поле номера года как 5-битное число. Вместо этого максимальный год должен быть 2107. [10] [11]
Вместо этого новые заголовки уровней 2 и 3 используют 32-битное время Unix . Он страдает от проблемы 2038 года . [12]
Размер заголовка [ править ]
По словам Микко, автора популярной библиотеки LHA UNLHA32.DLL, многие реализации LHA не проверяют длину заголовков файлов LHA при чтении архива. В этом сценарии могут возникнуть две проблемы: может произойти переполнение буфера для простых реализаций, предполагающих максимальный размер 4 КБ из исходной спецификации; антивирусное программное обеспечение может пропускать файлы с такими большими заголовками и не сканировать их на наличие вирусов. Аналогичная проблема существует и с ARJ . Micco сообщила об этой проблеме японским властям, но они не считают ее серьезной уязвимостью. [13]
Микко зашел так далеко, что завершил разработку UNLHA32 и посоветовал людям отказаться от этого формата. Тем не менее, они вернулись в 2017 году, чтобы исправить проблему с захватом DLL .
См. также [ править ]
Ссылки [ править ]
- ^ «Мир LHA доктора Харуясу Ёсидзаки» . 28 апреля 1999 г. Архивировано из оригинала 28 апреля 1999 г. Проверено 12 января 2021 г.
- ^ Ёсидзава, Токуши (7 июня 2010 г.) «Разработка LZH остановлена - автор предупреждает компании не использовать его» . CNET Japan (на японском языке) . Проверено 12 января 2021 г. .
- ^ «Дополнение к сжатой папке Microsoft (LZH)» . Майкрософт . Архивировано из оригинала 19 августа 2007 г. Проверено 5 октября 2007 г.
- ^ «Невозможно установить папку надстройки (сжатие Microsoft to LZH) в Windows 7» . 17 июля 2016 Проверено г. .
- ^ Джаред (1998). lzhformat.html
- ^ «фраглет/лхаса» . Гитхаб . 7 июля 2022 г.
- ^ » | Руководство по программному обеспечению для сжатия/распаковки» . «Расширение сжатых данных « .LZS Проверено 17 июля 2016 г. .
- ^ «Алгоритмы сжатия данных LARC и LHarc» . GameDev.net .
- ^ «История сжатия данных в Японии» . Oku.edu.mie-u.ac.jp . Проверено 12 июля 2016 г.
- ^ «Аминет — util/arc/lha138pch.lha» . Аминет.нет . Проверено 12 июля 2016 г.
- ^ «Аминет — util/arc/lha_68k.lha» . Аминет.нет . Проверено 12 июля 2016 г.
- ^ Примечания к формату LHA Nifty, другие форматы данных.
- ^ архива LZH (редакция 2010 г.)» micco.mars.jp «Об уязвимости в обработке заголовков .
Внешние ссылки [ править ]
- История сжатия данных в Японии
- Примечания LHA Документ о LHA.
- jLHA — библиотека LHA для Java.
- LHA для Unix. Архивировано 28 мая 2007 г. на Wayback Machine (на японском языке).
- Урок взлома сжатия данных 11 LZH, LZARI и LZB
- Волшебный файл NSRL содержит информацию PMarc.
- Explzh Текущий архиватор Windows 7 для LZH/LHA. (Помимо LZH он поддерживает RAR, Zip, 7Z, ACE, Tar, Cab и другие)
- lhasa — кроссплатформенный декомпрессор LHA с открытым исходным кодом (+ расширения UNLHA32, PMArc, LArc).
- Документ формата lzh, описывающий формат заголовка LZH.