LHA(파일 형식)

LHA (file format)
LHA
LHarc usage message.jpg
기타 이름LHarc, LHx, LH
원저작자요시자키 하루야스
안정된 릴리스
2.13 / 1991년 7월 20일; 31년 전 (1991-07-20)
프리뷰 릴리즈
2.55b / 1992년 11월 24일; 29년 전(1992-11-24)
기입처어셈블리 언어, C
운영 체제DOS
후계자LHA32
면허증.허가 라이선스
웹 사이트https://www.vector.co.jp/vpack/browse/person/an000224.html
LZH
파일 이름 확장자
.lzh, .lha
인터넷 미디어 유형
응용 프로그램/x-lzh 압축
유형코드"LHA␣(L-H-A-SPACE)
Uniform Type Identifier(UTI; 균일 유형 식별자)public.la.
개발자요시자키 하루야스(요시)
포맷의 종류data 압축
확장원LArc

LHA 또는 LZH는 프리웨어 압축 유틸리티 및 관련 파일 형식입니다.1988년 의사 요시자키 하루야스( ( yosh, 요시자키 하루야스)가 만든 LHarc.LHarc의 완전한 개서(가칭 LHx)는 결국 LH로 공개되었다.그 후 당시 새로운 MS-DOS 5.0 LH("load high") 명령과의 충돌을 피하기 위해 LHA로 이름이 변경되었습니다.원래 LHA와 Windows 포트인 LHA32는 요시자키가 [1]일 때문에 더 이상 개발되지 않습니다.

서양에서는 별로 사용되지 않게 되었지만,[2] 2000년대까지 일본에서 LHA는 여전히 인기가 있었다.id SoftwareDoom과 Quake를 포함한 초기 게임의 설치 파일을 압축하기 위해 사용했습니다.LHA의 일부 버전이 허가 라이선스로 소스 코드를 사용하여 배포되었기 때문에 LHA는 많은 운영체제로 이식되어 1990년대 중반에 LZX와 경쟁했지만 여전히 Amiga 컴퓨터에서 사용되는 주요 아카이브 형식입니다.이는 Amiga 관련 소프트웨어와 파일의 세계 최대 아카이브인 Aminet이 Stefan Boberg의 Amiga용 LHA 구현을 표준화한 덕분입니다.

Microsoft는 Windows [3]XP 일본어 버전용으로 설계된 Microsoft LZH(압축) 폴더 추가 기능을 출시했습니다.Windows 7 일본어판에는 LZH 폴더 애드인이 [4]포함되어 있습니다.Windows 7 Enterprise 및 Ultimate의 일본어 버전이 아닌 사용자는 Windows Update에서 옵션 일본어 언어 팩을 설치하여 LZH 폴더 추가 기능을 설치할 수도 있습니다.

압축 방식

LZH 아카이브에서는 압축방법은 5바이트 텍스트 문자열(를 들어 -lz1-)로 기억된다.이것들은 파일의 3 ~7 바이트입니다.

표준 LZH

LHarc는 오쿠무라 하루히코(奥村春 ok·오쿠무라 하루히코)가 개발한 LZARI를 수정한 요시자키의 초기 LZHUF 제품 알고리즘을 사용하여 파일을 압축하지만 산술 부호화 대신 허프만 부호화를 사용한다.LZARI는 산술 부호화와 함께 Lempel-Ziv-Storer-Szymanski를 사용합니다.

lh0
소스 데이터에는 압축 방법이 적용되지 않습니다.
lh1
이 방법은 LHarc 버전1에서 도입되었습니다.
4KiB 슬라이딩 윈도우를 지원하며 최대 60바이트의 길이를 지원합니다.다이내믹 허프만 부호화가 사용됩니다.
LH2
LH1 변종이 메서드는 8KiB 슬라이딩 창을 지원하며 최대 256바이트의 일치 길이를 지원합니다.다이내믹 허프만 부호화가 사용됩니다.
lh3
정적 허프먼을 사용하는 lh2 변종.
lh4, lh5, lh6, lh7
메서드 4, 5, 6, 7은 각각 4, 8, 32, 64 KiB 슬라이딩 윈도우를 지원하며 최대 256바이트의 일치하는 길이를 지원합니다.스태틱 허프만 부호화가 사용됩니다.LHarc 2에 LH5가 처음 도입되었으며, 그 다음으로 LH6이 LHA 2.66(MSDOS), LH7이 LHA 2.67 베타(MSDOS)에 도입되었습니다.LHA 자체는 lh4로 압축되지 않습니다.
lhd
엄밀히 말하면 압축 방식은 아니지만에서 사용되고 있습니다.압축된 개체가 빈 디렉토리임을 나타내는 LZH 아카이브.

Joe Jared 내선번호

Joe Jared는 더 큰 사전을 사용하도록 LZSS를 확장했습니다.

lh8, lh9, lha, lhb, lhc, lhe
사전(슬라이딩 창) 크기는 각각 64, 128, 256, 512, 1024, 2048 KiB입니다.

Jared는 LZH를 Atari로 이동시켰다.lh8이 lh7과 같다는 사실은 간과였다.번호가 더 큰 메서드를 사용하는 파일은 [5]Jared가 계획된 기능만 고려하므로 존재하지 않을 수도 있습니다.

UNRHA32 확장

UNHHA32DLL은 테스트 목적으로 독자적인 방법을 사용합니다.

lhx
128~256 KiB 사전을 사용합니다.

PMarc 확장

이러한 압축 방법은 Miyo가 작성한 CP/M 아카이브인 PMarc에 의해 작성되었습니다.아카이브에는 보통 가 있습니다.PMA 확장

pc1
PopCom이 압축된 실행 파일 아카이브입니다.자세한 내용은 알 수 없습니다.
pm0
소스 데이터에는 압축 방법이 적용되지 않습니다.
pm1
8KB 슬라이딩 윈도우, 정적 허프먼거의 생성되지 않는 감압기는 리버스 엔지니어링됩니다.[6]
pm2
LH5 변형, 4K 슬라이딩 윈도우
pms
PMarc 자기 압축 해제 아카이브를 나타내는 데 사용됩니다.실제 형식을 표시하려면 건너뜁니다.

LArc 확장

LArc는 와 같은 파일 형식을 사용합니다.LZH는 미키 카즈히코, 오쿠무라 하루히코, 마스야마 켄에 의해 작성되었으며, 확장명은 "이다.LZS.[7] 프로그램이 LZH보다 먼저 온 것 같습니다.LZ [8]매칭에서는 바이너리 검색 트리를 사용합니다.

lz
2KiB 슬라이딩 윈도우를 지원하며 최대 17바이트의 길이를 지원합니다.
lz2
사전 크기와 일치 길이를 변경할 수 있다는 점을 제외하면 lz와 유사합니다.
lz3
알 수 없는.
lz4
소스 데이터에는 압축 방법이 적용되지 않습니다.
lz5
4KiB 슬라이딩 윈도우를 지원하며 최대 17바이트의 길이를 지원합니다.
lz7
lz8
알 수 없는.

일반적인 구현에서는 lz, lz5 및 스토리지 전용 lz4만 지원하는 것으로 보입니다.

문제들

LHICE/ICE

버전 1.14로 표시된 LHICE 복사본이 있습니다.오쿠무라씨에 의하면, LHICE는 요시자키가 [9]쓴 것이 아니다.

Y2K11 버그

버그로 인해 2011년 이후 레벨0 및 1 헤더의 DOS 타임스탬프는 1980으로 설정됩니다.즉, 일부 유틸리티는 패치가 필요합니다.이는 부호 없는7비트 연도 번호의 비트필드를 5비트 숫자로 해석하는 버그로 인해 발생합니다.대신 [10][11]최대 연도는 2107이어야 합니다.

새로운 레벨 2 및3 헤더는 32비트의 Unix 타임을 사용합니다.그것은 2038년 [12]문제로 고통받고 있다.

헤더 사이즈

유명한 LHA 라이브러리인 UNHHA32의 저자 Micco에 따르면.DLL, 많은 LHA 구현에서는 아카이브를 읽을 때 LHA 파일헤더의 길이를 체크하지 않습니다.이 시나리오에서는 두 가지 문제가 발생할 수 있습니다.원래 사양의 최대 사이즈를 4KB로 가정한 단순한 구현에서는 버퍼 오버런이 발생할 수 있습니다.또한 안티바이러스소프트웨어는 헤더가 큰 파일을 건너뛰어 바이러스 스캔에 실패할 수 있습니다.ARJ에서도 같은 문제가 발생하고 있습니다.Micco는 이 문제를 일본 당국에 보고했지만, 그들은 이것이 유효한 [13]취약점이라고 생각하지 않는다.

Micco는 UNDHA32의 개발을 마무리 짓고 포맷을 포기하라고 조언하기까지 했다.그럼에도 불구하고, 그들은 DLL 납치 문제를 해결하기 위해 2017년에 돌아왔다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "LHA World by Dr.Haruyasu Yoshizaki". 1999-04-28. Archived from the original on 1999-04-28. Retrieved 2021-01-12.
  2. ^ 吉澤, 亨史 (2010-06-07). "「LZH」の開発中止--企業などは使用しないよう作者が注意喚起". CNET Japan (in Japanese). Retrieved 2021-01-12.{{cite web}}: CS1 maint :url-status (링크)
  3. ^ "Microsoft Compressed (LZH) Folder Add-on". Microsoft. Archived from the original on 2007-08-19. Retrieved 2007-10-05.
  4. ^ "Windows 7 で (LZH の圧縮に Microsoft) フォルダーのアドインをインストールできません". Support.microsoft.com. Retrieved 2016-07-17.
  5. ^ Jared(1998).lzhformat.syslog
  6. ^ "fragglet/lhasa". GitHub. 7 July 2022.
  7. ^ "圧縮データの拡張子 ".LZS" 圧縮・解凍ソフトのガイド". Lzh-zip.com. Retrieved 2016-07-17.
  8. ^ "Data Compression Algorithms of LARC and LHarc". GameDev.net.
  9. ^ "History of Data Compression in Japan". Oku.edu.mie-u.ac.jp. Retrieved 12 July 2016.
  10. ^ "Aminet - util/arc/lha138pch.lha". Aminet.net. Retrieved 12 July 2016.
  11. ^ "Aminet - util/arc/lha_68k.lha". Aminet.net. Retrieved 12 July 2016.
  12. ^ Nifty의 LHA 형식 참고, 기타 데이터 형식.
  13. ^ "LZH書庫のヘッダー処理における脆弱性について(2010年版)". micco.mars.jp.

외부 링크