魔術師をめざして

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

PECompact

f:id:fxrobot:20131212035822j:plain

前々回、実行ファイル圧縮ソフトである UPX のことを書いたら、PECompact のことを思い出したのだった。ぼくはいつからだったか PECompact のライセンスを持っているが、もう最新版に対しては無効なのだろうと思っていた。それで今回、PECompact のサイトにログインしてみたら、ぼくのライセンスは有効で、この後も生涯有効とのことだ。知らなかった。

f:id:fxrobot:20131212025324j:plain

 そうか、2009年に購入していたんだね。

4年半近く前のことか。確かにそのころ必要だった。PureBasic やこの PECompact のように一度の支払いで生涯アップデートしてくれるソフトウェアプロダクトというのは、毎年のようにアップデートでお金を取ろうとする商用ソフトとは違って、準フリーソフトと言ってよいのかもしれない。

「実行ファイル圧縮ソフト」と言えば、フリーの UPX(http://sourceforge.net/projects/upx/)と PECompact(http://bitsum.com/pecompact/)そして ASPack(http://www.aspack.com/)の3つがその代表的なものだ。

ASPack はよく知らなかったが、実行ファイルを暗号化する ASProtect という姉妹ソフトもあるようで、ASPack の値段はサイトをみてみれば 1シングルライセンスが2万円近くするようで、アップデートで頻繁にお金を取るタイプのようだ。

お金に関してだけ言えば、UPX < PECompact < ASPack という関係のようだね。

f:id:fxrobot:20131212031321j:plain

で、最新安定版の PECompact をインストールして試してみたが、UPX 3.08 のベスト圧縮が 792KB → 344KB だったのに対し、PECompact 3.02.2 のデフォルト圧縮(レベル 7 / 最高はレベル 9)が 792KB → 319KB と僅かながら高圧縮だった。おそらくは近いうちに PECompact 3.03 となりそうなので、そうしたらまたアップデートしようと思う。

 ちなみに、この PECompact は、Google デスクトップや DivX プレーヤーの圧縮に使われているそうだ。また、PECompact には難読化するためのプラグインも入っている。デフォルトでは LZMA2 というコーデックが設定されている。

 f:id:fxrobot:20131212032839j:plain

こんな感じだ。

UPX は素晴らしいツールの上無料でさらにソースコードも公開されているから、ありがたい限りだが、UPX には圧縮を解除する解凍スイッチ(元に戻す)があり、また、オープンソースということが災いし、マルウェア作成者によって悪用される場合もあるようだ。

うん、PECompact を売り込んでいるぞ。:P

この際ついでだから PECompact の設定画面も紹介しよう。

f:id:fxrobot:20131212034443j:plain

こんな感じ。

ローダーとか、コーデック、API フックなどがプラグインという形で選べるようになっている。また、見たとおり、デフォルトの圧縮レベルは (7) になっている。

なお、PECompact を販売する bitsum 社では、アンチウィルスソフトを販売する会社と協議を行い PECompact で圧縮した実行ファイルが謂われのない評価を得ないように努力しているとのことだ。実情は知らないがサイトにはそんなことが書いてある。

忘れていたけど、最初にある PEBundle というソフトは、実行ファイルに DLL やらビットマップデータやらを一つのファイルにバンドルするもの。