2010-11-19 19 views
3

VMMapでプロセスを見ると、メモリマップファイルのファイル名がわかります。私は今WinDbgでメモリダンプを解析しており、メモリマップされたファイルのファイル名を知りたいと思います。 WinDbgまたは.dmpファイルからこれをどのように見つけることができますか?WinDbgでどのようにメモリマップファイルの名前を見つけるのですか?

+0

この管理コードまたはネイティブコードですか? –

+0

それは混合されています。ファイルをマップするコードは、マネージコードではありません。それはネイティブdllです。 – Sean

答えて

2

基本的には、メモリマップファイルのハンドルを取得すると、!handle <address> 0xFコマンドを使用して関連するデータ(名前を含む)を表示できます。
特定のハンドルがなく、プロセス内の既存のメモリマップファイルの名前を表示する場合は、次のコマンドを使用できます。!handle 0 0x4 Section。あなたは実際のファイル名を表示したい場合は、システムオブジェクトに関するいくつかの情報を表示するには、カーネルデバッガで!handleコマンドを発行することができ

Handle 6bc 
    Name   \BaseNamedObjects\NLS_CodePage_862_3_2_0_0 
Handle 6cc 
    Name   \BaseNamedObjects\MyMap 
Handle 794 
    Name   \BaseNamedObjects\Cor_Private_IPCBlock_v4_4092 
Handle 798 
    Name   \BaseNamedObjects\Cor_SxSPublic_IPCBlock_4092 
Handle 7cc 
    Name   \BaseNamedObjects\ShimSharedMemory 
5 handles of type Section 

:あなたはこの1つのような出力を提供する必要があります
あなたのファイルハンドルに対応する。たとえば
:!

lkd> !handle 0 0x3 2c4 File 

Searching for Process with Cid == 2c4 
Searching for handles of type File 
PROCESS 89242da0 SessionId: 0 Cid: 02c4 Peb: 7ffdd000 ParentCid: 0b48 
    DirBase: 0a640dc0 ObjectTable: e1c361d0 HandleCount: 83. 
    Image: ConsoleApplication1.exe 

Handle table at e11f6000 with 83 entries in use 

000c: Object: 86a74868 GrantedAccess: 00100020 (Inherit) Entry: e11f6018 
Object: 86a74868 Type: (89e2a730) File 
    ObjectHeader: 86a74850 (old version) 
     HandleCount: 1 PointerCount: 1 
     Directory Object: 00000000 Name: \Foo\Bar {HarddiskVolume2} 

06d0: Object: 8669c4b8 GrantedAccess: 00100083 Entry: e11f6da0 
Object: 8669c4b8 Type: (89e2a730) File 
    ObjectHeader: 8669c4a0 (old version) 
     HandleCount: 1 PointerCount: 1 
     Directory Object: 00000000 Name: \wubildr {HarddiskVolume1} 

06d4: Object: 86bf1f58 GrantedAccess: 00120089 Entry: e11f6da8 
Object: 86bf1f58 Type: (89e2a730) File 
    ObjectHeader: 86bf1f40 (old version) 
     HandleCount: 1 PointerCount: 1 
     Directory Object: 00000000 Name: \WINDOWS\assembly\pubpol6.dat {HarddiskVolume1} 

06dc: Object: 892c43e0 GrantedAccess: 00120089 Entry: e11f6db8 
Object: 892c43e0 Type: (89e2a730) File 
    ObjectHeader: 892c43c8 (old version) 
     HandleCount: 1 PointerCount: 1 
     Directory Object: 00000000 Name: \WINDOWS\assembly\NativeImages_v4.0.30319_32\index1fe.dat {HarddiskVolume1} 

06ec: Object: 892cf1f8 GrantedAccess: 00100001 Entry: e11f6dd8 
Object: 892cf1f8 Type: (89e2a730) File 
    ObjectHeader: 892cf1e0 (old version) 
     HandleCount: 1 PointerCount: 1 
+0

セクションを開いているセクションにハンドルを持たなくても、セクションをマップすることができます。 – wj32

3

は-f対処:!のFILEMAP

は、あなたが出力を調整するために使用できる他のフラグの詳細については、アドレスのドキュメントを見ることができます。

-scott

+0

私は正しいフラグは-f:FileMapだと思うが、そうでなければ+1 –

関連する問題