UPX(the Ultimate Packer for eXecutables)는 흔히 실행 압축이라고 부르는 방식으로 EXE, DLL 등의 파일을 압축하는 프로그램이다. 실행 압축 프로그램을 사용하는 이유는, 흔히 사용하는 ZIP, RAR, 7Z 등의 파일 압축 방식은 압축을 푼 다음에 파일을 실행해야 하지만 실행 압축 방식은 파일을 사용하기 위해서 압축을 풀 필요가 없기 때문이다. 특히나 제한된 용량의 USB 등에 파일을 저장할 때 더욱 유용하다. UPX는 파일 하나로 실행할 수 있고 용량도 아주 작지만 커맨드 라인 프로그램이라서 '명령 프롬프트'에서 직접 명령행을 입력해야 사용할 수 있다. 이런 UPX의 단점을 극복하기 위해서 다양한 종류의 GUI 프로그램이 만들어졌는데, UPX Shell도 그 중 하나다. UPX Shell은 GUI 방식으로 UPX의 기본 기능을 모두 사용할 수 있으며 스크램블 기능과 여러 파일을 한꺼번에 압축할 수 있는 기능 등이 추가되어 있다.
UPX Shell을 실행하면 위 그림처럼 조그마한 프로그램창이 나타난다. [파일 열기] 탭에서 [열기] 버튼을 누르거나 창에 압축할 실행 파일을 끌어놓기 하면 UPX Shell에 파일이 추가된다. [히스토리] 버튼을 누르면 지금까지 UPX Shell로 작업한 파일 목록이 표시되고 간편하게 이전에 작업했던 파일을 선택할 수 있다.
파일을 선택했으면 [압축] 탭으로 이동한다. [압축] 탭에서는 사용할 UPX 버전을 선택하고 [시작] 버튼을 누르면 파일이 압축된다. 반대로 [압축 풀기]에 체크하고 [시작]을 누르면 압축이 풀린다. UPS Shell에서는 여러 버전의 UPX 중에서 사용할 버전을 선택할 수 있다. 기본적으로 1.25, 2.03, 2.92b 버전이 내장되어 있고, 그 외의 최신 버전을 사용자가 추가할 수 있다. 사용자가 추가한 버전을 사용하려면 [시작] 버튼 아래의 UPX 버전 선택 항목에서 [외부 UPX]를 선택한다.
UPX의 기본 설정과 다른 방식으로 압축하려면 [옵션] 탭에서 옵션을 조정한다. 작업 전 파일 백업 - 파일을 압축할 때 abc.ex~ 처럼 원본 파일을 백업한다. 불러온 후 자동 압축 - UPS Shell에서 파일을 열면 자동으로 압축한다. 작업 완료 후 종료 - 작업을 완료하면 UPX Shell을 종료한다. 압축 후 파일 검사 - 파일을 압축한 다음 자동으로 파일의 손상 여부를 검사한다. 압축률 - 0 ~ 최고까지 압축률을 지정한다. 고급 설정 - UPX의 세부적인 옵션을 설정한다. 파일 보호하기 - 파일을 압축한 다음 Scrambler를 사용해서 UPX에서 압축을 풀 수 없게 만든다. 파일 보호 - UPX Shell에서 선택한 파일을 Scrambler를 사용해서 UPX로 압축을 풀 수 없게 만든다. 탐색기 문맥 메뉴에 통합 - 탐색기의 마우스 오른쪽 버튼 메뉴에 [UPX로 압축하기] 항목을 추가한다. 리소스 압축 - 파일의 리소스를 압축한다. 파일의 크기를 상당히 줄일 수 있다. Export 압축 - Export를 압축하지만 파일의 크기가 줄지 않을 때도 있고 파일을 정상적으로 사용할 수 없을 때도 있다. 스트립 재배치 - Export 압축과 비슷하게 파일 크기가 줄지 않을 수도 있고 파일을 정상적으로 사용할 수 없을 때도 있다. 강제 압축 - 파일을 강제로 압축한다. 우선순위 - 작업 우선 순위를 선택한다. 아이콘 - 아이콘 압축 여부를 선택한다. 추가 압축 - 추가적으로 파일을 압축한다. 100000 ~ 999999 사이에서 선택할 수 있고 숫자가 클수록 느리지만 압축률은 크다. Brute - 압축률 최고, 모든 방식, 모든 필터, 추가 압축 999999로 파일을 압축한다. LZMA 압축 사용 - 높은 압축률을 보이는 7-Zip의 LZMA 방식으로 압축한다. Ultra Brute - Brute와 비슷한 방식이지만 압축할 때 더 많은 변형을 시도한다. UPX 명령 추가 - 사용자가 임의로 명령을 추가할 수 있다. [명령 저장]에 체크하면 현재 입력한 명령이 저장되어 계속 사용할 수 있다. 명령 보기 - UPX에서 사용할 수 있는 명령을 확인한다. UPX Shell에 내장된 1.25, 2.03, 2.92 버전의 명령을 확인할 수 있고, 이 글에 첨부된 UPXShell Portable을 사용하면 3.0 버전의 명령도 확인할 수 있다.
다중 압축 - 특정 폴더에 있는 여러 파일을 한꺼번에 압축한다.
[다중 압축] 버튼을 누르면 위 그림과 같은 창이 나타난다. [찾기] 버튼을 눌러 폴더를 선택하고 [검사] 버튼을 누르면 선택한 확장자를 가진 모든 파일이 목록에 표시된다. [하위 폴더 찾기]에 체크하면 하위 폴더도 모두 검사한다. 이렇게 파일을 선택한 다음 압축하지 않을 파일은 마우스 오른쪽 버튼이나 Del 키를 눌러 제외시킨다. 파일 선택이 끝나고 [압축]을 누르면 [옵션]에 선택된 설정대로 여러 개의 파일이 한꺼번에 압축된다. 프로그램을 모아둔 폴더를 선택하고 전체를 압축하면 하위 폴더 검색이 되기 때문에 간단하게 많은 수의 파일을 압축할 수 있다. 선택할 수 있는 확장자는 exe, dll, com, sys, ocx, dpl, bpl, scr, acm, ax, *.*이다.
[정보], [도움말], [업데이트] 탭은 각각 프로그램 정보와 도움말, 업데이트 정보를 확인할 수 있는 탭이다.
Scramble 기능(파일 보호)은 앞에서도 잠깐 이야기했지만 UPX로 압축된 파일을 UPX로 압축을 풀 수 없도록 파일을 변형하는 기능이다. 다른 사람이 파일을 수정할 수 없도록 할 때 사용한다. 그러나 UPX Shell v3.4.2에서는 프로그램 오류로 Scramble 기능을 사용할 수 없다. Scramble 기능을 사용하려면 UPX Shell 3.2.1 버전이나 [관련 프로그램]에 있는 UPX Graphical, Pure UPX 또는 UPX Scrambler 등을 사용한다.
그리고 가끔씩 Ultra Brute 기능을 선택해도 Ultra Brute 방식이 적용되지 않을 때가 있다. 그래서 Ultra Brute 기능을 사용할 땐 위 그림처럼 직접 명령을 입력해서 사용하는 것이 좋다. * 관련 프로그램 ㆍUPX Graphical - Scrambler 기능이 있지만 여러 파일을 한꺼번에 압축할 수 없다. ㆍFree UPX - 여러 개의 파일을 한꺼번에 압축할 때 유용하고 UPX로 압축된 파일에 대한 자세한 정보를 제공한다. ㆍArcThemAll! - 7z, UPX, MPRESS 압축을 동시에 사용할 수 있는 휴대용 압축 프로그램
* 한국어 UPXShell Portable 사용 UPXShell Portable 내려받기에 첨부된 파일을 내려받고 압축을 푼 다음 UPXShellPortable.exe 파일을 실행하면 한국어가 적용된 Portable UPX Shell을 사용할 수 있다. UPX 3.03w 버전이 추가되고 '맑은 고딕' 글꼴에 알맞게 수정되었다. Windows XP 사용자 중에서 '맑은 고딕' 글꼴이 없으면 MS 홈페이지에서 내려받는다.