windows - Hvordan finder jeg en hukommelseskartet fil navn i WinDbg?

Indlæg af Hanne Mølgaard Plasc

Problem



Når jeg ser på min proces i VMMap, kan jeg se filnavnet på hukommelseskartede filer. Jeg analyserer nu et hukommelsesdump i WinDbg og vil gerne vide filnavnet på hukommelseskortede filer. Hvordan finder jeg dette fra WinDbg eller en .dmp-fil?

Bedste reference


! adresse -f: FileMap


Du kan se adressadressedokumenterne for flere detaljer om andre flag, du kan bruge til at finjustere output.


-Scott

Andre referencer 1


Når du er i stand til at få håndtaget til din hukommelseskartede fil, kan du se nogle relevante data (herunder dets navn) ved hjælp af kommandoen !handle <address> 0xF.

Hvis du ikke har et bestemt håndtag, men kun vil se navnene på de eksisterende hukommelseskortede filer i processen, kan du bruge følgende kommando: !handle 0 0x4 Section.

Hvilket skal give dig en udgang svarende til denne:


Handle 6bc
  Name          BaseNamedObjectsNLS\_CodePage\_862\_3\_2\_0\_0
Handle 6cc
  Name          BaseNamedObjectsMyMap
Handle 794
  Name          BaseNamedObjectsCor\_Private\_IPCBlock\_v4\_4092
Handle 798
  Name          BaseNamedObjectsCor\_SxSPublic\_IPCBlock\_4092
Handle 7cc
  Name          BaseNamedObjectsShimSharedMemory
5 handles of type Section


Hvis du vil se det egentlige filnavn, kan du udstede kommandoen !handle i en kernel debugger for at få vist nogle oplysninger om systemobjekter, der svarer til dine filhåndter.


For eksempel:


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: FooBar {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: WINDOWSassemblypubpol6.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: WINDOWSassemblyNativeImages\_v4.0.30319\_32index1fe.dat {HarddiskVolume1}

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