Windows system >> Windowsの知識 >  >> Windows 7システムチュートリアル >> Win7システムの基本 >> Win 7の新機能:コンソールホスト(ConHost.exe)

Win 7の新機能:コンソールホスト(ConHost.exe)

  

今日は、Windows 7 /Windows Server 2008 R2の新しい機能であるコンソールホスト(ConHost.exe)について紹介します。

実際、私たちは通常のユーザーであろうと企業の管理者であろうと、毎日のWindowsアプリケーションと運用および保守プロセスでコンソールアプリケーションを多かれ少なかれ使用しています。コンソールアプリケーションにはユーザーインターフェイスがありませんので、コマンドプロンプト(DOSではないCMD、多くの人が混乱しています)の入力と出力が必要です。

では、皆さんはあちこちで考えていますが、Windowsにはどのようなコンソールアプリケーションがありますか?

実際、最も典型的なものはcmd.exe、nslookup.exe、telnet.exeです。

以前のバージョンのWindowsでは、デスクトップ上での実行時に、GUI以外のアクティビティを表すすべてのアプリケーション(コンソールアプリケーション)がシステムプロセスCsrss.exeによって調整されていました。コンソールアプリケーションが文字を受け取る必要があるとき、Kernel32にCSRSSを呼び出すためのLPCを生成させるために、小さな「コンソールAPI」がKernel32.dllで呼び出されます。この時点でCSRSSはコンソールウィンドウの入力キューをチェックして検証し、キャラクタモードの結果をKernel32経由でコンソールアプリケーションに返して関連付けます。初期のWindowsバージョンでのコンソールアプリケーションの処理メカニズムは、次の図に示すとおりです。

この処理メカニズムは、すでに問題を引き起こしています。コンソールアプリケーションでさえ、通常のユーザーのコンテキスト内にあります。で実行されますが、Csrss.exeは常にローカルシステムアカウントのアクセス許可で実行されています。そのため、 "悪者"によって開発されたマルウェアは、ローカルシステムアカウントの特権によって実行されるCsrss.exeを介してより多くの特権を取得する可能性があります。この攻撃モードはShatter Attackと呼ばれています。

Win7とWindows Server 2008 R2の時代には、ConHost(コンソールホスト)とコンソールプログラムが実行される間、すべてのコンソールアプリケーションは実行するために新しいコンテキストプロセスConHost.exeに入れられました。同じセキュリティレベルでは、処理のためにCSRSSにLPCメッセージ要求を発行するのではなく、ConHostを要求します。したがって、メッセージ要求を利用して特権を自動的にエスカレーションさせようとするアプリケーションは成功しません。次の図は、Windows 7およびWindows Server 2008 R2で使用されている新しいメカニズムを示しています。

ConHostはコンソールアプリケーションのI /O処理の恒久的な変更を置き換えます。ユーザーはレジストリを渡すことができません。またはグループポリシーにより、Windowsをレガシモードコンソールに復元する動作(メカニズム)が強制されます。したがって、ユーザーはWindows 7またはWindows Server 2008 R2にアップグレードする前にアプリケーションを完全にテストする必要があります。アプリケーションの機能の一部はGUIを介して実装されていますが、データは依然としてコンソールまたはバックグラウンドで他の機能インターフェースを介してバッチで処理されます。したがって、移行またはレベル化の前に、包括的なアプリケーション機能テストを実施する必要があります。

Windows 7でアプリケーションが正常に使用できない場合は、まず問題が発生するかどうかを確認するために管理者権限で再度テストし、実際にはPRocess Monitorを使用してファイルまたはレジストリへのアプリケーションのアクセスを監視します。権限が正常かどうか上記の問題を除外してもアプリケーションがまだ正しく機能しない場合は、ISVまたはその開発者に連絡することを検討してください。

アプリケーションがクラッシュした場合、対応するクラッシュダンプファイルは開発者とISVにとって最も有益なものです。アプリケーションが応答を停止した場合は、ADPlusとそれに関連するConHost.exeプロセスDumpをクロールすることを試みることができます。たとえば、ユーザーがCMDウィンドウからTelnetを起動すると、Telnet.exeはCmd.exeの子になります。この場合、ConHost.exeホストは親と子の両方のメッセージインスタンスを処理します。 Process Explorerを使用すると、ConHost.exeがどのプロセスを処理しているかを確認できます。

Windows 7リソースモニター機能に付属の "Analyze Waiting Chain"機能を使用してConHost.exeプロセスを表示することもできます。申し込み手続き:

最後に、移行前の申し込みが完全にテストされたことを忘れないでください。


Copyright © Windowsの知識 All Rights Reserved