備忘録

備忘録

Windows Kernel Driver で HelloWorld する方法

Ⅰ. はじめに

タイトルの通り「Windows Kernel Driver で HelloWorld する方法」です。
この記事では Kernel-Mode Driver Framework (KMDF) を利用した場合の例を記事内容とします。

Ⅱ. やり方

2. Kernel Mode Driver, Empty(KMDF) の新規プロジェクトを作成する

f:id:kagasu:20191229133413p:plain

3. サンプルプログラムを書く

Source.cpp

#include <ntddk.h>

extern "C" NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
{
  UNREFERENCED_PARAMETER(DriverObject);
  UNREFERENCED_PARAMETER(RegistryPath);

  DbgPrint("Hello, World!");

  return STATUS_SUCCESS;
}
4. 実行する
sc create DriverTest binPath=c:\DriverTest.sys type=kernel
sc start DriverTest

実行結果

f:id:kagasu:20191229134002p:plain:h300

FAQ

Q. 以下のメッセージが表示され、ドライバの実行ができない
このファイルのデジタル署名を確認できませんでした。
最近のハードウェアやソフトウェアの変更により、不正確に署名されたファイルか壊れたファイルがインストールされたか、
または不明なところから悪意のあるソフトウェアがインストールされた可能性があります。

A. 以下の記事を参考に、Windowsをテストモードとして起動してください
https://kagasu.hatenablog.com/entry/2019/12/29/131215

また、以下の記事の方法でも可能です
https://kagasu.hatenablog.com/entry/2019/12/29/141220