locked
タスクマネージャのプロセス名の表記について RRS feed

  • 質問

  • あるアプリケーションのプロセスをタスクマネージャでみたときに

    イメージ名が通常時と違う表記(英数字混じりの意味がなさそうな文字列)になっていたことがありました。

    (なお、今のところ再現していません。)

    イメージ名は半角英字で11文字なのですが、これがアプリケーション側の

    問題or仕様なのか、それともWindowsのタスクマネージャ上の問題or仕様

    なのか切り分けをしたいと思っています。

    恐れいりますが、Windowsのタスクマネージャの仕様でプロセス名の表記の制限などあるか

    どなたかご存じではないでしょうか?

    [環境]

    OS:Windows Server 2008 R2

    2014年7月2日 6:57

回答

  • タスク マネージャ [プロセス] タブの "イメージ名" に表示される各プロセス名は、NT カーネルが管理する EPROCESS 構造体というプロセス オブジェクト データ内に保持されている情報を参照しているようです。

    ----------------------------------------------------
    EPROCESS
    http://msdn.microsoft.com/en-us/library/windows/hardware/ff544273(v=vs.85).aspx
    ----------------------------------------------------

    タスク マネージャ [プロセス] タブの "イメージ名" に表示される名前は、基本的に EPROCESS 構造体内に保持されている実行ファイル名 (.exe) に該当するようです。
    ですので通常の場合、"イメージ名" カラムに表示される名前は、"イメージ パス名" カラムの末尾の実行ファイル名と一致するはずです。
    もし "イメージ名"の名前と"イメージ パス名" 末尾の実行ファイル名が一致していたのであれば、それは正常な状態。。。ということになると思います。
    逆に異なっていたのであれば、誰かが明示的に書き換えたか、あるいはメモリが破壊されたかのどちらかになると思いますが、その場合でもさらにユーザー モード空間/カーネル モード空間のどちら側で行われた (発生した) かにより、その要因は異なってきます。
    たとえば、EPROCESS 構造体データはカーネル モード空間に割り当てられたデータ オブジェクトなので、一般的にはユーザー モード空間側のアプリケーションから直接アクセスすることはできませんし、タスク マネージャでのみ発生する現象であるなら、第三者による DLL インジェクション等を考慮する必要が生じるので、ご提示されている状況説明だけから「これが原因」と特定することは困難だと思います。
    ただ個人的には、「アプリケーション側の問題or仕様」「Windowsのタスクマネージャ上の問題or仕様」いずれにも該当しないような気がします。

    なお、EPROCESS 構造体の詳細はマイクロソフトからも公開されていませんが、WinDBG 等のカーネル デバッガを使用すれば、その中を覗くことはできます。
    ちなみに、WinDBG で任意のプロセスの EPROCESS 構造体データ内の実行ファイル名部分を書き換えると、タスク マネージャでの表示も変えることができます。
    ですので、ご質問されている現象の根本原因を特定したいのであれば、現象発生時の「完全メモリ ダンプ」を採取し、それを解析することをお勧めします。
    (実際の構造体メンバに関しては、マイクロソフトは非公開というスタンスの様なので、申し訳ありませんがここで詳細を示すのは控えさせていただきます。)

    • 回答の候補に設定 佐伯玲 2014年7月3日 0:15
    • 回答としてマーク 佐伯玲 2014年7月11日 4:11
    2014年7月2日 9:12

すべての返信

  • タスク マネージャ [プロセス] タブの "イメージ名" に表示される各プロセス名は、NT カーネルが管理する EPROCESS 構造体というプロセス オブジェクト データ内に保持されている情報を参照しているようです。

    ----------------------------------------------------
    EPROCESS
    http://msdn.microsoft.com/en-us/library/windows/hardware/ff544273(v=vs.85).aspx
    ----------------------------------------------------

    タスク マネージャ [プロセス] タブの "イメージ名" に表示される名前は、基本的に EPROCESS 構造体内に保持されている実行ファイル名 (.exe) に該当するようです。
    ですので通常の場合、"イメージ名" カラムに表示される名前は、"イメージ パス名" カラムの末尾の実行ファイル名と一致するはずです。
    もし "イメージ名"の名前と"イメージ パス名" 末尾の実行ファイル名が一致していたのであれば、それは正常な状態。。。ということになると思います。
    逆に異なっていたのであれば、誰かが明示的に書き換えたか、あるいはメモリが破壊されたかのどちらかになると思いますが、その場合でもさらにユーザー モード空間/カーネル モード空間のどちら側で行われた (発生した) かにより、その要因は異なってきます。
    たとえば、EPROCESS 構造体データはカーネル モード空間に割り当てられたデータ オブジェクトなので、一般的にはユーザー モード空間側のアプリケーションから直接アクセスすることはできませんし、タスク マネージャでのみ発生する現象であるなら、第三者による DLL インジェクション等を考慮する必要が生じるので、ご提示されている状況説明だけから「これが原因」と特定することは困難だと思います。
    ただ個人的には、「アプリケーション側の問題or仕様」「Windowsのタスクマネージャ上の問題or仕様」いずれにも該当しないような気がします。

    なお、EPROCESS 構造体の詳細はマイクロソフトからも公開されていませんが、WinDBG 等のカーネル デバッガを使用すれば、その中を覗くことはできます。
    ちなみに、WinDBG で任意のプロセスの EPROCESS 構造体データ内の実行ファイル名部分を書き換えると、タスク マネージャでの表示も変えることができます。
    ですので、ご質問されている現象の根本原因を特定したいのであれば、現象発生時の「完全メモリ ダンプ」を採取し、それを解析することをお勧めします。
    (実際の構造体メンバに関しては、マイクロソフトは非公開というスタンスの様なので、申し訳ありませんがここで詳細を示すのは控えさせていただきます。)

    • 回答の候補に設定 佐伯玲 2014年7月3日 0:15
    • 回答としてマーク 佐伯玲 2014年7月11日 4:11
    2014年7月2日 9:12
  • こんにちは、tk-1732さん
    フォーラムオペレータの佐伯 玲 です。

    その後の状況はいかがでしょうか?
    お馬鹿さんからとても詳細な情報が寄せられております。
    ご参考になるのではないかと思い私のほうから「回答としてマーク」とさせていただきました。

    寄せられた情報に関連してご不明な点等ありましたらこちらのスレッドへ引き続きご返信くださいませ。


    宜しくお願い致します。

    TechNet Community Support 佐伯 玲

    2014年7月11日 4:11
  • お馬鹿様

    詳細な回答ありがとうございます。

    同様の現象が出た際は、メモリダンプから調査していきたいと思います。

    佐伯様

    ご確認、および回答へのマークありがとうございます。

    2014年7月16日 5:46