실행 파일 압축
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
실행 파일 압축은 소프트웨어의 기억 장치 용량을 줄이기 위해 사용되는 기술이다. 압축된 실행 파일은 표준 데이터 압축보다 높은 압축률을 보이며, CD-ROM, DVD-ROM, 플로피 디스크 등 저장 공간이 제한된 매체나 인터넷을 통한 소프트웨어 배포에 활용된다. 장점으로는 파일 크기 감소, 보안 강화, 역공학 방지 등이 있지만, 가상 메모리 환경에서의 메모리 효율 저하, 다중 실행 시의 문제, 바이러스 오진 등의 단점도 존재한다. 실행 파일 압축 프로그램은 MS-DOS, 윈도우, 리눅스 등 다양한 운영체제와 자바, 자바스크립트 등 다양한 환경에서 사용되며, 종류가 다양하다.
더 읽어볼만한 페이지
- 프로그래밍 도구 - SWIG
SWIG는 C/C++ 코드를 다른 프로그래밍 언어에서 사용할 수 있도록 인터페이스를 자동으로 생성해주는 도구로서, 복잡한 데이터 형식 처리, 메모리 관리 등을 지원하며, LLDB, GNU Radio, TensorFlow 등 다양한 프로젝트에서 활용된다. - 프로그래밍 도구 - 소스 코드 편집기
소스 코드 편집기는 구문 강조, 자동 완성, 들여쓰기 등의 기능으로 코드 편집을 용이하게 하고 개발 도구 실행 환경을 제공하며, 텍스트 편집 대신 AST를 조작하는 구조 편집기도 존재한다. - 압축 소프트웨어 - WinRAR
WinRAR은 RAR 및 ZIP 등 다양한 파일 형식을 지원하며, 압축 파일 복구, 강력한 암호화 등의 기능을 제공하는 셰어웨어 압축 유틸리티이다. - 압축 소프트웨어 - ARJ
ARJ는 다양한 소프트웨어 유틸리티에서 압축 해제가 가능한 파일 포맷으로, macOS에서는 독립 실행형 유틸리티를 통해 압축을 해제할 수 있다.
실행 파일 압축 | |
---|---|
기본 정보 | |
유형 | 데이터 압축 |
적용 대상 | 실행 파일 |
목적 | 파일 크기 축소 |
방법 | 압축 해제 루틴 추가 |
이점 | |
이점 | 저장 공간 절약 전송 시간 단축 리버스 엔지니어링 방지 |
단점 | |
단점 | 실행 속도 저하 가능성 |
기술적 측면 | |
원리 | 압축 알고리즘 압축 해제 루틴 |
효과 | 압축률, 압축/해제 속도에 따라 다름 |
구현 | 다양한 압축기 존재 |
일반적인 압축기 | |
일반적인 압축기 | UPX ASPack PECompact PEtite Exeinfo PE |
2. 역사
2. 1. 초기 발전
2. 2. 대중화
2. 3. 현대적 사용
3. 장단점
소프트웨어 개발자들이 실행 파일 압축을 사용하는 주된 이유는 소프트웨어의 기억 장치 용량을 줄이기 위해서이다. 실행 압축 프로그램은 실행 코드를 압축하며, gzip, zip, Bzip2와 같은 표준 데이터 압축 기능보다 더 나은 압축률을 보인다. CD-ROM, DVD-ROM, 플로피 디스크와 같이 용량이 제한된 매체에 사용되며, 인터넷을 통해 배포되는 소프트웨어의 다운로드 시간을 줄이는 데에도 사용된다.
PE 포맷 실행 파일 압축의 장점 중 하나는 보안이다. 프로그래머가 작성한 내용을 분석하는 것을 막을 수 있으며, 한글 패치를 만들 때에도 이러한 프로그램이 사용된다.
압축된 실행 파일은 파일 시스템의 공간을 덜 차지하여 데이터가 메모리에 전송되는 시간이 단축된다. 그러나 데이터 압축 해제 시간이 추가로 소요될 수 있다. 저장 장치의 속도가 프로세서 속도보다 느려 병목 현상이 자주 발생하므로, 압축된 실행 파일이 대부분의 시스템에서 더 빨리 실행될 수 있다. 대한민국 웹에서는 압축된 실행 파일 실행 시 속도가 빨라진다는 의견과 그렇지 않다는 의견이 공존했다. 현대 데스크톱 컴퓨터에서는 실행 파일이 비정상적으로 크지 않으면 속도 차이를 체감하기 어려워, 실행 속도 향상을 실행 파일 압축의 주된 이유로 보기는 어렵다.
실행 파일 압축은 역공학을 방지하거나 실행 파일 내용을 난독화하기 위해 사용되기도 한다. 악성코드의 존재를 안티바이러스 검사기에서 숨기기 위해 사용될 수 있다. 직접적인 디스어셈블리를 방지하고 문자열 리터럴을 숨기며, 시그니처를 수정하는 데 사용될 수 있지만, 역공학 가능성을 완전히 없애지는 못한다.
실행 압축은 데모씬과 같이 용량이 매우 적은 데모 프로그램을 설계하는 데에도 이용된다.
실행 파일 압축에는 몇 가지 단점이 존재한다.
- 효율성 저하: 가상 메모리를 사용하는 운영 체제에서 압축된 실행 파일은 메모리 사용 효율성을 떨어뜨릴 수 있다. 압축 해제된 데이터는 메모리 블록을 할당받아 실행 파일이 로드되는 동안 계속 유지되므로, 다른 응용 프로그램과 메모리 자원을 경쟁하게 된다. 운영 체제가 스왑 파일을 사용하는 경우, 압축 해제된 데이터는 스왑 파일에 기록되어야 하므로, 단순히 사용하지 않는 데이터 블록을 버리고 다시 로드하는 방식보다 효율성이 떨어진다.
- 다중 실행 문제: 압축된 실행 파일이 동시에 여러 번 실행될 때, 운영 체제는 이미 로드된 데이터 블록을 재사용할 수 없어, 데이터가 새로운 메모리 블록으로 압축 해제되어야 한다. 이는 사용하지 않는 경우 독립적으로 스웨핑 처리되어야 하므로, 메모리 사용량이 증가하고 성능 저하를 유발할 수 있다.
- 런타임 라이브러리 종속성 확인 불가: 일부 유틸리티는 정적 라이브러리 압축 해제 프로그램만 보이기 때문에 런타임 라이브러리 독립성을 더 이상 확인하지 않는다.
- 바이러스 오진: 일부 바이러스 검사 프로그램은 압축된 모든 실행 파일을 바이러스로 오진하는 경우가 있는데, 이는 압축 해제 부분이 바이러스에 대한 일부 문자열을 공유하기 때문이다.
- 과거 기술: 실행 압축은 컴퓨터가 플로피 디스크, 용량이 적은 하드 드라이브가 쓰였을 시절에 많이 쓰였으나, 컴퓨터의 기억 공간이 커짐에 따라 잘 쓰이지 않게 되었다.
대한민국 웹에서는 압축된 실행 파일을 실행할 때 시스템 메모리를 더 잡아먹지만 속도가 빨라진다는 의견과 그렇지 않다는 의견이 공존한다. 현대 데스크톱 컴퓨터에서는 실행 파일이 비정상적으로 크지 않다면 속도 변화를 체감하기 어렵다.
3. 1. 장점
소프트웨어 개발자들이 실행 파일 압축을 사용하는 주된 이유는 소프트웨어의 기억 장치 용량을 줄이기 위해서이다. 실행 압축 프로그램은 실행 코드를 압축하며, gzip, zip, Bzip2와 같은 표준 데이터 압축 기능보다 더 나은 압축률을 보인다. CD-ROM, DVD-ROM, 플로피 디스크와 같이 용량이 제한된 매체에 사용되며, 인터넷을 통해 배포되는 소프트웨어의 다운로드 시간을 줄이는 데에도 사용된다.PE 포맷 실행 파일 압축의 장점 중 하나는 보안이다. 프로그래머가 작성한 내용을 분석하는 것을 막을 수 있으며, 한글 패치를 만들 때에도 이러한 프로그램이 사용된다.
압축된 실행 파일은 파일 시스템의 공간을 덜 차지하여 데이터가 메모리에 전송되는 시간이 단축된다. 그러나 데이터 압축 해제 시간이 추가로 소요될 수 있다. 저장 장치의 속도가 프로세서 속도보다 느려 병목 현상이 자주 발생하므로, 압축된 실행 파일이 대부분의 시스템에서 더 빨리 실행될 수 있다. 대한민국 웹에서는 압축된 실행 파일 실행 시 속도가 빨라진다는 의견과 그렇지 않다는 의견이 공존했다. 현대 데스크톱 컴퓨터에서는 실행 파일이 비정상적으로 크지 않으면 속도 차이를 체감하기 어려워, 실행 속도 향상을 실행 파일 압축의 주된 이유로 보기는 어렵다.
실행 파일 압축은 역공학을 방지하거나 실행 파일 내용을 난독화하기 위해 사용되기도 한다. 악성코드의 존재를 안티바이러스 검사기에서 숨기기 위해 사용될 수 있다. 직접적인 디스어셈블리를 방지하고 문자열 리터럴을 숨기며, 시그니처를 수정하는 데 사용될 수 있지만, 역공학 가능성을 완전히 없애지는 못한다.
실행 압축은 데모씬과 같이 용량이 매우 적은 데모 프로그램을 설계하는 데에도 이용된다.
3. 2. 단점
실행 파일 압축에는 몇 가지 단점이 존재한다.- 효율성 저하: 가상 메모리를 사용하는 운영 체제에서 압축된 실행 파일은 메모리 사용 효율성을 떨어뜨릴 수 있다. 압축 해제된 데이터는 메모리 블록을 할당받아 실행 파일이 로드되는 동안 계속 유지되므로, 다른 응용 프로그램과 메모리 자원을 경쟁하게 된다. 운영 체제가 스왑 파일을 사용하는 경우, 압축 해제된 데이터는 스왑 파일에 기록되어야 하므로, 단순히 사용하지 않는 데이터 블록을 버리고 다시 로드하는 방식보다 효율성이 떨어진다.
- 다중 실행 문제: 압축된 실행 파일이 동시에 여러 번 실행될 때, 운영 체제는 이미 로드된 데이터 블록을 재사용할 수 없어, 데이터가 새로운 메모리 블록으로 압축 해제되어야 한다. 이는 사용하지 않는 경우 독립적으로 스웨핑 처리되어야 하므로, 메모리 사용량이 증가하고 성능 저하를 유발할 수 있다.
- 런타임 라이브러리 종속성 확인 불가: 일부 유틸리티는 정적 라이브러리 압축 해제 프로그램만 보이기 때문에 런타임 라이브러리 독립성을 더 이상 확인하지 않는다.
- 바이러스 오진: 일부 바이러스 검사 프로그램은 압축된 모든 실행 파일을 바이러스로 오진하는 경우가 있는데, 이는 압축 해제 부분이 바이러스에 대한 일부 문자열을 공유하기 때문이다.
- 과거 기술: 실행 압축은 컴퓨터가 플로피 디스크, 용량이 적은 하드 드라이브가 쓰였을 시절에 많이 쓰였으나, 컴퓨터의 기억 공간이 커짐에 따라 잘 쓰이지 않게 되었다.
대한민국 웹에서는 압축된 실행 파일을 실행할 때 시스템 메모리를 더 잡아먹지만 속도가 빨라진다는 의견과 그렇지 않다는 의견이 공존한다. 현대 데스크톱 컴퓨터에서는 실행 파일이 비정상적으로 크지 않다면 속도 변화를 체감하기 어렵다.
4. 작동 원리
5. 종류
다음은 실행 파일 압축 프로그램의 종류이다.
; MS-DOS 실행 파일 (.COM, .EXE)
CP/M-80 / MSX-DOS .COM 파일에 사용되는 실행 파일 압축기는 다음과 같다.
- PMexe (1990년 이후, 요시히코 미노(Yoshihiko Mino)가 작성, PMARC.COM+PMEXE.CPM, 시그니처 "-pms-")
- PopCom! (1992년 이후, 요시히코 미노(Yoshihiko Mino)가 작성, POPCOM.COM, 시그니처 "-pc1-")
MS-DOS 호환 실행 파일(.COM 또는 .EXE)에 사용되는 실행 파일 압축기는 다음과 같다.
- Realia Spacemaker(1982년부터, 로버트 B. K. 드워가 작성, SM.COM, 서명 "MEMORY$")
- 마이크로소프트 EXEPACK (1985년부터, Reuben Borman이 작성, EXEPACK.EXE, LINK.EXE /E[XEPACK], 서명 "RB")
- LZEXE (1989년부터, 파브리스 벨라르가 작성, LZEXE.EXE)
- PKWare PKLite (1990년부터, 필 카츠가 작성, PKLITE.EXE)
- DIET (1991년부터, Teddy Matsumoto가 작성, DIET.EXE)
- TINYPROG (TINYPROG.EXE)
- RJS Software RJCRUSH (1994년부터, Roland Skinner가 작성, RJCRUSH.EXE)
- XPA (1995년부터, JauMing Tseng가 작성, XPA.EXE)
- Ibsen Software aPACK (1997년부터, Jørgen Ibsen이 작성, APACK.EXE)
- UPX (1998년부터, Markus F. X. J. Oberhumer와 László Molnár가 작성)
- 32LiTE (1998년부터, Oleg Prokhorov가 작성, 32LITE.EXE)
- Knowledge Dynamics LZW 압축기
- WWpack (1994년부터, Piotr Warezak와 Rafal Wierzbicki가 작성, WWPACK.EXE)
- 624 (.COM 파일 중 25KB 미만인 파일에만 해당, 렘펠-지브-웰치 사용)
- AINEXE
- AvPack
- ComPAck
- HASP Envelope
- LGLZ
- PMWLITE
- ProPack
- UCEXE
- WDOSX
- XE
- XPack
; 윈도우 실행 파일 (.EXE, .DLL)
New Executable의 실행 파일 압축 프로그램으로는 PackWin, PKWare PKLite (버전 2.01부터), WinLite 등이 알려져 있다.
PE용 실행 파일 압축기는 다음과 같다.
이름 | 최신 안정 버전 | 소프트웨어 라이선스 | x86-64 지원 |
---|---|---|---|
32Lite | |||
Alienyze | 1.4 (2020년 8월 17일) | 프로프리에터리 소프트웨어/proprietary software영어 | 아니오/no영어 |
ANDpakk2 | |||
Armadillo | 9.62 (2013년 6월 7일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
ASPack | 2.40 (2018년 12월 7일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
ASPR (ASProtect) | 2.78 (2018년 12월 7일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
BeRoEXEPacker | |||
BIN-crypter | |||
BoxedApp Packer | 3.3 (2015년 7월 26일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
CExe | 1.0b (2001년 7월 20일) | 자유 소프트웨어/free software영어GPL | 아니오/no영어 |
Crinkler | 2.3 (2020년 7월 22일) | 자유 소프트웨어/free software영어Zlib | 예/yes영어 |
dotBundle | 1.3 (2013년 4월 4일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
Enigma Protector | 6.60 (2019년 8월 21일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
Enigma Virtual Box | 9.40 (2019년 10월 10일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
exe32pack | |||
EXE Bundle | 3.11 (2011년 1월 7일) | 프로프리에터리 소프트웨어/proprietary software영어 | 알 수 없음 |
EXECryptor | |||
EXE Stealth | 4.14 (2011년 6월 29일) | 프로프리에터리 소프트웨어/proprietary software영어 | 알 수 없음 |
eXPressor | 1.8.0.1 (2010년 1월 14일) | 프로프리에터리 소프트웨어/proprietary software영어 | 알 수 없음 |
FSG | 2.0 (2004년 5월 24일) | 프로프리에터리 소프트웨어/proprietary software영어프리웨어 | 아니오/no영어 |
kkrunchy src | 0.23a4 (알 수 없음) | 자유 소프트웨어/free software영어퍼블릭 도메인 | 아니오/no영어 |
MEW | 1.1 (알 수 없음) | 프로프리에터리 소프트웨어/proprietary software영어프리웨어 | 아니오/no영어 |
MPRESS | 2.19 (2012년 1월 2일) | 프로프리에터리 소프트웨어/proprietary software영어프리웨어 | 예/yes영어 |
MuCruncher | |||
NeoLite | |||
NsPack | |||
Obsidium | 1.6 (2017년 4월 11일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
PECompact | |||
PEPack | |||
PESpin | 1.33 (2011년 5월 3일) | 프로프리에터리 소프트웨어/proprietary software영어프리웨어 | 예/yes영어 |
Petite | 2.4 (2016년 9월 22일) | 프로프리에터리 소프트웨어/proprietary software영어프리웨어 | 아니오/no영어 |
PKLite32 | |||
RLPack Basic | 1.21 (2008년 10월 31일) | 자유 소프트웨어/free software영어GPL | 아니오/no영어 |
Shrinker32 | |||
Smart Packer Pro X | 2.0.0.1 (2019년 6월 3일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
Themida/WinLicense | 3.0 (2019년 10월 24일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
Upack | |||
UPX | 3.96 (2020년 1월 23일) | 자유 소프트웨어/free software영어GPL | 실험적 |
VMProtect | 3.4 (2019년 8월 3일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
WWPack32 | 1.20 (2000년 6월 19일) | 아니오/no영어 | |
XComp/XPack | 0.98 (2007년 2월 18일) | 프로프리에터리 소프트웨어/proprietary software영어프리웨어 | 아니오/no영어 |
Yoda's Crypte | |||
YZPack |
; ELF (리눅스 등)
ELF 파일에 대해 알려진 실행 파일 압축기는 다음과 같다.
- gzexe (셸 스크립트 스텁과 gzip 사용, 대부분의 유닉스 계열 시스템에서 작동)
- HASP Envelope
- UPX (자유 소프트웨어)
- 624 (리눅스/386용)
- bzexe (bzip2와 셸 스크립트를 사용)
; 자바 JAR 파일
자바용 실행 파일 압축기로는 JAR 파일 형태와 WAR 파일 형태가 있다. JAR 파일 압축에는 HASP Envelope, pack200, 프로가드(ProGuard) 등이 사용된다. WAR 파일 압축에는 HASP Envelope, UPX, .netshrink, PELock, dotBundle, .NETZ, Crinkler, gzexe, bzexe 등이 사용된다. gzexe는 gzip과 셸 스크립트를 사용하며, bzexe는 bzip2와 셸 스크립트를 사용하는 유닉스용 실행 파일 압축 방식이다.
; 자바스크립트
자바스크립트 스크립트에 적용할 수 있는 압축에는 두 가지 유형이 있다.
- 스크립트의 중복을 줄인다.(주석, 공백을 제거하고 변수 및 함수 이름을 줄임). 이는 스크립트의 동작을 변경하지 않는다.
- 원본 스크립트를 압축하고 압축 해제 코드와 압축된 데이터를 포함하는 새 스크립트를 만든다. 이는 바이너리 실행 파일 압축과 유사하다.
; 자체 압축 해제 압축기
이들은 원본 스크립트를 압축하고, 압축 해제기 및 압축된 데이터를 포함하는 새로운 스크립트를 출력한다.
- JsSfx
- Packify
; 중복 감소 압축기
이들은 공백을 제거하고, 주석을 삭제하며, 변수 및 함수 이름을 단축하지만 스크립트의 동작은 변경하지 않는다.
- 패커
- YUI 압축기
- 슈링크세이프
- JSMin
; 기타
- UPX - 자유 소프트웨어
- [http://www.pelock.com .netshrink]
- [http://www.pelock.com PELock]
- [http://www.dotbundle.com dotBundle]
- [http://madebits.com/netz/ .NETZ] – .NET
- [http://www.crinkler.net Crinkler]
- ASPack
- CExe
- exe32pack
- eXPressor
- FSG
- MEW – 개발 중단
- NeoLite
- NsPack – .NET
- PECompact
- PEPack
- PKLite32
- PEtite
- RLPack
- Shrinker32
- Upack – 프리웨어
- WWPack
- PESpin
- BeRoEXEPacker
5. 1. [[MS-DOS]] 실행 파일 (.COM, .EXE)
CP/M-80 / MSX-DOS .COM 파일에 사용되는 실행 파일 압축기는 다음과 같다:- PMexe (1990년 이후, 요시히코 미노(Yoshihiko Mino)가 작성, PMARC.COM+PMEXE.CPM, 시그니처 "-pms-")
- PopCom! (1992년 이후, 요시히코 미노(Yoshihiko Mino)가 작성, POPCOM.COM, 시그니처 "-pc1-")
MS-DOS 호환 실행 파일(.COM 또는 .EXE)에 사용되는 실행 파일 압축기는 다음과 같다:
- Realia Spacemaker(1982년부터, 로버트 B. K. 드워가 작성, SM.COM, 서명 "MEMORY$")
- 마이크로소프트 EXEPACK (1985년부터, Reuben Borman이 작성, EXEPACK.EXE, LINK.EXE /E[XEPACK], 서명 "RB")
- LZEXE (1989년부터, 파브리스 벨라르가 작성, LZEXE.EXE)
- PKWare PKLite (1990년부터, 필 카츠가 작성, PKLITE.EXE)
- DIET (1991년부터, Teddy Matsumoto가 작성, DIET.EXE)
- TINYPROG (TINYPROG.EXE)
- RJS Software RJCRUSH (1994년부터, Roland Skinner가 작성, RJCRUSH.EXE)
- XPA (1995년부터, JauMing Tseng가 작성, XPA.EXE)
- Ibsen Software aPACK (1997년부터, Jørgen Ibsen이 작성, APACK.EXE)
- UPX (1998년부터, Markus F. X. J. Oberhumer와 László Molnár가 작성)
- 32LiTE (1998년부터, Oleg Prokhorov가 작성, 32LITE.EXE)
- Knowledge Dynamics LZW 압축기
- WWpack (1994년부터, Piotr Warezak와 Rafal Wierzbicki가 작성, WWPACK.EXE)
- 624 (.COM 파일 중 25KB 미만인 파일에만 해당, 렘펠-지브-웰치 사용)
- AINEXE
- AvPack
- ComPAck
- HASP Envelope
- LGLZ
- PMWLITE
- ProPack
- UCEXE
- WDOSX
- XE
- XPack
- UPX - 자유 소프트웨어
- [http://www.pelock.com .netshrink]
- [http://www.pelock.com PELock]
- [http://www.dotbundle.com dotBundle]
- [http://madebits.com/netz/ .NETZ] - .NET
- [http://www.crinkler.net Crinkler]
- gzexe - gzip과 셸 스크립트를 사용한 Unix용 실행 파일 압축
- bzexe - 마찬가지로 bzip2와 셸 스크립트를 사용
5. 2. [[윈도우]] 실행 파일 (.EXE, .DLL)
New Executable의 실행 파일 압축 프로그램으로는 PackWin, PKWare PKLite (버전 2.01부터), WinLite 등이 알려져 있다.PE용 실행 파일 압축기는 다음과 같다. ''참고: 보라색으로 표시된 클라이언트는 더 이상 개발되지 않습니다.''
이름 | 최신 안정 버전 | 소프트웨어 라이선스 | x86-64 지원 |
---|---|---|---|
32Lite | |||
Alienyze | 1.4 (2020년 8월 17일) | 프로프리에터리 소프트웨어/proprietary software영어 | 아니오/no영어 |
ANDpakk2 | |||
Armadillo | 9.62 (2013년 6월 7일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
ASPack | 2.40 (2018년 12월 7일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
ASPR (ASProtect) | 2.78 (2018년 12월 7일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
BeRoEXEPacker | |||
BIN-crypter | |||
BoxedApp Packer | 3.3 (2015년 7월 26일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
CExe | 1.0b (2001년 7월 20일) | 자유 소프트웨어/free software영어GPL | 아니오/no영어 |
Crinkler | 2.3 (2020년 7월 22일) | 자유 소프트웨어/free software영어Zlib | 예/yes영어 |
dotBundle | 1.3 (2013년 4월 4일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
Enigma Protector | 6.60 (2019년 8월 21일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
Enigma Virtual Box | 9.40 (2019년 10월 10일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
exe32pack | |||
EXE Bundle | 3.11 (2011년 1월 7일) | 프로프리에터리 소프트웨어/proprietary software영어 | 알 수 없음/dunno영어 |
EXECryptor | |||
EXE Stealth | 4.14 (2011년 6월 29일) | 프로프리에터리 소프트웨어/proprietary software영어 | 알 수 없음/dunno영어 |
eXPressor | 1.8.0.1 (2010년 1월 14일) | 프로프리에터리 소프트웨어/proprietary software영어 | 알 수 없음/dunno영어 |
FSG | 2.0 (2004년 5월 24일) | 프로프리에터리 소프트웨어/proprietary software영어프리웨어 | 아니오/no영어 |
kkrunchy src | 0.23a4 (알 수 없음) | 자유 소프트웨어/free software영어퍼블릭 도메인 | 아니오/no영어 |
MEW | 1.1 (알 수 없음) | 프로프리에터리 소프트웨어/proprietary software영어프리웨어 | 아니오/no영어 |
MPRESS | 2.19 (2012년 1월 2일) | 프로프리에터리 소프트웨어/proprietary software영어프리웨어 | 예/yes영어 |
MuCruncher | |||
NeoLite | |||
NsPack | |||
Obsidium | 1.6 (2017년 4월 11일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
PECompact | |||
PEPack | |||
PESpin | 1.33 (2011년 5월 3일) | 프로프리에터리 소프트웨어/proprietary software영어프리웨어 | 예/yes영어 |
Petite | 2.4 (2016년 9월 22일) | 프로프리에터리 소프트웨어/proprietary software영어프리웨어 | 아니오/no영어 |
PKLite32 | |||
RLPack Basic | 1.21 (2008년 10월 31일) | 자유 소프트웨어/free software영어GPL | 아니오/no영어 |
Shrinker32 | |||
Smart Packer Pro X | 2.0.0.1 (2019년 6월 3일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
Themida/WinLicense | 3.0 (2019년 10월 24일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
Upack | |||
UPX | 3.96 (2020년 1월 23일) | 자유 소프트웨어/free software영어GPL | 실험적 |
VMProtect | 3.4 (2019년 8월 3일) | 프로프리에터리 소프트웨어/proprietary software영어 | 예/yes영어 |
WWPack32 | 1.20 (2000년 6월 19일) | 아니오/no영어 | |
XComp/XPack | 0.98 (2007년 2월 18일) | 프로프리에터리 소프트웨어/proprietary software영어프리웨어 | 아니오/no영어 |
Yoda's Crypte | |||
YZPack |
이 외에도 UPX는 자유 소프트웨어이며, [http://www.pelock.com .netshrink], [http://www.pelock.com PELock], [http://www.dotbundle.com dotBundle], [http://madebits.com/netz/ .NETZ] (- .NET), [http://www.crinkler.net Crinkler], gzexe (gzip과 셸 스크립트를 사용한 Unix용 실행 파일 압축), bzexe (bzip2와 셸 스크립트를 사용) 등이 있다.
5. 3. [[ELF 파일 형식|ELF]] (리눅스 등)
ELF 파일에 대해 알려진 실행 파일 압축기는 다음과 같다.- gzexe (셸 스크립트 스텁과 gzip 사용, 대부분의 유닉스 계열 시스템에서 작동)
- HASP Envelope
- UPX (자유 소프트웨어)
- 624 (리눅스/386용)
- [http://www.pelock.com .netshrink]
- [http://www.pelock.com PELock]
- [http://www.dotbundle.com dotBundle]
- [http://madebits.com/netz/ .NETZ] - .NET
- [http://www.crinkler.net Crinkler]
- bzexe (bzip2와 셸 스크립트를 사용)
5. 4. [[자바 (소프트웨어 플랫폼)|자바]] [[JAR (파일 형식)|JAR]] 파일
자바용 실행 파일 압축기로는 JAR 파일 형태와 WAR 파일 형태가 있다. JAR 파일 압축에는 HASP Envelope, pack200, 프로가드(ProGuard) 등이 사용된다. WAR 파일 압축에는 HASP Envelope, UPX, .netshrink, PELock, dotBundle, .NETZ, Crinkler, gzexe, bzexe 등이 사용된다. gzexe는 gzip과 셸 스크립트를 사용하며, bzexe는 bzip2와 셸 스크립트를 사용하는 유닉스용 실행 파일 압축 방식이다.5. 5. [[자바스크립트]]
자바스크립트 스크립트에 적용할 수 있는 압축에는 두 가지 유형이 있다.- 스크립트의 중복을 줄인다.(주석, 공백을 제거하고 변수 및 함수 이름을 줄임). 이는 스크립트의 동작을 변경하지 않는다.
- 원본 스크립트를 압축하고 압축 해제 코드와 압축된 데이터를 포함하는 새 스크립트를 만든다. 이는 바이너리 실행 파일 압축과 유사하다.
=== 자체 압축 해제 압축기 ===
이들은 원본 스크립트를 압축하고, 압축 해제기 및 압축된 데이터를 포함하는 새로운 스크립트를 출력한다.
- JsSfx
- Packify
=== 중복 감소 압축기 ===
이들은 공백을 제거하고, 주석을 삭제하며, 변수 및 함수 이름을 단축하지만 스크립트의 동작은 변경하지 않는다.
- 패커
- YUI 압축기
- 슈링크세이프
- JSMin
5. 5. 1. 자체 압축 해제 압축기
이들은 원본 스크립트를 압축하고, 압축 해제기 및 압축된 데이터를 포함하는 새로운 스크립트를 출력한다.- JsSfx
- Packify
5. 5. 2. 중복 감소 압축기
이들은 공백을 제거하고, 주석을 삭제하며, 변수 및 함수 이름을 단축하지만 스크립트의 동작은 변경하지 않는다.- 패커
- YUI 압축기
- 슈링크세이프
- JSMin
6. 대한민국에서의 활용 사례
7. 윤리적 고려 사항
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com