386 ファイル形式とは?
.386 ファイルは、1988年に Windows/386 2.x で導入された Windows 386 エンハンスドモード用の 仮想デバイスドライバー (VxD) です。VxD は、タイマー、キーボード、ディスプレイアダプター、ディスクコントローラーなどのハードウェアデバイスや OS サービスを仮想化するカーネルモードのバイナリコンポーネントです。これにより、同時に実行されている複数の DOS アプリケーションが、それぞれハードウェアに排他的にアクセスしているかのように動作できます。
内部的には、.386 ファイルは MZ DOS 実行可能スタブと、それに続く Linear Executable (LE) ヘッダーで構成されています。LE ヘッダーには、デバイス ID、バージョン、および初期化、I/O ポート仮想化、割り込み処理のエントリポイントを特定する VxD ディスクリプタブロックが含まれています。Windows/386 2.x では、LE 標準が採用される前に、独自の W386 ヘッダー形式が使用されていました。
.386 VxD は、メモリ分離のない Ring 0 (カーネルモード) で完全に動作します。これは強力である反面、不安定でもありました。欠陥のあるドライバーがオペレーティングシステム全体をクラッシュさせる可能性があったためです。Windows NT では、当初から適切なカーネル分離を備えた WDM (Windows Driver Model) が使用されていました。Windows 98 SE から移行が始まり、Windows Me が VxD をサポートする最後のコンシューマー向けリリースとなりました。Windows XP 以降では、VxD サブシステムが削除されたため、.386 ファイルを読み込むことは一切できません。
同じ仮想デバイスドライバーの役割は、.vxd ファイル(機能的には同一ですが、Windows 95/98 の動的 VxD に使用される拡張子が異なります)によっても果たされます。よく知られている例には、VSHARE.386、VFAT.386、VTDAPI.386 などがあります。これらのファイルは、起動時または必要に応じて Windows カーネルによって自動的に読み込まれます。手動で開くことはできず、開くべきでもありません。
セキュリティと安全性
リスク: MEDIUM正規の .386 ファイルは Windows システムドライバーであり、現代の Windows では読み込まれないため無害です。しかし、歴史的にマルウェアは Windows 9x/Me において、カーネルモードのペイロードを隠すために .386 拡張子を悪用していました。これらの OS では、Ring 0 VxD はウイルス対策ソフトから自身を隠蔽することが可能でした。Windows XP 以降では、.386 ファイルは VxD として読み込むことができず、実行のリスクはありません。現代のシステムでウイルス対策ソフトが .386 ファイルを検知した場合、それは過去の検知シグネチャに一致したか、.386 拡張子に偽装されたファイルである可能性があります。
形式の詳細
概要- Ventura Publisher フォントファイル - Xerox/Corel Ventura Publisher の一部のバージョンでは、386 に最適化されたダウンロード可能なフォントデータに .386 が使用されていました(1995年以前の稀なケース)。
386 ファイルを開くプログラム
技術的詳細
詳細仕様| エンコーディング | バイナリ実行ファイル (MZ DOS スタブ + Linear Executable LE ボディ) |
| バイト順序 | リトルエンディアン |
| ファイルヘッダー | オフセット 0 に MZ ヘッダー (4D 5A) (DOS スタブ); 0x3C の dword が指すオフセットに LE ヘッダー (4C 45) |
| 最初期の形式バリアント | Windows/386 2.x (1988): LE 標準以前の独自の W386 ヘッダー |
| 実行リング | Ring 0 (カーネルモード) - VxD は完全なハードウェアアクセス権を持ち、メモリ分離なしで動作 |
| 一般的なファイルサイズ | 2 KB - 200 KB |
| VxD ディスクリプタブロック | デバイス ID、バージョン、およびエントリポイント(初期化、I/O ポート処理、割り込み仮想化)を特定 |
| OS 互換性 | Windows 2.x (Windows/386) から Windows Me まで。Windows XP 以降では読み込み不可 |
| 後継技術 | Windows 98 SE / Windows 2000 で導入された WDM (Windows Driver Model)。ドライバーは .sys 拡張子を使用 |
| 動的読み込み | Windows for Workgroups 3.11 以降でサポート。それ以前のバージョンは静的 VxD のみを使用 |
| 主な例 | VSHARE.386, VFAT.386, VTDAPI.386, EMM386.386, WINA20.386 |
| リリース日 | 1988 (Windows/386 2.x) |
| 最新バージョン | Used through Windows Me (2000); superseded by WDM in Windows 98 SE / 2000 |
| 仕様書 | devblogs.microsoft.com |
386 の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。386 ファイルについて最初の質問をしてみましょう。