Artifact Content

Not logged in

Artifact 5e7e9e4115426f52d94da6dd8b21c0d3ca8ea524


----------------------------
 Quasi-Bga32.DLL 2015/05/05
----------------------------

http://www.forest.impress.co.jp/article/2004/07/30/arcsecurity.html
https://jvn.jp/vu/JVNVU78689801/
などで指摘されている脆弱性が気になるけれど、Bga32.dll は使い続けたいと
いう人のための回避策です。QBga32.DLL では、展開処理はこれらの問題に
対処しつつ内部で行い、圧縮などの他の処理は全てオリジナルのBga32.dllに
処理を回します。本家Bga32.dllが更新されるまでのピンチヒッターです。

★使い方

  * オリジナルの Bga32.dll を _Bga32.dll に、名前を変更する。
  * QBga32.dll を Bga32.dll に、名前を変更する。
  * 後は DLL を利用する各ソフトウェアの使用方法に従って…

★オリジナルのBga32.DLLとの相違点

  Bga() API にxコマンドを与えたときの動作のみが変化します。

    * 書庫内の格納ファイルパスの".."を"__"に書き換えながら解凍します。

    * 今のところ、レジストリの設定を読み込みません。
    * エラー時の返値が非常にいい加減です。
    * 上書き確認ダイアログが簡素なものになっています。
    * コマンドラインやオプション、ワイルドカードの解釈は
      オリジナルと同じになるように作ったつもりです。
    * ただし、突貫で作ったのでたぶんバグだらけです。

★更新履歴

  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 <jseward@bzip.org>
  で。

  win32 ディレクトリの中身は
    Bindings for the Windows API
      http://www.dsource.org/projects/bindings/wiki/WindowsApi
  を利用しています。

  他は NYSL 0.9982 ( http://www.kmonos.net/nysl/ )に基づいてご自由に。