なぜ SYS を DLL に変換するのですか?
.sys ファイルは、Windows カーネル(ntoskrnl)や HAL にリンクされ、OS によって直接ロードされるカーネルモードデバイスドライバです。.dll は、通常のプロセスにロードされるユーザーモード共有ライブラリです。これらは API やセキュリティモデルに互換性のない異なる実行コンテキストです。.sys を .dll として名前変更したり再パッケージ化したりしても、Windows が拒否するバイナリが作成されるだけです。
SYS から DLL への変換方法
Dependency Walker FREE
Dependency Walker で .sys を開き(読み取り専用)、インポートテーブルを検査して、ドライバパッケージに意図されたインターフェースとして対になるユーザーモードの .dll が含まれているか確認します。
PE-bear FREE
PE-bear で .sys を開き、ファイル変換を行うことなく、ヘッダー、インポート、エクスポート、およびデジタル署名を調査します。
これらの形式について
現代のWindowsにおける .sys ファイルは、ほとんどの場合デバイスドライバーです。これは、GPU、ネットワークアダプター、ストレージコントローラーなどのハードウェアとWindowsが通信するためのカーネルコードです。ドライバーの .sys ファイルを開いたり編集したりすることはありません。Windowsが起動時にこれらを読み込みます。ブルースクリーン(BSOD)に…
.SYS の詳細を開く →DLL(Dynamic Link Library)は、プログラムの実行中にロードされるコンパイル済みコードを保持する Windows のライブラリファイルです。ダブルクリックして開くものではありません。アプリが DLL の欠落を報告した場合は、ランダムなサイトからファイルをダウンロードするのではなく、そのアプリを再インストールするか、Microsoft Visual C++…
.DLL の詳細を開く →品質と注意点
.sysと.dllはどちらも PE コンテナ(«MZ» ヘッダー)を使用しますが、PE サブシステムフィールドがドライバをカーネルモードとしてマークします。ファイル名を変更してもこれは変わりません。.dllに名前変更されたカーネルモードドライバは、ユーザーモードライブラリとしてロードされません。Windows は PE サブシステムフィールドをチェックし、拒否します。- ユーザーモードコードでドライバ機能が必要な場合は、ハードウェアベンダーが
.sysファイルと一緒に提供している対の.dllを探してください。
よくある質問
`.sys` を `.dll` に名前変更してロードできますか?
.dll に名前変更されたカーネルモードドライバは、ユーザーモードライブラリとしてロードされません。