メモマーゲーター

NTSystemDebugControlを使用してメモリダンプを実行します。
今すぐダウンロード

メモマーゲーター ランキングとまとめ

広告

  • Rating:
  • ライセンス:
  • Freeware
  • 出版社名:
  • Arne Vidstrom
  • オペレーティングシステム:
  • Windows All
  • ファイルサイズ:
  • 7 KB

メモマーゲーター タグ


メモマーゲーター 説明

Memimagerアプリケーションは、NTSystemDebugControlを使用してメモリダンプを実行するツールであるように設計されています。 NTSystemDebugControlを使用して投棄するために使用します 制御コード10の場合、次のレイアウトを入力バッファとして使用します。 - DWORD PhysicalAddress; - DWORD Reserved1; - void *バッファ - DWORDの長さ; 次に、バッファをポイントし、長さ4096を指定し、その内容をコピーしたいページのアドレスへのポイント物理アドレスをポイントします。その後、NTSystemDebugControlを実行し、すべてがうまくいった場合、バッファに物理ページ内のデータのコピーが含まれています。実際にはかなり簡単です。 NTSystemDebugControlの中 NTSystemDebugControlは、NTSystemDebugControlがキャッシングの問題を処理するかどうかを理解するために、カーネルに飛び込みを受ける必要があります。カーネルはNTSystemDebugControlというルーチンをエクスポートします。これには、コントロールコードに基づいて正しい機能へのディスパッチをタスクしたSWITCHステートメントが含まれています。以下では、コードのすべての小さな詳細については説明しません。最初の理由は、私たちが見ているものに関連しない多くの詳細があることです。 2番目のコードはコードを区別していませんが、(Windows Server 2003 SP0カーネルから)分解の関連部分のみが続きます。 コード処理制御コード10は、常駐している文書化されていないルーチン_exlockUserBufferを呼び出して、それらを常駐し、それらをメモリ内にロックし、(パラメータとして渡されたポインタで)それを指すシステムスペース仮想アドレスを返します。その後、_kdpcopymemoryChunksという名前の別の文書化されていない関数が呼び出されます。それに渡されたパラメーターは、私たちのバッファを指すシステムスペース仮想アドレス、コピーするバイト数、およびコピーするアドレス(physicAddress)を指します。 もう1つの文書化されていない関数は、_mmdbgCopymemoryと呼ばれます。この関数はデータの実際のコピーを実行します。しかし、それがコピーすることができる前に、物理アドレスの代わりにソースの仮想アドレスを持つ必要があります。したがって、それは私たちの最後に文書化されていない関数を呼び出します:_midBgTranslatePhysicalAddress。今、私たちは本当に私たちの質問への答えを閉めています。 _midBgTranslatePhysicalAddressは、物理アドレスをパラメータとして受け取ります。その後、_validkernelpteという変数を使用します。これは、カーネルPTEの一種のテンプレートとして機能します。テンプレートからのフラグは物理アドレスと組み合わされて、コピーしたいページを指すPTEを形成します。その後、PFNデータベースに索引付けされて、当社のソースページに対応するエントリが見つかります。このエントリでは、カーネルはu3.e1メンバーのCacheattributeフラグを調べます。その後、CacheAttributeフラグはPTE内のPATインデックスを設定するために使用されます。今私たちは本当に私たちの答えを持っていますが、とにかくもう少し小さなビットを続けるでしょう。カーネルが構築されたPTEは、カーネル変数_mmdebugpteによって指摘された場所にコピーされました。最後に、この関数はマッピングにPTEを使用する仮想アドレスを返します。今すぐ_MMDBGCopyMemoryは、仮想アドレスのみを使用して物理ソースページからのデータを自由にコピーすることができます。


メモマーゲーター 関連ソフトウェア