2009-07-20 17 views
2

プロセスのダブルリンクされたリストのためのFlinkとBlink(Forward LinkとBackward Link)があります。プロセス識別子があります。これらのすべては、PEPROCESSまたは_KPROCESSとして参照される構造体にパックされています。しかし、それらはどこにあり、この構造の他の要素は何ですか?Windowsプロセス記述子

答えが短くても単純でもない場合は、ドキュメントやヘッダーファイルにない場合はどこで参照を見つけることができますか? (私は見て、おそらく何かを見落とし場所はどれ。)

答えて

2

EPROCESS reference

EPROCESS構造は、プロセスのプロセス 対象となって不透明 構造です。

一部のルーチンは、のような PsGetProcessCreateTimeQuadPartは、 が上に動作するプロセスを識別するために EPROCESSを使用しています。ドライバは ために、現在のプロセスを処理するオブジェクトへのポインタを取得するために PsGetCurrentProcessルーチンを使用することができ、指定 ハンドルに関連付けられているプロセスオブジェクト へのポインタを取得 にObReferenceObjectByHandleルーチンを使用することができます。 PsInitialSystemProcess グローバル変数は、システムプロセスのプロセス オブジェクトを指します。

プロセスオブジェクトは、 オブジェクトマネージャオブジェクトです。ドライバ ObReferenceObjectおよび ObDereferenceObjectなどのオブジェクトマネージャルーチンを使用して、 オブジェクトの参照カウントを維持する必要があります。

これは、プロセス構造のメンバーが何であるか気にする必要がないことを意味します。それにもかかわらず、プロセス構造のレイアウトを詳述する情報源がある。

このbookには、個々のメンバーの詳細な説明があります。

+0

実際に私はpoiについて完全に同意できません好奇心のせいで、 "知る必要がある"のnt。 もう一度ありがとうございます。 –

0

EPROCESS構造体は、Windowsデバッグシンボルで文書化されています。

windbgでカーネルに接続しているときに、デバッグシンボルが正しく設定されていることを前提に、 "dt nt!_EPROCESS"コマンドを発行すると、接続しているカーネルのバージョン固有のEPROCESS構造体に。

0

EPROCESS構造体は特に不透明で、ビルドデバッグシンボルによってエクスポートされたデータ型を調べることによってのみ、ビルドごとに検出できます。

だからあなたができる次:あなたがしたいと思います場合は、そのサンプルメモリの1に

  1. ダウンロードvolatilityhere
  2. 実行volatilityはダンプしたり、独自のダンプ。
  3. volshellを使用しています。PYプラグインは、

    dt('_EPROCESS')

これは、Windowsカーネル

にEPROCESSと様々な他の構造体の構造の出力を生成するか、あなただけの構造体の内容を見ることができるの実行here

Thisも有用かもしれない

+0

もちろん、他のデバッガもあります –

関連する問題