Let's HSPUPX! v1.9 ------------------- 1. はじめに ----------------------------------------------------------------------  UPX(Ultimate Packer for eXecutables)は、実行ファイルを実行可能な まま圧縮するツールです。ところが、HSPで作成した実行ファイルに対して 使用すると、無効なファイルとして起動できなくなってしまいます。これは ファイル内にサイズのチェックを行う処理が含まれているためです。  そんなものかと諦めていたある日、HSPの公式サイトの掲示板にて、ラン タイムファイルに対して圧縮することができる、との書き込みを偶然発見。 この驚愕?の事実を知り、色々と調べてみたところ、K-K氏がソースコード から、圧縮した実行ファイルを生成するコードをHSPのメーリングリストに 投稿しておられました。「著作権等は破棄しますので,ご自由に使ってくだ さい(^^;」とのことなので、バージョン0.9までのベースとして使用して きました。  そんな感じで更新してきたツールもリリースを間近に控えていたHSP 2.6に 対応しなければなりません。しかし、新たなファイル仕様が含まれている 次期バージョンに、現状コードの拡張で対応するのは少々めんどくさい。 と言うわけで、これまでに培われてきた技術を引き継ぎつつも、ソース コードから生成する方式を捨て、実行ファイルを直接圧縮する新方式へ独自に 変更したのがこのツールです。  より便利に、より簡単に、生まれ変わりました。(^^ 2. 機能 ----------------------------------------------------------------------  HSPで作成した実行ファイル(スクリーンセーバーファイル)に対しUPXを 利用した圧縮を施すことができます。対応を確認しているWindows版HSPの バージョンは、2.61と3.xです。  ちなみに、実際に圧縮されるのはランタイム部分だけなので、画像ファイル などをPACKFILEにたくさん入れていたり、コードがとても長い場合は大幅な サイズ変化は現れません。  このツールの設定は lhspupx.ini ファイルにすべて保存されます。レジ ストリなどは一切弄っていないので、アンインストールは本体関連の ファイルを削除すればOKです。 3. 使い方 ----------------------------------------------------------------------  まず、UPX本体 「upx***w.zip」 (Win32 console version) を公式サイト から入手してください。英語表記の海外サイトです。 >> http://upx.sourceforge.net/  UPXの配布ファイル内には複数のファイルが含まれていますが、必要なのは 本体の upx.exe だけです。このファイルとこのツールをHSP本体が置かれて あるフォルダに置いてください。基本的にこの2つのファイルをセットで 置けば、別フォルダでも構いません。  そして、実行ファイルを直接圧縮するので、スクリプトエディタ等で通常 どおりに実行ファイルを作成しておきます。なお、オリジナルのアイコンを 使用する場合は、圧縮作業を行う前に書き換えておいてください。 (1)ツールを起動します。 (2)[出力ファイル名:]には圧縮後のファイル名を入力します。 拡張子は不要です。これから圧縮しようとする実行ファイルとは必ず別の 名前にしてください。空欄の場合は、「(ファイル名)_pack.exe/scr」と いうファイル名で出力します。 (3)[圧縮]ボタンを押して、圧縮したい実行ファイルを選択します。圧縮 作業が始まり、DOSプロンプト画面が2回表示されます。この間は処理が 終了するまで絶対に他の作業をしないでください。 (4)終了ダイアログが表示されます。  圧縮されたファイルは基本的に圧縮する実行ファイルと同じフォルダに 出力されます。途中でエラーになった場合は、無効なファイルが出力されて いる場合があるので、そのファイルは削除してください。 4. その他の機能 ---------------------------------------------------------------------- (1)ドラッグ&ドロップ起動  このツールのアイコン上に圧縮したい実行ファイルをD&Dした場合、ツール が起動して、そのまま圧縮作業が始まるようになっています。  また、ツールのウィンドウ上に圧縮したい実行ファイルをD&Dした場合にも、 圧縮作業が始まるようになっています。 (2)UPXのオプション  [オプション:]は、UPXのコマンドラインオプション用の入力ボックスです。 圧縮レベル(「-1」〜「-9」、「--best」)や圧縮方式などを変更できますが、 基本的に空欄のままで構いません。詳細は、UPXのマニュアルを参照して ください。 (3)ツールのオプション  チェックボックスの[DOSプロンプトの非表示]は、圧縮作業を行うDOS プロンプト画面を表示しません。また、[ログファイルの出力]は、簡単な サイズの変化を記載した結果ログ lhspupx_log.txt を出力します。 (4)ポップアップメニュー  ツール上の右クリックでポップアップメニューが表示されます。  上から、ツール起動直後に実行ファイルの読み込みダイアログを自動的に 開くオプション、圧縮作業終了直後の結果ダイアログの表示を行わない オプション、圧縮作業完了後にツールを自動的に終了させるオプションです。 (5)Upack圧縮  中国の方が製作された「Upack」という実行ファイル圧縮ソフトに試験的に 対応しています。UPXよりも圧縮率が高いのが特徴ですが、基本的には 信頼性の高いUPXの方の利用をお勧めします。  実際に使用するには、本体の Upack.exe をこのツールと同じフォルダに 入れておき、Shiftキーを押しながら[圧縮]ボタンを押す形で利用できます。 >> http://dwing.51.net/ ※注意  この「Upack」は、圧縮率の高さからウイルス製作者も御愛用な状態に なっているため、「Upack」圧縮しただけの実行ファイルを一部のアンチウイ ルスソフトが問答無用でウイルスと誤認識するようになっているので、 v1.9からは利用できないようにしました。 5. 注意 ----------------------------------------------------------------------  FORCE氏制作のHSP 2.x用拡張プラグイン「Exforce for HSP」を利用した 実行ファイルは、圧縮すると画像ボタン命令系の画像がうまく表示されなく なるようです。  この他の実行ファイルでも圧縮できなかったり、起動できなくなったり、 何かしらの問題が出てくる可能性があります。圧縮後の動作チェックは必ず 行ってください。 6. 更新履歴 ---------------------------------------------------------------------- 2007/05/22 v1.9 - ウイルス誤認識問題による実質的な実行ファイルの差し替え。 - ソースコードの公開。若干コードのクリーンアップと、適当なコメント 追加。あらためてスクリプトを見てみると、ほとんど2005年当時のHSP3 移植したて状態なので、かなーり無駄が多い・・・(^^; - 「Upack」圧縮を利用できないように。(ソースコード上のコメントアウト) 2005/12/03 v1.8 - HSP2のコードをHSP3(3.0a)で書き直す。 - ウィンドウ上へのHSP製実行ファイルのD&D機能を追加。 - 右クリックのポップアップメニューを追加し、INIファイルを直接編集する 必要があった2つのオプションをツール上から変更できるように。 - 右クリックのポップアップメニューに、結果ダイアログを表示しない オプションを追加。 - 出力ファイル名が指定されていない場合でも、圧縮作業ができるように。 - HSP 2.61のコンソール版HSPCLを利用した実行ファイルの圧縮に対応できて いなかったので、これに対処するために内部処理を変更。(Thanx, Xellos!) - アイコン上にHSP製実行ファイルをD&D起動した場合の、圧縮された実行ファ イルが出力されるフォルダ先を修正。 - 圧縮しようとする実行ファイルが若干深い階層にある場合、エラーがでる 不具合を改善(?)。 - その他、細かな調整。 2005/08/04 v1.7 - HSP 3.0の圧縮に試験的に対応。 - 結果ログの出力ファイル名を変更。(lhspupx.log→lhspupx_log.txt) - その他、細かな調整。 2005/03/13 v1.6 (fix) - DOSプロンプトの非表示で、場合により圧縮ができない問題を修正。 2005/03/10 v1.6 - D&D起動の場合、圧縮作業が終了した後にツールを自動終了するように変更。 - DOSプロンプトの最小化オプションを撤去し、非表示オプションを追加。 - UPXの圧縮を解除するオプション「-d」はあまり必要性がないので撤去。 - 実行ファイル圧縮ソフト「Upack」用のサポートを試験的に追加。 - その他、細かな調整。 2003/12/06 v1.5 - PACKFILEに入れたファイルのサイズが300KBを超えた実行ファイルに対して 圧縮をしようとすると、UPXがエラーを出して圧縮に失敗する問題に対処する ために内部処理を変更。(Thanx, ドロシー!) - その他、細かな調整。 2003/10/20 v1.4 - Windows ME/XP環境で場合によってD&D起動が機能しない問題を修正。 - その他、細かな調整。 2003/09/30 v1.3 (HSP:コンテスト.2oo3) - 実行ファイルの圧縮を解除する「-d」に一応対応。 - 結果ログを少々作り替えて、連続での圧縮結果を追加出力するように。 - 結果ログのバイト数を3桁コンマ区切りするように。 - 「iconrewr+loadlib HSP拡張ランタイム」用の対処を追加。(INIファイル) - 起動直後に自動で読み込みダイアログが開くように。(INIファイル) - 圧縮作業終了後に自動でツールが終了するように。(INIファイル) - 複数の実行ファイルをD&Dした場合にエラー落ちしないよう改善。 - その他、細かなバグ修正や調整。 2003/04/06 v1.2 - UPXが圧縮不可エラーになった場合(一部)のエラー処理を追加。 - その他、細かな調整。 2003/03/02 v1.1 - 結果ログのファイルに出力日と元ファイル名の項目を追加。 - 圧縮する実行ファイルが出力名と同じだった場合のエラー処理を追加。 - 圧縮済みのファイルを選択すると、無効ファイルと判定するよう改善。 - 無効ファイルの判定処理を強化して、一部ファイルでの強制終了を改善。 - Windows XPでのウィンドウ表示色の問題を改善。 - その他、細かな調整。 2003/01/18 v1.0 (新圧縮方式) - 実行ファイルの直接圧縮方式に変更し、HSP 2.4/2.5/2.6の圧縮が可能に。 - UPXのDOSプロンプト最小化表示と結果ログ出力のオプションを付ける。 - INIファイルに各種設定を保存するように。 - CFGファイルの読み込み機能を削除。 - アイコン上に実行ファイルをD&Dすると圧縮作業を開始するように。 - サイズ変化とサイズ差の計算誤差を改善。(Thanx, pom!) 2003/01/XX Ver. 0.9 (未リリース) - UPXのDOSプロンプトを最小化状態で実行できるように。(CFGファイル) - サイズの結果ログを出力できるように。(CFGファイル) - 自動的に拡張子を付けて実行ファイルを出力するように。 - その他、細かな調整。 2002/12/21 v0.8 - 設定を保存したCFGファイル lhspupx.cfg を自動的に読み込むように。 - それに伴い、CFGファイルの仕様を少々変更。 - サイズ変化と圧縮率(%)を最後に表示するように。(Thanx, pom!) - DPMファイルの参照ボタンが正しく機能していなかったのを修正。 - ファイル作成情報のクリア領域をちょっと調整。(痕跡用?) - その他、細かな調整。 2002/12/07 v0.7 - スクリーンセーバーの作成もサポート。 - それに伴い、ファイルの種類の選択オプションを付ける。 - 圧縮する部分のコードを調整し、若干高速化(?)。 - その他、細かな調整。 2002/11/23 v0.6 - DPMファイルの参照ボタンを付ける。 - 通常と比べたサイズ差(KB)を最後に表示するように。(Thanx, pom!) - かなりテキトーだったアイコンを作り替える。 - その他、細かな調整。 2002/11/12 v0.5 - HSPランタイムファイルの参照ボタンを付ける。 - 作成するファイル名が空欄だった場合のエラー処理を追加。 - その他、細かな調整。 2002/10/12 v0.4 - 設定を保存したCFGファイルの読み込み機能を付ける。 - その他、細かな修正。 2002/10/10 v0.3 - UPX圧縮中のエラー処理を追加。 - ダイアログなどの説明表記を調整。 - ツールにWindows XP用ビジュアルスタイルを(試験的に)追加。 2002/09/12 v0.2 - 作成するファイル名のダイアログを付ける。 - 表示スタイルを調整。 2002/09/08 v0.1 (ファーストリリース) - HSP 2.55専用としてK-K氏による hspupx.as をベースに作成する。 - 表示スタイルを調節。 - UPXのコマンドラインオプション用ダイアログを付ける。 - マウスドラッグのウィンドウ移動、ESCキーによる終了を付ける。 7. クレジット ---------------------------------------------------------------------- hspupx.as by K-K (旧バージョンのベース) UPX by Markus Franz Xaver Johannes Oberhumer & Laszlo Molnar Upack by Dwing  このツールを使用したことによる何かしらの重大損害に対し制作者は一切 責任を負うことができませんので、明日に向かって一心不乱で走り抜けて ください。 Kpan >> http://lhsp.s206.xrea.com/