SYS ファイル形式とは?
.sys 拡張子は、Windows および MS-DOS オペレーティングシステムで使用されるシステムファイルを示します。これらのファイルには、ロード可能なドライバー、デバイス設定、およびその他の低レベルの機能に関するデータが含まれています。.sys ファイルがなければ、Windowsカーネル、ハードウェアデバイス、および外部周辺機器間の通信が可能にならないため、システムの操作は不可能になります。
この拡張子は、2つの異なる世代をカバーしています。MS-DOS時代、.sys ファイルはテキストベース、または単純なバイナリ構成およびドライバー記述子でした。現代のWindows NT(Windows 2000以降)では、.sys ファイルは Portable Executable カーネルモードドライバーバイナリ です。これは .exe や .dll ファイルと同じ MZ/PE 形式ですが、ユーザーモードのコードではなく、Windowsカーネルによって直接ロードおよび実行されます。
代表的な .sys ファイル
最も一般的なレガシー .sys ファイルは CONFIG.SYS です。これはMS-DOSの実行に必要なすべてのドライバー宣言と構成設定が含まれていることでよく知られています。その時代の他の .sys ファイルには以下が含まれます:
MSDOS.SYS- DOSカーネルと呼ばれる、DOSシステムの基本コードが含まれています。IO.SYS- 標準のDOSドライバーとDOSの起動を担当するプログラムが含まれています。DOSおよびWindows 9xで使用されました。KEYBOARD.SYS- キーボードレイアウトに関する情報が含まれています。
現代のWindowsには、ntfs.sys(NTFSファイルシステムドライバー)や tcpip.sys(TCP/IPネットワークスタック)など、多数のドライバー .sys ファイルが同梱されています。
.sys ファイルの場所
システム内の .sys ファイルの大部分は隠されています。通常、メインのWindowsフォルダーにあります。Vista以降では、.sys ファイルはほとんどの場合 C:\Windows\System32\drivers\ および C:\Windows\WinSxS\ に配置されています。ハードウェアドライバーは C:\Windows\System32\DriverStore\FileRepository\ にもステージングされます。
補足事項
- 現代のWindowsカーネルモード
.sysドライバーは Ring 0 で動作し、システムメモリとハードウェアへの完全かつ無制限のアクセス権を持っています。 - 64ビット版Windowsでは、すべてのカーネルモードドライバーに有効なデジタル署名が必要です。署名のないドライバーは起動時にブロックされます。
.sysファイルはウイルス感染や悪意のあるソフトウェアの影響を受けやすく、破損したドライバーはブルースクリーン(BSOD)クラッシュの主な原因となります。.sysファイルはプレーンテキストではなくPEバイナリであり、PE-bearやResource Hackerなどのツールで検査できます。通常、関連する.infファイルがドライバーのインストールを処理します。
セキュリティと安全性
リスク: MEDIUMほとんどのドライバー .sys ファイルは、正当で署名された Windows コンポーネントであり安全です。本当の危険は2つあります。(1) 誤ったファイルを削除/編集すること。ドライバーの .sys を削除すると、起動エラーやブルースクリーンが発生する可能性があります。ファイルに触れるのではなく、Windows Update やデバイスマネージャーでドライバーを管理してください。(2) 悪意のあるドライバー: .sys ドライバーはカーネルで動作するため、ルートキットや «BYOVD» (脆弱なドライバーの持ち込み) 攻撃は、署名済みまたは偽の .sys ファイルを悪用して、システムへの最も深いレベルのアクセス権を得ようとします。不自然な場所にある未署名/不明な .sys は疑ってかかり、デジタル署名(プロパティ > デジタル署名、または Sigcheck)を確認し、スキャンしてください。本物の Windows ドライバーは、Microsoft または既知のハードウェアベンダーによって署名されているはずです。
形式の詳細
概要- 予約済みシステムデータブロブ (pagefile.sys, hiberfil.sys, swapfile.sys) - Windowsが仮想メモリや休止状態のために管理する大きな予約ディスク領域。プログラムではなく、開くことはできません。
- レガシー DOS 構成/テキストファイル (CONFIG.SYS, HIMEM.SYS) - プレーンテキストの MS-DOS スタートアップスクリプトおよび古いリアルモードドライバー。任意のテキストエディターで開くことができます。
SYS ファイルを開くプログラム
技術的詳細
詳細仕様| バイナリ形式 | Portable Executable (PE) カーネルモードドライバー。 .exe や .dll ファイルと同一のコンテナ形式 |
| マジックバイト | オフセット 0 に 4D 5A («MZ»)。MZヘッダーに格納されたオフセットに PE署名 50 45 00 00 |
| PEサブシステム | 1 - IMAGE_SUBSYSTEM_NATIVE。バイナリをユーザーモードアプリケーションではなく、カーネル/ネイティブドライバーとしてマーク |
| 実行特権レベル | Ring 0(カーネルモード)。ハードウェアレジスタ、物理メモリ、システムデータ構造への完全かつ無制限のアクセス |
| MIMEタイプ | application/octet-stream |
| カーネルモードコード署名 | 64ビット版Windows Vista以降で必須。ドライバーは WHQL または EV 署名が必要。Secure Boot が起動時に署名ポリシーを強制 |
| 標準のインストール場所 | C:\Windows\System32\drivers\。ステージングコピーは C:\Windows\System32\DriverStore\FileRepository\ に保持 |
| ファイルの可視性 | デフォルトで隠しシステム属性が設定。«隠しファイルを表示» と «保護されたオペレーティングシステムファイルを表示» の両方を有効にしない限り、エクスプローラーには表示されない |
| ロードメカニズム | 起動時またはオンデマンドで Windows サービスコントロールマネージャー (SCM) が実行。ブートスタートドライバーはレジストリの HKLM\SYSTEM\CurrentControlSet\Services にリスト |
| MS-DOS レガシーの役割 | テキストベースまたは単純なバイナリ構成記述子 (CONFIG.SYS, IO.SYS, MSDOS.SYS)。PEドライバー形式より10年以上前に登場 |
| アーキテクチャのバリエーション | x86 (32ビット)、x86-64 (AMD64)、ARM64 用に個別のビルドが必要。1つの .sys ファイルは1つのアーキテクチャのみをターゲットとする |
| ドライバー開発フレームワーク | WDM (Windows Driver Model) または WDF/KMDF (Windows Driver Frameworks - Kernel-Mode Driver Framework)。Windows Driver Kit (WDK) でコンパイル |
| セキュリティの感度 | 極めて重要 - 欠陥のある、または悪意のあるカーネルドライバーは、ブルースクリーン (BSOD)、データの破損、またはシステム全体の侵害を引き起こす可能性がある |
| 開発元 | Windows内蔵ドライバーは Microsoft。ハードウェアベンダーは INF ベースのドライバーパッケージを介して追加の署名済み .sys ファイルを提供 |
| 関連形式 | .exe と .dll は PE コンテナを共有。 .drv はレガシーなユーザーモードドライバー DLL。 .inf はインストールメタデータを提供。 .vxd は Win9x の仮想デバイスドライバー形式 |
| リリース日 | 1981 (MS-DOS used .SYS for drivers); modern Windows NT drivers are PE binaries |
| 仕様書 | learn.microsoft.com |