魔術師をめざして

魔術師を目指して、相場・数学・プログラム言語を研究しています。

UPX Shell

UPX には長~いことお世話になっている。

UPX は、Windows の実行ファイルを圧縮して小さくするツールだ。(Windows に限らないオープンソースのプロジェクト)プログラムの開発言語によっては、スクリプトとそれを実行するファイルをバインドすると大体 1.X MB~2MB くらいのサイズになったりする。それを数百KB 程度まで小さくできたりする。なくてはならないツールだ。

【 UPX Shell - http://sourceforge.net/projects/upxshell/

f:id:fxrobot:20131211180145j:plain

で、まぁ、その UPX を簡単に使うための GUI アプリケーション(以下、簡単に UPX GUI)というものがあり、今回紹介するものはそのひとつというわけだ。

Windows 用の UPX GUI はいくつもあるので、好みで選べばよいのだが、UPX Shell はそのなかでもオープンソースDelphi)で提供され(無料)ており、お勧めの一つだ。

f:id:fxrobot:20131211185130j:plain

 インストール時の選択によって、左画像のように、実行ファイルを右クリックしたときにメニュー表示するようにできる。

「Compress with UPX」を選べば UPX Shell がそのファイルを開いた上で起動する。

簡単に圧縮できる。

あるいは、UPX Shell を起動した上で、その画面に圧縮したい実行ファイルをドロップしてもよい。

なお、一番上の UPX Shell の画面では、UPX 2.03 を使っているように見えるが、実際は UPX 3.08 を使っている。

 UPX GUI は比較的簡単なアプリケーションなので、なにも人が作ったものを使わなくてもと思い、ぼくも PureBasic で自作しようと考えたことがあったが、結局実現しないままだ。まぁ、UPX Shell のようなものがあるわけだから、これを使えば満足なのでね、自作の意味もないというわけだ。

下の画像は、ぼくの UPX フォルダで、もう何年経つだろう。このまま使い続けている。単に upx.exe ものが使用している UPX プログラムでバージョンは 3.08 だ(正確には 3.08w。w は Windows)。 upx391.exe は多分最新版?。

 f:id:fxrobot:20131211180343j:plain

UPXF.exe は国産 UPX GUI の一つで単独 exe で実行できるのでフォルダに入れたままだ。これでも求める機能は果たしてくれるが、GUI の美観から UPX Shell を専ら使っている。

ところで、例えば、wxBasic で作ったプログラムを添付している bind.exe で一つの実行ファイルにすることができるが、サイズが大きくなるし、exe の中身を覗くとソースファイルがまる見えだ。これは、wxBasic に限った話しではなく、他の言語システムでも、特別な処理をしないでバインドしている場合は、エディタで中身を見ることができるのだ。

そんなときは UPX で圧縮すれば、サイズが小さくなり、中身を覗いてもわからなくなる。もちろん、絶対といえるものではない。そもそも、Java だって C# だって、その気になればソースを見ることはできるのだ。

わからなくしたいという人は、UPX 以外の有料の圧縮ソフト(PECompact が有名。ぼくも一時期使っていた: http://bitsum.com/pecompact/)を使えば、より解読されにくくはなだろう。それでもという人は、実行ファイル暗号化ソフトを使う手もある。

まぁ、個人的にはそこまで頑張らなくてよいと思っている。

一応隠れれば十分だろう。

ああ、そう、UPX の場所はここ。http://sourceforge.net/projects/upx/
ぼくが以前ダウンロードしていた場所はなくなったのだろうか。

【追伸】
書くのを忘れていたが、UPX Shell の日本語表示は、ぼくが言語ファイルを適当にいじったもので、本当なら全部日本語にしたかったのだけど、GUI のラベル部分は文字化けしてしまうので、ボタンやタブなど問題ない部分だけ日本語を割り当てた次第。これに意味があるかと問われればないと思うが、幾分、親しみは湧くよ。