UPX
UPXは解凍のための2つの方法を有している。イン・プレース手法と一時ファイルへの展開である。
イン・プレース手法は、メモリ上へ実行ファイルの解凍を行うが、UPXでサポートされているすべてのプラットフォームにおいて利用できるわけではない。イン・プレース手法が利用できない場合は一時ファイルへの展開が行われる。この方法には余分なオーバーヘッドと欠点がある。しかし、いかなる実行ファイル形式でも圧縮することができる。実行ファイルは一時的な場所に展開され、open()がファイルディスクリプタの生成のために用いられる。
ファイルディスクリプタの生成されると、一時ファイルはunlink()することができ、スタブはスタブ自身を一時ファイルの実行可能イメージで上書きするために(/procを経由して)ファイルハンドルにexecve()を行う。
一時ファイルへの展開を行う手法はいくつかの欠点がある
suidのような特別なアクセス権限は無視される。
argv[0]は無意味である。
アプリケーションは共通セグメントを共有できない。
UPXによって圧縮された改変されていないファイルは大抵、アンチウイルスソフトウェアによって検出され、解凍される。UPXはUPX自身で圧縮された改変されていない実行ファイルを解凍する機能も有している。