맨위로가기

LHA

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

LHA는 요시자키 히데야스가 개발하고 오쿠무라 하루히코의 알고리즘을 기반으로 한 LZH 형식의 압축 아카이브를 생성하고 관리하는 프로그램이다. LHA는 1988년 PC 통신을 통해 처음 공개되었으며, MS-DOS, Windows, Macintosh 등 다양한 운영체제에서 널리 사용되었다. LHA는 LZSS 알고리즘을 기반으로 LZHUF 알고리즘을 사용하여 데이터를 압축하며, lh0, lh1, lh4/5/6/7 등 다양한 압축 방식을 지원한다. LZH 형식은 MS-DOS 시대에 널리 사용되었으나, ZIP 형식의 등장과 유니코드 미지원, 보안 문제 등으로 인해 점차 사용이 줄어들었다. 현재는 LZH 아카이브 해제 수요가 존재하며, Windows 운영체제에서 LZH 형식 해제 기능을 제공하기도 했으나, 2017년 이후 삭제되었다.

더 읽어볼만한 페이지

  • 1988년 소프트웨어 - 윈도우 2.1x
    윈도우 2.1x는 1988년 마이크로소프트에서 출시한 운영 환경으로, CPU에 따라 Windows/286과 Windows/386으로 나뉘며, 후자는 보호 모드 커널 도입과 확장 메모리 지원 등 기능 개선이 이루어졌고, 1990년에는 한국어 버전도 출시되었다.
  • 1988년 소프트웨어 - 어도비 포토샵
    어도비 포토샵은 1987년 토마스 놀이 개발한 이미지 처리 소프트웨어를 기반으로 1990년 출시된 래스터 그래픽 편집기로, 현재 디자인, 출판, 광고 등 다양한 분야에서 이미지 편집 및 합성을 위한 업계 표준 소프트웨어로 사용되며 어도비 크리에이티브 클라우드 구독 서비스로 제공된다.
  • 압축 소프트웨어 - WinRAR
    WinRAR은 RAR 및 ZIP 등 다양한 파일 형식을 지원하며, 압축 파일 복구, 강력한 암호화 등의 기능을 제공하는 셰어웨어 압축 유틸리티이다.
  • 압축 소프트웨어 - ARJ
    ARJ는 다양한 소프트웨어 유틸리티에서 압축 해제가 가능한 파일 포맷으로, macOS에서는 독립 실행형 유틸리티를 통해 압축을 해제할 수 있다.
  • 아카이브 포맷 - ARJ
    ARJ는 다양한 소프트웨어 유틸리티에서 압축 해제가 가능한 파일 포맷으로, macOS에서는 독립 실행형 유틸리티를 통해 압축을 해제할 수 있다.
  • 아카이브 포맷 - JAR (파일 포맷)
    JAR (Java ARchive)는 자바 런타임 환경에서 애플리케이션 배포를 위해 사용되는 ZIP 기반의 파일 포맷으로, 자바 클래스 파일과 매니페스트 파일을 포함하여 메타데이터와 실행 정보를 관리하며, 압축 및 전자 서명을 지원하고 실행 가능한 JAR 파일을 통해 애플리케이션을 간편하게 실행할 수 있게 한다.
LHA - [IT 관련 정보]에 관한 문서
파일 포맷 정보
이름LZH
확장자.lzh / .lha
MIME 형식application/x-lzh-compressed
개발자길사키 에이야스(요시)
종류데이터 압축
유니폼 타입public.archive.lha
타입 코드LHA
소유자길사키 에이야스
확장 대상LArc
매직 넘버-lh?- (?는 버전)
소프트웨어 정보
이름LHA
다른 이름LHarc, LHx, LH
개발자길사키 에이야스
최신 릴리스 버전2.13
최신 릴리스 날짜1991년 7월 20일
최신 평가판 버전2.55b
최신 평가판 날짜1992년 11월 24일
프로그래밍 언어어셈블리어, C
운영 체제DOS
대체LHA32
라이선스허용적 라이선스
웹사이트LHA World by Dr.Haruyasu Yoshizaki
추가 소프트웨어 정보 (LHA32)
이름LHA32
개발자길사키 에이야스
최신 평가판2.67
최신 평가판 발표일1995년 10월 8일
프로그래밍 언어어셈블리어(x86), C언어
대응 OS마이크로소프트 윈도우
종류아카이버
라이선스프리웨어
관련 정보
설명MS-DOS상에서 동작하는 LHarc

2. 압축 방식

LZH 아카이브에서 압축 방식은 "-lz1-"과 같이 5바이트 텍스트 문자열로 저장되며, 파일의 세 번째부터 일곱 번째 바이트에 해당한다.

lh0 형식은 압축을 수행하지 않는다. 무손실 압축에서 압축 전보다 압축 후의 데이터가 더 커지는 경우가 있는데, lh0 형식은 이를 피하기 위해 사용된다. 사용자가 의도적으로 이 형식을 사용하는 경우, 파일 손상 여부를 확인하거나 여러 파일을 묶는 아카이버로 이용된다.

lh1 형식의 슬라이드 창 크기는 4KB, 최대 일치 길이는 60바이트이다. 문자 및 일치 길이는 동적 허프만 코딩으로 부호화되지만, 일치 위치는 허프만 코딩을 사용하지 않고 부호화된다.

압축 데이터의 전개 속도 향상을 목적으로, 부호화가 lh1 형식의 동적 허프만 방식에서 정적 허프만 방식으로 변경되었다. 또한, 일치 위치도 문자, 일치 길이와는 별도로 허프만 방식으로 부호화된다.

;lhx

: 128–256 KiB의 사전을 사용한다.

2. 1. 캐노니컬 LZH

캐노니컬 LZH는 요시자키가 이전에 개발한 LZHUF 제품의 알고리즘을 사용하여 파일을 압축하는데, 이 알고리즘은 오쿠무라 하루히코가 개발한 LZARI를 기반으로 수정되었지만, 산술 부호화 대신 허프만 부호화를 사용한다. LZARI는 산술 부호화를 사용한 렘펠-지브-스토러-시만스키 압축을 사용한다.[1]

LZH 형식의 압축 알고리즘은 LZSS법으로 압축한 데이터를 더 나아가 허프만 부호화를 사용하여 압축하는 LZHUF 알고리즘을 사용한다.[1] LZHUF는 오쿠무라 하루히코의 LZARI (LZSS + 산술 부호화)의 효율을 향상시키기 위해 요시자키 히데야스가 고안한 것이다.[1]

LZSS법에서는 슬라이딩 윈도우나 최대 일치 길이를 크게 할수록 압축률 향상을 기대할 수 있지만, 한편으로는 무리하게 크게 하면 최장 일치 열의 탐색에 시간이 걸리고, 많은 메모리도 필요하게 된다.[1] 이 때문에 초기 버전에서는 슬라이딩 윈도우나 최대 일치 길이의 크기가 작게 설정되었지만, 탐색 알고리즘의 개선과 컴퓨터 성능 향상 등에 따라 점차 큰 값이 채용되게 되었다.[1]

LZH 압축 형식은 크게 lh0, lh1, lh4/5/6/7으로 나뉜다.[1] 압축률을 높인 lh6/7 방식이 공개되었지만, 개발 도중이라 해당 형식을 사용한 파일의 배포는 권장되지 않는다.[1]

  • lh0: 소스 데이터에 압축 방법이 적용되지 않는다.[1]
  • lh1: 이 방법은 LHarc 버전 1에서 도입되었다.[1] 최대 60바이트 일치 길이를 지원하는 4 KiB 슬라이딩 윈도우를 지원한다.[1] 동적 허프만 부호화가 사용된다.[1]
  • lh2: lh1 변형. 이 방법은 최대 256바이트 일치 길이를 지원하는 8 KiB 슬라이딩 윈도우를 지원한다.[1] 동적 허프만 부호화가 사용된다.[1]
  • lh3: 정적 허프만을 사용하는 lh2 변형.[1]
  • lh4, lh5, lh6, lh7: 4, 5, 6, 7 방법은 각각 4, 8, 32, 64 KiB의 슬라이딩 윈도우를 지원하며, 최대 256바이트의 일치 길이를 지원한다.[1] 정적 허프만 부호화가 사용된다.[1] lh5는 LHarc 2에서 처음 도입되었고, LHA 2.66 (MSDOS)에서 lh6, LHA 2.67 베타 (MSDOS)에서 lh7이 도입되었다.[1] LHA 자체는 lh4로 압축하지 않는다.[1]
  • lhd: 기술적으로는 압축 방법이 아니지만, .LZH 아카이브에서 압축된 객체가 빈 디렉토리임을 나타내는 데 사용된다.[1]

2. 2. Joe Jared 확장

조 자레드는 LZSS를 확장하여 더 큰 사전을 사용하도록 했다.

:사전(슬라이딩 윈도우) 크기는 각각 64, 128, 256, 512, 1024, 2048 KiB이다.

자레드는 LZH를 아타리에 포팅했다. lh8이 lh7과 같다는 것은 간과된 사실이다. 더 큰 번호의 방법을 사용하는 파일은 자레드가 계획된 기능으로만 간주하기 때문에 존재하지 않을 수도 있다.[5]

2. 3. UNLHA32 확장

UNLHA32.DLL은 자체적인 테스트 방식을 사용한다.

LZH 형식의 압축 알고리즘은 LZSS법으로 압축한 데이터를 더 나아가 허프만 부호화를 사용하여 압축하는 LZHUF 알고리즘을 사용한다. LZHUF는 오쿠무라 하루히코의 LZARI (LZSS + 산술 부호화)의 효율을 향상시키기 위해 요시자키 히데야스가 고안한 것이다.

LZSS법에서는 슬라이딩 윈도우나 최대 일치 길이를 크게 할수록 압축률 향상을 기대할 수 있지만, 한편으로는 무리하게 크게 하면 최장 일치 열의 탐색에 시간이 걸리고, 많은 메모리도 필요하게 된다. 이 때문에 초기 버전에서는 슬라이딩 윈도우나 최대 일치 길이의 크기가 작게 설정되었지만, 탐색 알고리즘의 개선과 컴퓨터 성능 향상 등에 따라 점차 큰 값이 채용되게 되었다.

LZH 압축 형식은 크게 lh0, lh1, lh4/5/6/7으로 나뉜다. 압축률을 높인 lh6/7 방식이 공개되었지만, 개발 도중이라 해당 형식을 사용한 파일의 배포는 권장되지 않는다.

2. 4. PMarc 확장

PMarc는 Miyo가 제작한 CP/M 보관 프로그램에서 사용된 확장 기능이다. 아카이브는 일반적으로 .PMA 확장자를 갖는다.

  • ;pc1: PopCom 압축 실행 파일 아카이브. 자세한 내용은 알 수 없다.
  • ;pm0: 소스 데이터에 압축 방법이 적용되지 않았다.
  • ;pm1: 8KB 슬라이딩 윈도우, 정적 허프만. 거의 생성되지 않으며, 압축 해제 프로그램은 리버스 엔지니어링되었다.[6]
  • ;pm2: lh5 변형, 4K 슬라이딩 윈도우.
  • ;pms: PMarc 자체 압축 해제 아카이브를 나타내는 데 사용된다. 실제 형식을 표시하려면 건너뛰어야 한다.

2. 5. LArc 확장

LArc는 .LZH와 동일한 파일 형식을 사용하지만, 미키 카즈히코(Miki Kazuhiko), 오쿠무라 하루히코(Okumura Haruhiko), 마스야마 켄(Masuyama Ken)이 작성했으며 확장자 이름은 ".LZS"이다.[7] 이 프로그램은 LZH보다 먼저 나온 것으로 보인다. LZ 매칭에 이진 탐색 트리를 사용한다.[8]

; lzs

: 최대 17바이트의 일치 길이를 지원하며 2KiB 슬라이딩 윈도우를 지원한다.

; lz2

: 사전 크기와 일치 길이를 변경할 수 있다는 점을 제외하면 lzs와 유사하다.

; lz3

: 알 수 없음.

; lz4

: 소스 데이터에 압축 방법이 적용되지 않음.

; lz5

: 최대 17바이트의 일치 길이를 지원하며 4KiB 슬라이딩 윈도우를 지원한다.

; lz7

; lz8

: 알 수 없음.

일반적인 구현은 lzs, lz5 및 저장 전용 lz4만 지원하는 것으로 보인다.

3. 프로그램

LHA는 오쿠무라 하루히코가 고안한 알고리즘을 바탕으로 요시자키 에이타이가 구현한 것으로, 1988년에 PC 통신으로 공개되었다.

등장 당시에는 LHarc|엘에이치아크영어[15]라는 이름이었으며, 1991년경에 전면적으로 다시 제작하면서 LHA로 개칭했다. 처음에는 LH로 개칭할 예정이었고, 실제로 버전 2.00은 LH로 공개했지만, MS-DOS 버전 5.0의 내부 명령 LOADHIGH의 약칭 LH와 겹쳐 LHA로 변경했다. 아주 초기에는 "LHx/LHa"라는 명칭·표기였다.

초기 버전에서는 LHA를 "라"로 발음한다고 저자가 설명했지만, 후기 버전에서는 그러한 설명은 없다. 또한, RAR과의 혼동을 피하기 위해서 "엘에이치에이", "엘하" 등과 같은 발음이 대세이다[16]

4. 역사

LHA는 오쿠무라 하루히코가 고안한 알고리즘을 바탕으로 요시자키 에이타이가 구현하여 1988년에 PC 통신으로 공개한 압축 형식 및 소프트웨어이다. LHA와 LZH 형식은 PC 통신과 플로피 디스크를 통한 데이터 교환이 주류였던 시대에 유용하게 사용되었으며, 일본 국내는 물론 해외에서도 널리 사용되었다. 1990년대에 하드 디스크와 인터넷이 널리 보급되었음에도 불구하고, 일본 국내에서는 사실상 데이터 압축의 표준적인 형식으로 자리 잡았다.

MS-DOS의 후속 운영 체제인 Windows에 대응하기 위해 1995년에 테스트 버전이 공개되었으나, 개발자 요시자키 히데야스가 본업(의사)으로 바빠지면서 LHA 및 LZH 형식의 개발은 중단되었다. 2000년대 전반까지 일본 인터넷상에서 LZH 형식이 많이 사용되었지만, 다른 형식들이 더 높은 압축률을 보였고, 파일 이름유니코드를 포함한 데이터를 처리할 수 없는 점, 암호화 기능이 없는 점 등 여러 가지 불편함이 있었다. 이후 ZIP이 디팩토 스탠다드가 되었다.

Unlha32.dll 개발자는 2006년에 LZH 형식의 문제점을 발견하여, 2010년에 LZH 형식 사용을 자제할 것을 촉구했다. 일본어판 Windows 7부터 LZH 압축 해제 기능이 표준으로 탑재되었고, Windows 10에도 계속 탑재되었으나, 2017년에 삭제되었다.

MacLHA(구 MacLHarc)는 Macintosh(Mac OS)용 LHA 형식으로 압축하는 프리웨어이다.

4. 1. MS-DOS 시대

오쿠무라 하루히코가 고안한 알고리즘을 바탕으로 요시자키 에이타이가 구현한 것으로, 1988년에 PC 통신으로 공개되었다.[15]

등장 당시에는 LHarc영어라는 이름이었으며, 1991년경에 전면적으로 다시 제작하면서 '''LHA'''로 개칭했다. 처음에는 LH로 개칭할 예정이었고, 실제로 버전 2.00은 LH로 공개했지만, MS-DOS 버전 5.0의 내부 명령 LOADHIGH의 약칭 LH와 겹쳐 '''LHA'''로 변경했다. 아주 초기에는 "LHx/LHa"라는 명칭·표기였다.

발음은 초기 버전에서는 LHA를 "'''라'''"로 한다고 저자가 설명했지만, 후기 버전에서는 그러한 설명은 없다. 또한, RAR과의 혼동을 피하기 위해 "엘에이치에이", "엘하" 등과 같은 발음이 대세이다.[16]

LHA와 LZH 형식은 1988년 등장 이후 PC 통신과 플로피 디스크를 통한 데이터 교환이 주류였던 시대에 유용하게 사용되었으며, MS-DOS뿐만 아니라 여러 종류의 OS로 이식되어 발전했다. ZIP 형식 아카이브를 생성하기 위한 PKZIP이 유료 셰어웨어(압축 해제용 PKUNZIP은 자유 소프트웨어였다)였던 점도 있어, 일본 국내는 물론 해외에서도 널리 사용되었다. 예를 들어, id Software의 초기 게임인 DOOM과 Quake의 설치 프로그램 압축 형식으로 채택되었다. 1990년대에 하드 디스크와 인터넷이 널리 보급되는 시대가 되었음에도 불구하고, 일본 국내에서는 사실상 데이터 압축의 표준적인 형식으로 자리 잡았다. 해외에서 LHA가 표준적인 압축 형식으로 보급된 사례로는 Amiga가 있다.

4. 2. Windows 시대

MS-DOS의 후속 운영 체제인 Windows에 대응하기 위해, 1995년 NIFTY-Serve 상에서 버전 3.0을 위한 테스트 버전으로 2.67 버전이 공개되었다. 그러나 개발자인 요시자키 히데야스가 본업(의사)으로 바빠지면서[17], 이를 마지막으로 새 버전은 공개되지 않았고, LHA 및 LZH 형식의 개발은 중단되었다. 이 때문에 Windows에서는 이미 공개된 소스 코드나 사양을 바탕으로 다른 사람들이 개발한 애플리케이션(unlha32.dll, Lhaplus, Lhasa, +Lhaca 등)을 통해 LZH 형식의 압축 및 압축 해제가 이루어졌다. 2.67 버전은 EXE 형식으로 제공되었지만, 정식 버전인 3.0에서는 엔진 부분만 DLL로 제공할 계획이었다.[18] 결과적으로 그 역할은 Micco가 제작한 Unlha32.dll이 담당하게 되었다.

2000년대 전반까지 일본 인터넷상에서 LZH 형식이 많이 사용되었지만, 다른 형식들이 더 높은 압축률을 보였고, 파일 이름유니코드를 포함한 데이터를 처리할 수 없으며, 암호화 기능이 없는 등의 불편함이 있었다. Mac OS X와 Windows Me 및 Windows XP 이후 버전에서는 ZIP 형식의 압축 및 복원 기능이 내장되면서, ZIP이 디팩토 스탠다드가 되었다.

하지만 기존 아카이브(특히 일본산 온라인 소프트웨어)를 해제해야 하는 수요는 여전히 존재했다. Windows XP에서 "웹 서비스를 사용하여 적절한 프로그램을 찾기" 기능을 사용했을 때 LZH 관련 요청이 가장 많았다고 한다.[19] 이에 마이크로소프트는 LZH 해제 애드온인 "Microsoft 압축 (LZH 형식) 폴더"(Windows XP 및 Windows Server 2003용)를 공식 배포했고,[20] 일본어판 Windows 7에서는 ZIP 형식과 마찬가지로 "압축 폴더"로 이용할 수 있게 되었다. 그러나 LZH 형식으로 압축하는 기능은 포함되지 않아 별도의 소프트웨어가 필요했다. WinRAR, PeaZip, 7-Zip 등 해외에서 제작된 아카이브 도구에서도 LZH는 압축 해제만 지원하는 경우가 많다.

Unlha32.dll 개발자는 2006년에 백신 소프트웨어 대부분이 일부 LZH 아카이브(새로운 압축 형식, 거대한 확장 헤더, 다수의 확장 헤더 등)를 제대로 검사하지 못한다는 사실을 발견하고,[22] 정보처리진흥원 및 각 보안 벤더에 보고했다. ZIP이나 CAB 같은 다른 형식에서는 유사한 문제에 대응하고 있었지만, LZH는 4년 뒤인 2010년에도 대응이 이루어지지 않자,[23] 6월 5일에 LZH 형식 사용을 자제할 것을 촉구했다.[24]

이에 따라 벡터는 LZH 형식의 신규 접수를 중지했다.[25]

이 문제는 LHA 및 LZH 형식 자체의 취약성이 아니라 백신 소프트웨어가 대응하지 않는 점이 문제였지만, LZH 형식에 포함된 멀웨어를 백신 소프트웨어가 탐지하지 못하는 경우가 있을 수 있으므로 주의가 필요하다.[24]

일본어판 Windows 7부터 LZH 압축 해제 기능이 표준으로 탑재되었고, Windows 10에도 계속 탑재되었으나, 2017년 4월에 릴리스된 Windows 10 Creators Update 이후 이 기능은 삭제되었다.

4. 3. MacLHA

MacLHA(구 MacLHarc)는 Macintosh(Mac OS)의 파일 시스템 상의 파일을 LHA 형식으로 압축하는 프리웨어로, 이시자키 카즈아키가 개발하여 배포하였다. 당시 일반적이던 다른 아카이버(StuffIt 및 Compact Pro)는 셰어웨어이거나 크로스 플랫폼을 지원하지 않았기 때문에 국내에서 널리 사용되었다. 기본 압축 알고리즘은 MS-DOS용 LHA와 같지만, Mac OS의 파일 시스템에서 사용되는 리소스 포크를 포함한 상태로 압축하기 위해 MacBinary 형식으로 인코딩하는 기능이 추가되었다. 이 때문에 MacLHA의 압축 파일은 MS-DOS나 윈도우 상의 LHA 및 호환 소프트웨어에서는 정상적으로 풀 수 없다. 또한 소프트웨어에 따라 Mac에서 압축을 풀었을 때 MacBinary 형식의 파일이 나오는 경우도 있다. 실제로 StuffIt Expander로 압축을 푼 경우 MacBinary를 디코딩하지 않기 때문에 혼란을 겪는 사용자가 많았다. 이 경우, 나온 파일을 다시 StuffIt Expander에 통과시키면 MacBinary가 디코딩된다.

이러한 회피책으로 MacBinary로 변환하지 않고 압축하는 옵션이 부속되어 있지만, 이 방법으로 압축한 경우, 반대로 압축을 풀 때 Mac OS(Classic Mac OS)에서는 파일 식별을 할 수 없는 상태가 된다. 그것이 실행 파일인 경우, 정상적으로 실행되지 않을 수도 있다. 이를 방지하기 위해, 버전에 따라 이 옵션을 활성화하고 리소스 포크를 포함한 파일을 추가하려고 하면 MacBinary로 저장할지, 데이터 포크만 저장할지 (리소스 포크와 Finder 정보는 손실된다), 처리를 중단할지를 선택하라는 대화 상자가 표시된다.

5. 문제점

LHA 압축 형식에는 몇 가지 문제점이 존재한다.

LHICE의 버전 1.14는 요시자키가 작성하지 않았다는 주장이 있다.[9]

2011년 이후 레벨 0 및 1 헤더의 DOS 타임스탬프에 버그가 있어 1980년으로 설정되는 문제가 발생했다. 이는 7비트 연도 번호 비트 필드를 잘못 해석했기 때문이며, 최대 연도는 2107년이어야 한다.[10][11] 새로운 레벨 2 및 3 헤더는 32비트 유닉스 시간을 사용하지만, 이는 2038년 문제의 영향을 받는다.[12]

많은 LHA 구현체들이 파일 헤더 길이를 확인하지 않아 버퍼 오버런이나 바이러스 백신 소프트웨어의 검사 실패를 유발할 수 있다는 문제도 있다. ARJ에도 비슷한 문제가 존재한다.[13]

이러한 문제들로 인해, UNLHA32.DLL의 저자인 Micco는 LHA 형식 사용 중단을 권고하기도 했다. 그러나 DLL 하이재킹 문제를 해결하기 위해 2017년에 개발을 재개했다.

5. 1. LHICE/ICE

LHICE의 버전 1.14로 표시된 사본이 있다. 오쿠무라에 따르면, LHICE는 요시자키가 작성한 것이 아니다.[9]

5. 2. Y2K11 버그

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

새로운 레벨 2 및 3 헤더는 32비트 유닉스 시간을 대신 사용한다. 이는 2038년 문제의 영향을 받는다.[12]

5. 3. 헤더 크기 문제

많은 LHA 구현체들이 아카이브를 읽을 때 LHA 파일 헤더의 길이를 확인하지 않아 두 가지 문제가 발생할 수 있다. 첫째, 원래 사양의 최대 4KB 크기를 가정하는 단순한 구현에서는 버퍼 오버런이 발생할 수 있다. 둘째, 바이러스 백신 소프트웨어가 이러한 큰 헤더를 가진 파일을 건너뛰고 바이러스를 검사하지 못할 수 있다. ARJ에도 비슷한 문제가 존재한다.[13]

Micco는 이 문제를 일본 당국에 보고했지만, 그들은 이를 유효한 취약점으로 간주하지 않았다.[13]

5. 4. LZH 형식 사용 중지 권고

Micco는 많은 LHA 구현체들이 아카이브를 읽을 때 LHA 파일 헤더의 길이를 확인하지 않아 버퍼 오버런 및 바이러스 검사 실패 문제가 발생할 수 있다고 지적했다. Micco는 이 문제를 일본 당국에 보고했으나, 유효한 취약점으로 간주되지 않았다.[13]

Micco는 UNLHA32의 개발을 중단하고 LZH 형식 사용 중단을 권고했다. 그러나 DLL 하이재킹 문제를 해결하기 위해 2017년에 다시 개발을 재개했다.

Unlha32.dll의 저자는 2006년에 백신 소프트웨어가 일부 LZH 아카이브(새로운 압축 형식, 거대한 확장 헤더, 다수의 확장 헤더 등)를 제대로 검역하지 못한다는 것을 발견하고, 정보처리진흥원 및 각 보안 벤더에 보고했다.[22] 그러나 4년 뒤인 2010년이 되어도 대응이 진행되지 않자, 6월 5일에 LZH 형식의 사용을 자제하도록 촉구했다.[24]

이에 따라, 벡터는 LZH 형식으로의 신규 접수를 중지했다.[25]

LZH 형식 자체의 취약성은 아니지만, LZH 형식에 포함된 멀웨어를 백신 소프트웨어가 탐지하지 못하는 경우가 존재하므로 주의가 필요하다.[24]

6. 용어

일본에서는 아카이브에서 파일들을 꺼내거나 압축 데이터를 풀어서 펼치는 것(대부분의 사람들이 구분하지 못하고 혼동하고 있다)을 "해동"이라고 부르는 경우가 많은데, 이는 LHA의 매뉴얼을 통해 널리 퍼진 측면이 있다. 당시 PC 통신에 참여한 인원은 그리 많지 않았지만, LHA는 프리 소프트 등을 사용하기 위해 필수적인 도구가 되었기 때문에 잡지 부록 디스크 등을 통해 많은 사람들이 입수한 도구가 되었다. 아카이브에 저장하는 것(동시에 압축할 수도 있다)은 "동결"이라고 부른다. 영어 메시지도 마찬가지로 melt와 freeze로 되어 있다. LHA 개발에도 관여한 오쿠무라 하루히코에 따르면 이 의미의 "해동"이라는 표현 자체는 LHA보다 오래전부터 PC 통신에서 널리 사용되었다.[21]

참조

[1] 웹사이트 LHA World by Dr.Haruyasu Yoshizaki http://www.clione.ne[...] 1999-04-28
[2] 웹사이트 "「LZH」の開発中止--企業などは使用しないよう作者が注意喚起" https://japan.cnet.c[...] 2021-01-12
[3] 웹사이트 Microsoft Compressed (LZH) Folder Add-on http://www.microsoft[...] 2007-10-05
[4] 웹사이트 Windows 7 で (LZH の圧縮に Microsoft) フォルダーのアドインをインストールできません http://support.micro[...] 2016-07-17
[5] 문서 lzhformat.html https://web.archive.[...] 1998
[6] 웹사이트 fragglet/lhasa https://github.com/f[...] 2022-07-07
[7] 웹사이트 圧縮データの拡張子 ".LZS" | 圧縮・解凍ソフトのガイド http://www.lzh-zip.c[...] 2016-07-17
[8] 웹사이트 Data Compression Algorithms of LARC and LHarc http://archive.gamed[...]
[9] 웹사이트 History of Data Compression in Japan http://oku.edu.mie-u[...] 2016-07-12
[10] 웹사이트 Aminet - util/arc/lha138pch.lha http://aminet.net/pa[...] 2016-07-12
[11] 웹사이트 Aminet - util/arc/lha_68k.lha http://aminet.net/pa[...] 2016-07-12
[12] 문서 Nifty's LHA Format Notes, Other data formats
[13] 웹사이트 LZH書庫のヘッダー処理における脆弱性について(2010年版) https://micco.mars.j[...]
[14] 웹사이트 e-Words : LHA http://e-words.jp/w/[...] インセプト 2021-04-02
[15] 간행물 フリーソフトウェアの世界 アスキー (企業)
[16] 웹사이트 【lzh】 http://www.nttpc.co.[...] NTTPCコミュニケーションズ 2021-04-02
[17] 웹사이트 吉崎栄泰のLHAワールド - LHAの今とこれから https://web.archive.[...]
[18] 문서 バージョン2.67付属ドキュメント
[19] 웹사이트 マイクロソフト、Windows XPの正規ユーザー特典としてLZH形式対応を提供 https://internet.wat[...] Impress Watch 2009-04-07
[20] 웹사이트 "「圧縮(LZH 形式)フォルダ」をWindows(R) XPの追加機能として4月28日(木)より提供開始" http://www.microsoft[...] マイクロソフト 2009-04-07
[21] 트윗 "「解凍」はLHAより古くからパソコン通信で広く使われていました…" 2017-01-09
[22] 웹사이트 MHVI#20061019:LZH 書庫のヘッダー処理における脆弱性について http://micco.mars.jp[...]
[23] 웹사이트 MHVI#20100425:LZH 書庫のヘッダー処理における脆弱性について (2010 年版) http://micco.mars.jp[...]
[24] 웹사이트 圧縮・解凍用DLL「UNLHA32.DLL」が開発中止、作者はLZHの利用中止を呼びかけ https://forest.watch[...] インプレス 2010-06-07
[25] 웹사이트 LZH形式でファイルをご登録いただいている作者のみなさまへ http://www.vector.co[...] ベクター 2010-06-09



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com