---------------------------- Quasi-Bga32.DLL 2015/07/03 ---------------------------- http://www.forest.impress.co.jp/article/2004/07/30/arcsecurity.html https://jvn.jp/jp/JVN78689801/ などで指摘されている脆弱性が気になるけれど、Bga32.dll は使い続けたいと いう人のための回避策です。QBga32.DLL では、展開処理はこれらの問題に 対処しつつ内部で行い、圧縮などの他の処理は全てオリジナルのBga32.dllに 処理を回します。本家Bga32.dllが更新されるまでのピンチヒッターです。 ★使い方 * オリジナルの Bga32.dll を _Bga32.dll に、名前を変更する。 * QBga32.dll を Bga32.dll に、名前を変更する。 * 後は DLL を利用する各ソフトウェアの使用方法に従って… ★オリジナルのBga32.DLLとの相違点 Bga() API にxコマンドを与えたときの動作のみが変化します。 * 書庫内の格納ファイルパスの".."を"__"に書き換えながら解凍します。 * 今のところ、レジストリの設定を読み込みません。 * エラー時の返値が非常にいい加減です。 * 上書き確認ダイアログが簡素なものになっています。 * コマンドラインやオプション、ワイルドカードの解釈は オリジナルと同じになるように作ったつもりです。 * ただし、突貫で作ったのでたぶんバグだらけです。 その他のAPIおよびBga()APIにその他のコマンドを与えたときは、_Bga32.DLL の 同名の関数に引数をそのまま丸投げします。_Bga32.DLL が見つからなかったときは、 Bga() からはエラーコード 0x9000 を、それ以外の API もそれぞれのエラーを返します。 ★更新履歴 2015/07/03 (0.06) * _Bga32.DLL が存在しない状態で呼びされてもクラッシュしないように修正 2015/05/05 (0.05) * https://jvn.jp/vu/JVNVU78689801/ (zlib/libbz2の脆弱性) への対処 * zlib のバージョンを 1.2.8 に更新(するためにdmdのバージョンを 2.067 に更新) * libbz2 のバージョンを 1.0.6 に更新 2010/11/25 (0.04) * _Bga32.dll を探す対象パスからカレントディレクトリを外しました 2004/8/31 (0.03) * レスポンスファイルが扱えてなかったバグを修正 * .gzaを正しく展開できないケースがあったっぽいので修正 * 基底ディレクトリの指定がないと正しく動作しないバグ修正 * 進捗状況ダイアログ表示を実装 * SetOwnerWindowProc系APIを実装 * QBgaGetVersion() API を追加。このAPIが必要になる機会は 基本的には無いようにしたいですが…。オリジナルの Bga32と偽Bga32を区別したい場合はこのAPIの有無で。 2004/8/22 * FreeLibrary時に標準入出力を勝手に閉じちゃうバグを修正 2004/8/20 * 初版公開 ★ソースからコンパイルするには Digital Mars D Compiler 2.067.0 http://downloads.dlang.org/releases/2.x/2.067.0/ が必要です。 ★著作権等 src/libbz2ディレクトリの中身は、 libbzip2 http://www.bzip.org/ をビルドしたライブラリなどです。この部分は Copyright (C) 1996-2010 Julian Seward で。 win32 ディレクトリの中身は Bindings for the Windows API http://www.dsource.org/projects/bindings/wiki/WindowsApi を利用しています。 他は NYSL 0.9982 ( http://www.kmonos.net/nysl/ )に基づいてご自由に。