UPX使用教程

tiny丶發表於2019-02-28

說到壓縮,大家可能首先想到的是WinRAR和WinZIP之類的壓縮軟體,但是肯定都沒聽說過UPX。如果你是一個對程式佔用空間斤斤計較的人,那麼UPX壓縮可以很好的解決你的一些問題,當然,首先我需要先給一些不懂UPX是什麼的同學補補課。

UPX是什麼?

可以理解成壓縮軟體,不過他只對可執行檔案進行壓縮(如EXE檔案),當然也有人把他叫殼,即為軟體各程式加個殼。

通俗點說,就是UPX僅僅可以用來壓縮EXE檔案,而且壓縮後的EXE檔案還可以無需解壓縮直接執行的,怎麼樣,很棒吧?

UPX壓縮和未壓縮檔案的區別?

壓縮過的可執行檔案,雖然節約了點空間並且可以直接執行,不過執行的時候需要在記憶體進行解壓,所以壓縮過的檔案比未壓縮過的檔案稍慢(理論上是這樣,但一般情況下人是感覺不出這個慢的)。

UPX壓縮的用途

主要是寫程式的朋友,當然也有一些黑客喜歡使用UPX加殼來躲避防毒軟體的查殺。

UPX是一個通用可執行檔案壓縮器,由於其具有:

  • 壓縮率高:壓縮效果優於zip/gzip;
  • 解壓速度快:在奔騰133上即可達到大約10MB/秒;
  • 壓縮的可執行檔案沒有額外的記憶體開銷;
  • 安全:可以列表,檢測和解壓可執行檔案,壓縮和解壓縮檔案內部都維持有一個校驗和;
  • 廣域:可以壓縮多種可執行檔案格式:
    • dos/exe
    • dos/sys
    • dos/com
    • djgpp2/coff
    • watcom/le ( 支援DOS4G, PMODE/W, DOS32a 和 CauseWay )
    • win32/pe
    • rtm32/pe
    • tmt/adam
    • linux/386
    • atari/tos
  • 免費

等特性,因此其也成為我們在壓縮可執行檔案時的首選工具。

UPX是一個控制檯應用程式,以命令列方式進行操作,其使用是極其簡單的:

upx [-命令] [-選項] [-o 目標檔案] 原始檔..下面我們以UPX1.07W為例,具體講解其使用方法。預設情況下,UPX將直接對原始檔

進行操作,但也可指定目標檔案,而不覆蓋原始檔,檔名支援萬用字元,即一次可對多個檔案進行同一操作。

一、顯示 UPX 通用資訊(版權資訊,使用說明等),在命令列直接輸入 UPX 並回車。

[root@localhost kk]# upx
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2017
UPX 3.94        Markus Oberhumer, Laszlo Molnar & John Reiser   May 12th 2017

Usage: upx [-123456789dlthVL] [-qvfk] [-o file] file..

Commands:
  -1     compress faster                   -9    compress better
  -d     decompress                        -l    list compressed file
  -t     test compressed file              -V    display version number
  -h     give more help                    -L    display software license
Options:
  -q     be quiet                          -v    be verbose
  -oFILE write output to 'FILE'
  -f     force compression of suspicious files
  -k     keep backup files
file..   executables to (de)compress

Type 'upx --help' for more detailed help.

UPX comes with ABSOLUTELY NO WARRANTY; for details visit https://upx.github.io