자체 풀림 압축 파일

짧게 줄여서 SFX라고도 부르는 자체 추출 아카이브(Self-extracting archive)는 압축 파일에 압축된 데이터와, 대상 컴퓨터에 추출 프로그램 없이 이 정보를 풀기 위한 실행 가능한 프로그램 명령어를 포함하는 응용 소프트웨어이다. 파일의 실행 가능한 부분은 스텁으로 불리며 실행 불가능한 부분은 아카이브라고 한다.

개요 
자체 추출 아카이브를 지원하는 운영 체제에서 자체 추출 아카이브를 실행하면 아카이브가 추출된다. 비 자체 추출 아카이브는 단지 데이터 파일만 포함하며, 그렇기 때문에 상응하는 프로그램에 의해 추출되어야 한다. 자체 추출 아카이브는 다른 운영 체제에서는 자체 추출이 불가능하지만 실행 가능 부분을 무시하고 단지 아카이브 리소스만 추출하는 적절한 추출기를 통해 열릴 수 있다.

예를 들면 somefiles.zip라는 아카이브가 있다. - 이것은 파일 형식과 압축 알고리즘 모두를 지원하는 적절한 아카이브 매니저를 통해 어떠한 운영체제에서도 열릴 수 있다. 이것은 대신 somefiles.exe로 변환돼서 마이크로소프트 윈도우에서 적절한 아카이브 매니저 없이 자체 추출을 할 것이다. 리눅스에서 자체 추출을 할 수는 없지만 적절한 리눅스 아카이브 매니저를 통해 열릴 수는 있다.

ZIP, RAR, 7z와 다른 것들을 포함하는 기능적으로 동등하지만 양립할 수 없는 여러 아카이브 파일 형식이 존재한다. 한 종류의 아카이브를 관리할 수 있는 프로그램도 있고 여러 기능을 지원하는 프로그램도 있다. 파일 형식과 사용된 압축 알고리즘 사이의 추가적인 구별도 존재한다. 7z 같은 단일 파일 형식은 LZMA, LZMA2, PPMd 그리고 Bzip2 같은 여러 다른 압축 알고리즘을 지원할 수 있다. 그러므로 자체 추출 아카이브의 시작에 위치하는 정확한 실행 가능한 코드는 사용된 옵션에 따라 달라질 필요가 있다.

여러 프로그램들은 자체 추출 아카이브들을 생성할 수 있다. 윈도우의 경우 윈집, WinRAR, 7-Zip, WinUHA, KGB Archiver, 빌트인 IExpress 위자드 등이 있다. 유닉스의 경우 셸 스크립트로서 프로그램을 tar나 gzip으로 활용하는 프로그램이 있다. 7-Zip이나 RAR같은 다른 것들도 ELF 포맷에서 자체 추출 아카이브를 생성할 수 있다.

장점 
파일들을 아카이빙 하면 각각 나눠서 보내는 것 대신 연관된 단일 리소스로 결합되게 할 수 있다. 또한 이미 효과적으로 압축되지 않은 경우 크기를 줄이는 이점도 있다. 또한 압축된 아카이브들의 장점들을 아카이브 매니저가 없는 사용자들에게도 확장될 수 있다. 물론 이것을 이미 설치한 사용자에게도 약간의 편리함을 제공하기도 한다.

자체 추출 아카이브는 또한 보안을 위해서 자신의 내용을 암호화할 수 있다.

단점 
자체 추출 아카이브의 단점은 확인되지 않은 신뢰성의 실행 파일을 실행하는 것이다. 예를 들면 이메일의 첨부 파일이나 인터넷에서 다운받은 경우 보안 위험이 있을 수 있다. 자체 추출 아카이브로 보이는 실행 파일은 실제로 악성 프로그램일 수 있다. 예방법 중 하나는 실행하는 대신 이것을 아카이브 관리자로 여는 것이다.

이것은 오직 호환되는 운영 체제에서만 실행된다. 또한 이것들은 포함된 아카이브 파일을 추출하는 실행 코드를 포함해야 하기 때문에 원래 아카이브보다 약간 크다.

같이 보기 
 인스톨레이션
 설치 프로그램
 Shar
 콜모고로프 복잡도

외부 링크 
 https://web.archive.org/web/20110613161718/http://www.klaimsoft.com/winuha/
 http://www.winzip.com
 http://www.7-zip.org
 http://www.jackmccarthy.com/malware/WinRAR_Archive_Creation.htm (About SFX)
 http://hem.bredband.net/magli143/exo/ for 6502/Z80/6809 executables

데이터 압축