2012-03-07 22 views
0

現在、私はユーザーのパスワードを保護できるWindowsドライバを開発しています。ユーザが起動するとメッセージを1つ表示したい運転者が作業を開始したことを示す保護。しかし、このメッセージは、実際にはドライバがまったく動作していない間に、悪意あるソフトウェアがこのメッセージを偽造する可能性がある場合に、ユーザー空間からアクセスすることはできません。このメッセージはユーザーによって定義されているため、ドライバに書き込むことはできません。 インターネットで検索しましたが、失敗しました。私は起動パラメータを編集するためにbcdedit.exeを使用しようとしましたが、私はドライバでこのメッセージを取得する方法を知りません。誰もが良いアイデアを持っていますか?ユーザースペースアプリケーションがメッセージにアクセスできない場合、このメッセージはユーザーからのものです。ありがとう!カーネルでメッセージを表示するにはどうすればいいですか?

+0

あなたのドライバーは実際にフィルターですか?コンピュータが侵害された場合、悪意のある人はあなたのドライバを単に削除して、表示させたい "セキュリティ保護された"メッセージの視覚的基本擬似に置き換えることができます。 – ixe013

+0

私のドライバはキーボードフィルタです。カーネルは信頼され、ユーザー空間は信頼されていません。メッセージはアプリケーションには知られていないため、表示するメッセージはわかりません – yorath

答えて

0

(ここで答えですが、脅威モデルについての脚注を読む)あなたのフィルタでは

  1. FltCreateCommunicationPortを呼び出します。 PFLT_MESSAGE_NOTIFY MessageNotifyCallbackパラメータは、メッセージングコールバック関数へのポインタです。
  2. あなたのクライアントは、あなたのドライバのコールバック関数(MessageNotifyCallback)ではドライバ
  3. にメッセージを送信するためにFilterSendMessageを呼び出して、ユーザーが選択したメッセージを格納します。メモリの整列に注意してください。
  4. 必要に応じて、クライアントはFilterSendMessageを再度呼び出し、今回はドライバに送信した文字列を取得します。
  5. FltCloseCommunicationPortとその他のクリーンアップ関数を呼び出します。

WDKインストールのsrcディレクトリのfindstr /s FltCreateCommuncationPort *.cタイプ。あなたのアイデアを試してみるためにMicrosoftのフィルタサンプルを見つけると、すぐに起動して実行できます。完了したら作業コードをフィルタにコピーします。

しかし、はあなたのスレッドモデルについて考えてください。私は何かを理解していない(かなり可能性があります)、またはこれは努力の価値がないことです。ドライバがインストールされ、動作していて、デジタル署名が有効であることを確認してください。

あなたは、最初に正当なドライバに文字列(表示するメッセージ)を送信していることをユーザーモードコードがどのように知っているかを教えてOPを更新できますか?

関連する問題