2010-11-19 3 views
3

VMMap에서 프로세스를 보면 메모리 매핑 된 파일의 파일 이름을 볼 수 있습니다. WinDbg에서 메모리 덤프를 분석 중이며 메모리 매핑 파일의 파일 이름을 알고 싶습니다. WinDbg 또는 .dmp 파일에서 어떻게 찾을 수 있습니까?WinDbg에서 메모리 매핑 된 파일의 이름은 어떻게 찾습니까?

+0

이 관리되는 코드 또는 기본 코드입니까? –

+0

그것은 혼합이다. 파일을 매핑하는 코드는 관리되는 코드가 아닙니다. 그것은 네이티브 dll입니다. – Sean

답변

2

기본적으로 메모리 매핑 된 파일의 핸들을 가져 오면 !handle <address> 0xF 명령을 사용하여 관련 데이터 (이름 포함)를 볼 수 있습니다.
특정 핸들이없고 프로세스의 기존 메모리 매핑 파일의 이름을 보려면, 다음 명령을 사용할 수 있습니다 : !handle 0 0x4 Section. 이것과 같은 출력을 제공한다
: 당신이 실제 파일 이름을 확인하려는 경우

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 

, 당신은 시스템 개체에 대한 정보를 볼 수있는 커널 디버거에서 !handle 명령을 실행할 수 파일 핸들에 해당하는 예를 들어
!

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 –

관련 문제