Windows Filtering Platform Sample をインストールする

皆さん、こんにちは。A寿です。   突然ですが、皆さんは、約 2 時間川下りしたことはありますか?・・・このお話にご興味のある方は本文の最後の【閑話】までどうぞ。   さて、今回は、Windows Filtering Platform Sample を Windows 10 にインストールしてみたいと思います。 具体的な手順として、以下の流れで進めます。   (1) サンプルの入手 (2) Visual Studio 2015 でソリューションファイルを開く (3) 構成とプラットフォームを編集 (4) ユーザーモードアプリケーション、ライブラリ、サービスのランタイムライブラリを設定 (5) サンプルインストールスクリプトの再起動の設定を編集 (6) ソリューションのビルド (7) ビルドで生成されたモジュールの確認とテスト署名 (8) ターゲット PC の準備 (9) ドライバとサービスのインストール (10) ユーザーモードアプリケーションの実行 (11) TraceView でのログ採取   それでは、以下、各手順の詳細を説明していきます。 前提として、開発用 PC として Windows 10 x64 (build 10586)、テスト用ターゲット PC…


Windows 10 Driver Verifier の「コードの整合性チェック」フラグについて

こんにちは、JS です。今回は、ドライバー検証用ツール Driver Verifier にて Windows 10 で新しく追加された機能について、紹介していきたいと思います。   Driver Verifier は、OS に標準で含まれているドライバー検証用のツールで、さなえすさんの記事「ドライバー検証ツール」でも使い方などが紹介されています。 この Driver Verifier ですが、Windows 10 では新しいフラグが追加されました。「コードの整合性チェック」と呼ばれるものです。 「コードの整合性チェック」フラグが何を検証するか、そしてフラグをどのように設定するのかをについて、以下に記載しましたので、ご参照いただけたらと思います。   「コードの整合性チェック」フラグは、どの動作をチェックするのか? 「コードの整合性チェック」フラグは、対象ドライバーに対し、カーネル メモリ内に「書き込み可能」と同時に「実行可能」なコードがあるかどうかを確認します。前述のようなコードが見つかった場合、Bug Check が作動し、BSoD と共にダンプ ファイルが作成されます。 ダンプ ファイルを WinDbg で開き、!analyze -v を行うと以下の記述が確認できます。   0: kd> !analyze -v ******************************************************************************* *                                                                             * *                        Bugcheck Analysis                                    * *                                                                             * *******************************************************************************   DRIVER_VERIFIER_DETECTED_VIOLATION (c4) A device driver…


ドライバー インストール時のセキュリティ ダイアログにまつわるお話

(更新 2016/09/12) – Windows 7 で見られるダイアログ表示に関連した問題について追記しました。本文をお読みの上 ご確認ください。 こんにちは。JS です。 今回は、ドライバーのインストール時における証明書の認証について、お話をします。   ~~~   多くのユーザーは、ドライバーをインストールする時に、以下の様なダイアログを見たことがあるかと思います。     ただ、どのドライバーも必ず上記のようなダイアログが表示されるというわけではなく、表示されないままインストールの処理が行われるものもあります。その理由は、署名にあります。   署名されているドライバーには、通常、以下 2 種類のうちいずれかの署名が付与されています。 1.    マイクロソフトより付与された、WHQL 署名 2.    ドライバー開発者自身で付与された、Authenticode 署名 (自己署名とも呼びます)   このうち、2 の Authenticode 署名がされたドライバーをインストールする場合、インストール時にダイアログが表示されます。   最近では、このダイアログについて、どういった理由によって発生しているのかお問い合わせをいただいています。なので、その疑問を解消するために、今回は、このダイアログ周りについて解説したいと思います。   なぜダイアログが発生するのか? ダイアログを見ると、「<開発元名> からのソフトウェアを常に信頼する」と記述されているチェックボックスがあります。また、ダイアログ下部においても、「信頼する発行元からのドライバーソフトウェアのみをインストールしてください。」といった文言があります。   上記 2 点の記述は、いいかえますと、インストールしようとしているドライバーの署名に使った証明書は、ユーザーにとってまだ信頼されたものとして判断されていないことを意味しています。   ダイアログが表示される理由は、マイクロソフトがセキュリティ上の措置として、信頼されたものとして判断されていない発行元からの証明書については、一度ユーザーの確認を取る為に行っているためです。 このような証明書を利用した場合でも、OS は証明書の発行者を辿り、クロス証明書により、最終的にはマイクロソフトが信頼している証明機関が発行したものと確認できる為、ドライバーのインストールが可能になります。ただ、実際にインストール時の検証で確認される発行先は、認証機関ではなく、ドライバーの開発元となるため、OS は、その開発元を信頼されたものとして、自動的には判断することができません。したがって、ダイアログが表示されます。 なお、チェックボックスを有効にした状態で [インストール]ボタンを押すと、今後 同じ発行元からの証明書を利用して署名したドライバーをインストールする際は、ダイアログは表示されず、自動的にインストールの処理が行われます。   では次に、OS がどのように証明書が信頼できると判断するかについて説明します。  …


Windows 10 と SHA-1 廃止ポリシーによるドライバー署名への影響について

  [更新] 2 月 17 日 に、ダッシュボードで行われる署名の詳細に関する記述を変更しました。また、ダッシュボードの運用に関するご質問についてのご案内を追加しました。 [更新] 1 月 28 日 に、Windows 10 で無効となる署名について、ユーザーモードドライバーに関する記述を追加しました。   こんにちは。JS です。   現在、ドライバーの署名に関する今後の対応について、ドライバー開発者の多くは何かしらの質問を抱えているかもしれません。 Windows 10 のリリースに合わせて署名ポリシーに大きな変更があり、また、SHA-1 ハッシュ アルゴリズムを利用しているコード署名用証明書 (以下 SHA-1 証明書) の廃止についても、適用が開始される 2016 年 1 月 1 日が近づいているので、今後 どのような方法でドライバーの署名を行うべきか、数々のお問い合わせをいただいております。   そのような質問を出来る限り解消できるよう、現在 Windows ではどのようにドライバー署名を利用していて、今後どのように利用する予定なのか、今一度 まとめた上でご紹介したいと思います。   このエントリでは、大きく分けて以下 3 つのカテゴリーに関するご説明をさせていただきます。 1.    Windows 10 のドライバー署名ポリシーについて 2.    SHA-1 廃止ポリシーによるドライバー署名への影響について 3.    Windows ハードウェア ダッシュボードの利用について…


Windows 10 でサンプル ドライバーをビルドするまで

こんにちは。JS です。   Windows 10 がリリースされ、それに合わせて、Windows Driver Kit (以下 WDK) をはじめとする Windows 用の Kit も新しいバージョンが発表されました。今回は、その中で、Windows 10 でドライバーのビルドができるまでの必要なステップを紹介していきたいと思います。   ドライバー開発の観点から見ると、Windows 8.1 時代からツールの機能にそこまで大きな変更点はないので、このエントリは、ツールのインストールに続いて、サンプルドライバーのビルドまでを紹介します。 必要なステップは大きく分けて以下の 4 つです。   1. Visual Studio 2015 のインストール 2. Windows 10 SDK のインストール 3. Windows Driver Kit 10 のインストール 4. サンプル ドライバーのビルド   では、それぞれのステップを以下にご説明いたします。   1. Visual Studio 2015 のインストール Windows 10 に合わせてリリースされた…


Windows 8.1 のプリンター用デバイス アプリについて

こんにちは。JS です。   以前、まさかたさんが「プリンター用デバイスアプリのサンプルを動かしてみる」で Windows 8 におけるプリンター用のデバイスアプリについて紹介しておりました。Windows 8.1 になって、サンプルの動かし方が少々変わりましたので、改めてご紹介したいと思います。   手順は、前回と同じく、以下の 4 つに分けられています。 ① ダミーの V4 Printer Driver の作成とインストール ② サンプル デバイス アプリのビルドとインストール ③ デバイス メタデータ パッケージの作成とインストール ④ デバイス アプリの動作確認   ①v4 Printer Driver 作成とインストール まず、Visual Studio 2013 のプロジェクトテンプレートのウィザードを使って、ダミー用の v4 Printer Driver を作成します。基本的な v4 Printer Driver の基本的な作成方法は、以下の MSDN ドキュメントでも公開されておりますが、本記事で改めてご案内したいと思います。   Building a Basic v4 Printer…


NMake2MSBuild

— UPDATE 2016/03/09 — Nmake2MsBuild は WDK 10 Version 1511 にて削除されました。理由といたしましては、本ツールが、ドライバ開発環境がコマンドラインから Visual Studio に移行した WDK 8 環境への移行を想定した一時的なツールであるためです。 Nmake2MsBuild The Nmake2MsBuild tool was removed from the WDK starting in Windows 10, Version 1511. 今後は、Visual Studio を用いてドライバのテンプレートプロジェクトにファイルを追加する方法をご利用ください。こちらの方法も驚くほど簡単ですので、一度お試しいただければ幸いです!  Creating a Driver From Existing Source Files To convert a driver that was created with a previous version of the…


USB 3.0 カーネルデバッグ

皆様、いかがお過ごしでしょうか。WDK サポートチームのI沢(アイザワ)です。    今回は、USB3.0 経由でカーネルデバッグを行うお話です。最近の PC には USB3.0 ポートが搭載されているものもかなり増えてきておりますので、是非これまでの USB2.0 よりワンランク上のデバッグ接続方法に移行いたしましょう!単純に USB2.0 に比べて通信速度が速いのと、デバッグ接続方法の選択肢が増えるので、あらかじめ環境を用意しておきたいものです。具体的な接続方法につきましては、基本的に USB2.0 で接続する際の設定とほぼ変わりません。USB2.0 経由での接続方法は、K 里さんの記事ですでに案内しておりますので、こちらをご参照ください。   USB 2.0 カーネル デバッグ 前編 http://blogs.msdn.com/b/jpwdkblog/archive/2009/03/10/usb-2-0.aspx USB 2.0 カーネル デバッグ 後編 http://blogs.msdn.com/b/jpwdkblog/archive/2009/03/13/usb-2-0-2.aspx USB 2.0 カーネル デバッグ その後 http://blogs.msdn.com/b/jpwdkblog/default.aspx?PageIndex=3   では、USB2.0 経由での接続となにが異なるかというと、当然ですがハードウェアが異なります!これを一つずつ見ていきましょう。   ■ ホスト PC の USB ホストコントローラ デバッグに使用可能なホスト PC および ターゲット PC のUSB ホストコントローラにはそれぞれ要件があります。要件を満たしているか確認を行なうためにUSB ポートの情報を確認する必要があるのですが、それには USBView…


ユニバーサルドライバーのビルド

※    2015 年 4 月 23 日現在の時点で、本稿にてご案内差し上げております動作をご確認いただくには Windows Insider Program に参加している必要がございます。また、記載されている内容は将来的に変更される可能性がございますことを、なにとぞご了承ください。   皆様、お久しぶりです。WDK サポートチームのI沢(アイザワ)です。   先日、Windows Driver Kit (WDK) 10 が公開され、Windows 10 Technical Preview 用のユニバーサルドライバーがビルドできるようになりました。ユニバーサルドライバーの概要については、以下のサイトを参照ください。今回は、Windows 10 の製品版に備えて、WDK 10 のインストールを行い、ユニバーサルドライバーのビルドを行うところまでをご案内いたします。   ユニバーサル ドライバーの概要 https://msdn.microsoft.com/ja-jp/library/windows/hardware/dn941241(v=vs.85).aspx   なお、今回の記事では新規テンプレートをベースにご説明しますので、既存ドライバの Universal Driver への移行にご興味のある方は、上記サイトの「既存のドライバー プロジェクトのユニバーサルドライバー プロジェクトへの変換」の項目をご参照ください。   ツールのインストール 以下のサイトに記載されている手順に従って、すべてのツールをインストールしましょう。インストールするツールが不足していると上手くビルドできない可能性がありますので、手順に沿ってインストールしてください。どうしても上手くいかない場合につきましては、今一度手順に沿って各ツールをインストールしなおしていただくことをお勧めいたします。   Windows 10 Technical Preview ハードウェア ツール http://dev.windows.com/ja-jp/featured/hardware/windows-10-hardware-preview-tools   ユニバーサルドライバのビルド 各種ツールのインストールが完了したら、まずは Visual…


Windows 7 での SHA-2 コード署名サポート

[更新] ご案内しておりました SHA-1 ハッシュ アルゴリズムの廃止ポリシーにつきまして、現時点では、ドライバー署名に利用される証明書がポリシーの対象外となりましたことをご案内します。最新の廃止ポリシーに関するご案内は、以下のサイトをご参照ください。 Windows Enforcement of SHA1 Certificates <http://social.technet.microsoft.com/wiki/contents/articles/32288.windows-enforcement-of-sha1-certificates.aspx> こんにちは、JS です。今回は、Windows 7 と Windows Server 2008 R2 で SHA-2 コード署名をしたドライバーをご利用いただけるようにするために、以下のセキュリティ アドバイザリが公開されましたことを報告いたします。   マイクロソフト セキュリティ アドバイザリ: Windows 7 および Windows Server 2008 R2 で SHA-2 コード署名サポートを利用可能 (2015 年 3 月 10 日) <https://support.microsoft.com/en-us/kb/3033929/ja>   マイクロソフト セキュリティ アドバイザリ 3033929 <https://technet.microsoft.com/ja-jp/library/security/3033929>   このセキュリティ アドバイザリによって、今まで SHA-1 の署名にしか対応していなかった…