|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
『7-Zip 4.57』について <Feb.10,2008>2005 年 8 月 5 日に公開された「7-Zip 4.26 beta」において, 新たに LZH 書庫の展開がサポートされましたが, 現在までの版については若干制限の存在するものとなっています。 このページでは, 7-Zip 4.26 beta 以降での制限等について簡単に記述してあります。 4.57 までの時点では状況に変化がありません。 ●属性について現在の版では, 基本ヘッダーの情報しか扱っていないため, h0 形式以外の書庫については属性の復元が行われません。 展開時には常にアーカイブ属性のみがセットされます。 この点が 7-Zip で LZH 書庫を扱う場合について最大の制限となっています。 ●タイムスタンプについて基本的に, 基本ヘッダーに記録されている情報のみ扱われますが, 7-Zip が Linux にも対応していることから, 例外的に LHa for UNIX の更新日時ヘッダー (識別子 0x54) が読み込まれます。 従って, 多くのツールと同様, 更新日時のみ復元が行われ, h2 形式ヘッダー未満の書庫については, 通常は NTFS ファイルシステムであっても ftime 形式 (2 秒単位) でタイムスタンプが扱われます。 この辺りについては, オリジナルの LHA.EXE を含めた多くのアプリと同様となっていますので, 大きな問題は発生しないものと思われます。 ●ファイルサイズについて2GB 以上 4GB 未満のファイルについては正常に扱われます。 4GB を超えるものについては UNLHA32.DLL の独自ヘッダーに対応していないことから正常に扱われません。 ●lhd 形式 (ディレクトリー) メンバーについて正常に扱われますが, タイムスタンプは多くのアプリと同様に復元されません。 ●圧縮形式についてlh0 / lh4~lh7 / lz4 形式が扱えます。 その他の形式については, 扱うことができません。 その場合はスキップログが出力されますが, 現在の版では, 展開できなかった当該メンバーの残骸が残ってしまいます。 メソッド ID と実際のメソッドが異なるメンバー (lh6 と lh7 形式メソッドの区別されていなかった時期が存在するため, そのような書庫が存在します。) の主なものについては, 以下のとおりです。 よほど特殊なものでない限りは展開が可能です:
●書庫形式についてh0/h1/h2 形式が扱えますので, 通常, 問題は発生しないものと思われます。 ●ヘッダー CRC チェックについて7-Zip では基本ヘッダーの SUM チェックしか行われません。 従って, h2 形式の全て, 多くの h1 形式, そして (Linux 上などで作成された) h0 形式の書庫については, ヘッダー改竄・破損の確認が行われません。 攻撃書庫の多くはヘッダー改竄を伴っていますので, そういった意味では危険性が高いと言えます。 ●「指定外の場所へファイルが展開されてしまう脆弱性」の問題について7-Zip 共通のルーチンを使用していることから, 絶対パスをもつものや, 親ディレクトリーを示す ".." のパス情報をもつメンバーについては, 指定したディレクトリー配下へ展開が行われるように調整が行われます。 ●「バッファーオーバーフロー」の問題について1000 文字といった長い名前をもったメンバー等の存在する書庫については, 一覧表示は行えますが展開されない (エラーログが出力される。) ようになっています。 これらの不正なパス情報等をもったファイルについては以下のとおりです:
|