ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
LZH(拡張子 .lzh または .lha)は、日本の医師でありプログラマでもある 吉崎栄泰(よしざき・はるやす)氏が 1988 年に発表した圧縮アーカイブ形式です。当初は MS-DOS 向けの LHarc、後継の LHA(Larc Hyper Archive または LHa for DOS)として広く配布され、シェアウェア・フリーウェア時代の日本において圧倒的なシェアを誇りました。
1990 年代の日本では Vector(現 Vector ソフトウェアライブラリ、旧称「BECKY!」や「窓の杜の前身」と並ぶ大型ダウンロードサイト)や パソコン通信(NIFTY-Serve、PC-VAN 等)を通じて、おびただしい数のフリーソフト・シェアウェアが LZH 形式で配布されました。同人ゲーム、エディタプラグイン、IME 辞書、フォントなど、当時の日本のホビーコンピューティング文化の多くが LZH の上に成立していたといっても過言ではありません。
しかし、Windows XP(2001 年)が標準で ZIP の読み書きをサポートしたこと、世界市場では ZIP が圧倒的な標準であり国際的なソフトウェア配布で LZH が通用しないこと、そして 2010 年に開発者 Micco 氏(UNLHA32.DLL 開発者)が「LZH 形式の利用を控えるべき」という使用中止勧告を発表したことなどが重なり、現代の日本でも LZH は完全にレガシ扱いとなっています。
内部構造とマジックナンバー
LZH は ZIP のように先頭固定マジックを持たず、各ファイルエントリのヘッダ先頭付近に圧縮方式を示すシグネチャが現れる構造です。代表的なものを示します。
| オフセット 2-6 | 方式名 | アルゴリズム |
|---|---|---|
-lh0- | 無圧縮 | Store のみ |
-lh1- | LH1 | LZSS + 動的 Huffman(4KB 辞書) |
-lh4- / -lh5- | LH4 / LH5 | LZSS + 静的 Huffman(4KB / 8KB 辞書) |
-lh6- / -lh7- | LH6 / LH7 | LZSS + 静的 Huffman(32KB / 64KB 辞書) |
-lhd- | ディレクトリ | データなし、ディレクトリエントリ |
-lz4- / -lz5- | LArc 互換 | レガシ(LArc 形式の取り込み) |
ヘッダ形式には Level-0 / Level-1 / Level-2 / Level-3 のバリアントがあり、Level によってファイル名長制限、タイムスタンプ精度、拡張ヘッダ対応が異なります。Level-2 以降ではディレクトリ階層、シンボリックリンク、長いファイル名、UTF-8 ファイル名などをサポートします。
圧縮の中核は LZSS(LZ77 派生、繰り返し参照のインデックス/長さペアと文字を 1 ビットフラグで区別する方式)と、それを Huffman 符号 で更にビット詰めする 2 段構成です。当時としては優秀な圧縮率と高速性を両立しており、これが日本での普及を後押ししました。
主な用途
- レガシ資産の解凍: 1990 年代〜2000 年代前半の日本産フリーウェア、同人作品の展開
- 古い Vector / 雑誌付録 CD-ROM の中身取り出し
- X68000 / PC-9801 系 のソフト配布アーカイブ展開(レトロ PC コミュニティ)
- 古い同人ゲームの再頒布 元データ展開(再頒布時には ZIP/7z へ変換するのが現代の慣習)
現代における新規作成の用途はほぼ無く、純粋に「過去のアーカイブを開く」目的でのみ存在意義がある形式と言えます。
関連形式との比較
| 形式 | 開発 | 時代 | 地域 | 現代の評価 |
|---|---|---|---|---|
| LZH | 吉崎栄泰 | 1988-2000s | 日本中心 | 非推奨(脆弱性・メンテ停止) |
| ZIP | PKWARE | 1989-現在 | 世界標準 | 標準 |
| ARJ | Robert Jung | 1991-2000s | 欧米 | レガシ |
| RAR | Eugene Roshal | 1993-現在 | 世界 | 商用、ニッチ |
| 7z | Igor Pavlov | 1999-現在 | 世界 | 主流(高圧縮) |
コマンド・ツール
現代の Windows では 7-Zip(公式版)、Lhaplus(更新停止、注意して使用)、LhaForge(後継として推奨)などで展開できます。Linux では lha(Jonathan Clark の lhasa など)が利用できます。
# ===== Linux (lhasa 推奨、メンテ継続中) =====
sudo apt install lhasa
# 中身一覧
lha l archive.lzh
# 展開
lha xw=./out archive.lzh
# ===== 7-Zip CLI (Linux/Mac/Windows) =====
7z l archive.lzh
7z x archive.lzh -oout/
# ===== Windows GUI =====
# LhaForge (推奨、OSS、Unicode 対応)
# https://claybird.sakura.ne.jp/lhaforge/
# 7-Zip
# https://7-zip.org/
新規作成は推奨されないため、圧縮側のサンプルは敢えて掲載しません。現代において新規 LZH を生成する正当な理由はほぼありません。
注意点・落とし穴
- 🚨 開発者による使用中止勧告: 2010 年 6 月、長年 UNLHA32.DLL を開発・メンテしてきた Micco 氏が、「複数の脆弱性が修正されないまま放置されている」「LZH 形式自体に構造的なセキュリティ課題がある」として、LZH 形式の使用中止を強く呼びかけました。これは Windows 7 標準で LZH サポートが入った直後の出来事で、業界全体に大きな衝撃を与えました。
- 脆弱性事例: ヘッダパーサのバッファオーバーフロー、ディレクトリトラバーサル(
../../を含むファイル名展開)など、複数の CVE が報告されている。アンチウイルスのスキャンエンジン経由で脆弱性が露出した事例もあり、「LZH を開くだけで感染」リスクは過去に複数存在した。 - 長期メンテされていないツール: Lhaplus は更新が長く止まっており、近年のセキュリティ修正は適用されていない。代替として LhaForge(claybird 氏開発、OSS、現在もメンテ継続)の利用が推奨される。
- 文字コード問題: 古い LZH は Shift_JIS でファイル名が記録されており、現代の UTF-8 環境で展開するとファイル名が文字化けする。
lhaや 7-Zip の-mcp=932相当オプションで明示指定が必要。 - 未知ソースの LZH は隔離環境で: メール添付・ダウンロードで届く未知 LZH は、隔離された VM やサンドボックス内で展開すること。送信元に対しては ZIP/7z での再送を依頼するのが最も安全。
- 商用業務での新規利用は避ける: 上記理由から、業務システムが新規に LZH を生成・配布する設計を 2026 年現在で採用する正当な理由はない。レガシシステムからの移行時は ZIP/7z へ変換すること。
関連リンク
- アーカイブ・圧縮形式(親カテゴリ)
- ファイル拡張子とは(概論)
- ZIP(.zip)
- 7z(.7z)
- RAR(.rar)
- zip ファイルやディレクトリを zip 形式に圧縮する
- unzip zip ファイルを解凍する
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?