Artifact 1b96be90cbb7f76b349027eaed50fe4458897bde
----------------------------
Quasi-Bga32.DLL 2010/11/25
----------------------------
http://www.forest.impress.co.jp/article/2004/07/30/arcsecurity.html
などで脆弱性と指摘されている問題が気になるけれど、Bga32.dllは使い続け
たいという人のための回避策です。展開処理はこの問題に対処しつつ内部で
行い、圧縮などの他の処理は全てオリジナルのBga32.dllに処理を回します。
本家Bga32.dllが更新されるまでのピンチヒッターということで。
★使い方
* オリジナルの Bga32.dll を _Bga32.dll に、名前を変更する。
* QBga32.dll を Bga32.dll に、名前を変更する。
* 後は DLL を利用する各ソフトウェアの使用方法に従って…
★オリジナルのBga32.DLLとの相違点
Bga() API にxコマンドを与えたときの動作のみが変化します。
* 書庫内の格納ファイルパスの".."を"__"に書き換えながら解凍します。
* 今のところ、レジストリの設定を読み込みません。
* エラー時の返値が非常にいい加減です。
* 上書き確認ダイアログが簡素なものになっています。
* コマンドラインやオプション、ワイルドカードの解釈は
オリジナルと同じになるように作ったつもりです。
* ただし、突貫で作ったのでたぶんバグだらけです。
★更新履歴
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 0.99
http://www.kmonos.net/alang/d/1.0/changelog1.html#new099
が必要です。
★著作権等
src/libbz2ディレクトリの中身は、
libbzip2
http://sources.redhat.com/bzip2/
をビルドしたライブラリなどです。この部分は
Copyright (C) 1996-2002 Julian R Seward. All rights reserved.
で。
dmd_win32.lib と win32 ディレクトリの中身は
DWinProgramming
https://github.com/AndrejMitrovic/DWinProgramming
を利用しています。
他は NYSL 0.9982 ( http://www.kmonos.net/nysl/ )に基づいてご自由に。