EGG(알집)

 

1. 개요
2. 설명
3. unegg.dll
4. 포맷 지원 프로그램


1. 개요


이스트소프트에서 2010년[1] 출시된 알집 8.0부터 제공하고 있는 압축 포맷.

2. 설명


EGG 포맷 명세서
이스트소프트는 이 압축 포맷의 명세를 제공하고 있지만, 압축 포맷을 사용하고자 할 경우 자사의 허락을 받아야 한다고 명시하고 있으며, 포맷 문서에도 누락된 내용이 많다. 예를 들자면 AZO 알고리즘에 대한 설명 등.
EGG 포맷이 이스트 소프트에서 만든 포맷이기는 하지만, 특허권 신청 등이 안 된 상태에서 파일 포맷이 프로그램보호법이나 저작권법으로 보호받은 전례가 없기 때문에 다른 프로그램에서 이 포맷을 쓴다고 해서 태클을 걸 수 있을지는 미지수. 압축 알고리즘을 특허로 보호하면 가능하지만, 몇몇 국가에서는 소프트웨어 특허를 인정하지 않고 있다. 지금은 만료된지 오래지만 한 때 논란이 되었던 GIF 특허가 특정 포맷을 쓰기 위해 필수적인 알고리즘을 특허로 보호한 유명한 사례이다.
EGG 포맷은 ZIP 포맷보다는 RAR 포맷과 비슷한 구조로 되어 있다. 즉, 파일 헤더 + 파일 데이타 + 파일헤더 + 파일 데이타 ....... 하는 식으로 저장이 된다.
어째서인지 bz2 확장자로 바꿔도 풀리는 게 개중에는 더러 있다고 한다.
기존에 알집에서 사용하던 ALZ 포맷과 비교해서 다음과 같은 장점이 있다.
  • 솔리드 압축 지원
  • 파일 시간 정보에 NTFS 파일 시간을 지원하는등 좀더 상세한 정보 저장이 가능
  • 다양한 압축 알고리즘 지원
  • 파일 종류에 따라 다른 압축 알고리즘을 사용하는 '최적압축'
  • 유니코드 파일명 지원
최적압축 기능 자체는 대단히 선진적인 개념이다. HDD가 1TB를 넘어가고 100Mbps 광랜이 보급화되면서 무조건 압축률에 목숨거는 것보단 압축속도 대비 효율을 추구하는 것이 앞으로의 방향이기 때문이다. WinRAR이 확장자에 따라 압축을 하지 않고 넣는 옵션을 제공하긴 하지만, 기본값 없이 기능만 있는지라 사용자가 일일이 제외할 확장자를 지정해 줘야 한다. EGG만의 특징이라기엔 다른 포맷에서도 구현이 어려운게 아니라 ZIP포맷에도 흔히 쓰이는 기능이다. 알집 8.0보다 반년 먼저 나온 V3ZIP에도 있던 기능..
알집은 EGG를 압축/해제할 때 멀티코어 프로세스를 쓰지 못한다. 그리고 4GB이상은 EGG로만 압축된다. 근데 반디집은 멀티코어를 잘만 쓴다.
이스트소프트에서는 '''AZO 알고리즘으로 압축된 EGG 파일은 반디집 6.0 이상에서 압축을 풀 수 없도록''' 제약을 가해버렸다.[2] 출처 하지만 반디집 개발자가 리버싱 엔지니어링으로 AZO 알고리즘을 구현하면서 6.19 버전부터 다시 정상적으로 압축 해제가 가능하다.
한국에서 유포되는 '''랜섬웨어 중에서 EGG 파일로 유포되는 경우'''가 많으니 인터넷에서 EGG 파일을 다운받는 경우에는 매우 주의해야 한다. EGG는 다른 압축 포맷과 달리 알려진 정보가 적기 때문에 백신 탐지를 우회할 수 있기 때문. 사실상 악성코드의 주 배포경로가 되고 있음에도 이스트소프트는 타 압축프로그램의 EGG 압축해제 지원에 굉장히 소극적이다.
기존에는 인터넷 상이나 이메일을 통해 자료를 공유할때, 파일크기 제한으로 인해 해당 압축포맷을 이용해 분할압축 후 배포하는 경우가 매우 많았다. 하지만 지금은 각종 클라우드 서비스나 대용량 첨부를 통해 기가바이트 단위까지 공개공유가 가능해지고, 저작권 단속 발달로 게시글이 삭제되는 경우도 많아 좀처럼 찾아보기 힘든 포맷이 되었다.

3. unegg.dll


이스트소프트는 기존의 ALZ 포맷이 독점적이라는 문제를 해소하기 위해서 포맷의 지원과 함께 EGG 파일의 압축 해제를 위한 소스코드를 제공한다. 초기에는 DLL 파일만 배포했지만 나중에는 리눅스용 소스코드도 배포했다.
unegg.dll 및 설명서
EGG 포맷 및 해제모듈 라이선스

EGG 포맷 및 해제모듈 라이선스 중 일부(2012년 9월 14일 기준)

1) (주)이스트소프트(이하 '당사')의 공식 홈페이지(http://www.altools.co.kr)를 통해 배포된 EGG 포맷과 해제모듈 및 이와 관련된 기술(이하 'EGG 패키지')은 당사의 자산입니다. 상업적인 목적으로 EGG 패키지를 사용하고자 하는 경우, 당사로부터 사전에 승인을 받아야 합니다.

위의 사용에 소극적인 라이선스 때문에 타 프로그램의 EGG 지원에 문제가 생긴다. WinRAR의 경우 UnRAR 소스코드 수정이나 압축을 할 수 있도록 개발하는 것을 금지하고 있는데 무수정, 압축해제 전용으로 개발할 경우 상업 비상업은 신경쓰지 않는다.

4. 포맷 지원 프로그램


2020년 현재 EGG 포맷으로 압축할 때는 알집이 유일하지만 반대로 EGG 포맷으로 압축된 파일은 다음과 같은 프로그램으로 압축 해제가 가능하다.
EGG 해제 가능한 프로그램 중 이스트소프트 라이브러리를 사오지 않고 리버스 엔지니어링으로 구현한 유일한 프로그램이다. 이는 반디집의 전신을 개발한 키플러에게서 이어진 것. 어째 EGG를 압축 해제할 때조차 알집보다 빠르고 안정적이다.[3] 알집의 성능에 의문이 들 수밖에 없는 부분. 또한 EGG 해제에도 알집은 못하는 멀티코어 프로세서를 정상적으로 활용한다. 6.0 버전부터 AZO 알고리즘의 저작권을 이유로 이스트소프트에서 제약을 가했으나 리버스 엔지니어링을 통한 자체 구현에 성공하면서 6.19 버전부터 다시 지원하고 있다.
ALZ는 직접 리버스 엔지니어링했는데 EGG는 라이브러리를 사왔다.
  • 다집 : 홈페이지 EGG 라이브러리 구매
  • 알집 EGG 전용 해제 프로그램: 링크 페이지 맨 아래에 있다. 기업용 7.x 버전 사용자의 EGG 호환을 위해 만들었다.(기업라이센스가 없으면 사용하면 안된다. 분할압축도 잘 풀어낸다.) 해당페이지 맨 아래에 있다.
  • arkzip : github 링크 ark 라이브러리를 이용한 범용 압축 해제 프로그램. deb 파일을 지원하여 전보다 설치가 쉬워졌다. 현재 최신 버전은 v2.4.4. alz, egg 등의 압축 해제가 가능하며 CP949(UHC)인 경우를 비롯하여 다양한 인코딩의 압축 파일을 정상적으로 압축 해제가 가능하다. 특히 hv3(꿀뷰 전용 포맷)을 풀때, 묶음 파일에 내포된 HDP 포맷 형식의 파일을 JPEG 포맷(또는 PNG 포맷)으로 된 파일로 변환시켜 저장한다.

[1] 기업용은 2009년[2] 다만 AZO 알고리즘은 지나치게 느려서 COM/SYS등 일부 파일에만 사용되므로 사실상 압축해제가 불가능한 EGG 파일은 거의 없는 셈이 된다.[3] 해적판이 정식판보다 더 안정적이고 빠른 것과 같다. 대체 얼마나 소스가 난잡하길래 타사 알고리즘이 더 빠른건지 의문이 들 정도.