Frage

Gibt es eine einfache Möglichkeit, den Host-Namen eine Maschine, herauszufinden, die eine Benutzermodus-Dump-Datei über WinDbg erzeugt?

oder zumindest jedes Stück Information zu identifizieren, um zu versuchen, und zu bestätigen, dass zwei Dump-Dateien aus dem gleichen System kamen.

War es hilfreich?

Lösung

Sie können dies tun, indem die Benutzer-Dump-Datei mit WinDbg zu analysieren. Führen Sie den Befehl !peb und suchen Sie den Wert von COMPUTERNAME in seiner Ausgabe.

Andere Tipps

Von Debugger.chm:

Das Finden des Computernamen in einer Kernelmodus-Dump-Datei

Wenn Sie den Namen des Computers, um zu bestimmen, müssen auf dem der Crash-Dump gemacht wurde, können Sie das! Peb-Erweiterung verwenden und suchen Sie den Wert von COMPUTER es seinen Ausgang.

Sie können auch den folgenden Befehl verwenden:

0: kd> x srv!SrvComputerName
be8ce2e8  srv!SrvComputerName  = _UNICODE_STRING "AIGM-MYCOMP-PUB01"

Suche nach der IP-Adresse in einer Kernelmodus-Dump-Datei

Um die IP-Adresse des Computers zu bestimmen, an dem der Crash-Dump gemacht wurde, einen Thread-Stack finden, die einige Sende zeigt / Empfangsnetzwerkaktivität. Öffnen Sie eine der Sendepakete oder Pakete empfangen. Die IP-Adresse wird in diesem Paket sichtbar sein.

EDIT: Ich werde beachten Sie, dass je nachdem, wie die Dump-Datei erstellt wurde, die PEB Informationen nicht zur Verfügung stehen und damit Sie nicht immer der Lage sein, die Computernamen zu finden. Insbesondere dann, wenn etwas über die Microsoft-Website Winqual kommt, wird es saniert worden ist.

die Verknüpfung für Umgebungsvariablen in der PEB Verwendung: envvar COMPUTER

Bei IP-Adressliste:
3: kd> du poi (poi (srvnet SrvAdminIpAddressList)!)
ffffe001d3d58450 "127.0.0.1" 3: kd> du
ffffe001
d3d58464 ":: 1"
3: kd>
ffffe001d3d5846c "169.254.66.248"
3: kd>
ffffe001
d3d5848a ""
3: kd>
ffffe001d3d5848c "fe80::f0cb:5439:f12f:42f8"
3: kd>
ffffe001
d3d584c0 ""
3: kd> ffffe001d3d584c2 "192.168.104.249" 3: kd> ffffe001d3d584e2 ""
3: kd>
ffffe001`d3d584e4 "fe80 :: fc6f: AE16: b336: 83dc"
3: kd>

In beiden Kernel und Benutzermodus,

10: kd> !envvar COMPUTERNAME
COMPUTERNAME = a-host-name

Ruft den Computernamen aka Hostnamen des Ziel-PC.

Es erfordert EXTS.dll Erweiterung geladen werden, und Windows XP + (W10 RS3 zum Zeitpunkt des Schreibens).

Im Kernel-Modus ist dies nicht direkt funktioniert, wird !envvar leer zurückkehren

10: kd> !peb
PEB NULL...

Ihr aktueller Kontext ist ein Leerlauf-Thread.

WinDbg (Windows 10 RS3 16.299,15 SDK) Hilfe für !process listet nur Bits 0-4, aber ich fand das Bit 5 Dumps ganze Umgebung, wenn sie mit 0 und 4. Flags = 0b110001 verwendet. So verwende ich diese während WinDbg Startskript automatisch den Computernamen anmelden.

!process 0 0x31 wininit.exe

Wird Dump die alle Umgebungsvariablen:

10: kd> !process 0 0x31 wininit.exe
PROCESS ffffc485c82655c0
    SessionId: 0  Cid: 02d0    Peb: 8d04c6b000  ParentCid: 0258
    DirBase: 40452f000  ObjectTable: ffffe30b1150fb40  HandleCount: 163.
    Image: wininit.exe
    VadRoot ffffc485c862b990 Vads 61 Clone 0 Private 326. Modified 12. Locked 2.
    DeviceMap ffffe30b0a817880
    Token                             ffffe30b1150f060
    ElapsedTime                       00:00:18.541
    UserTime                          00:00:00.000
    KernelTime                        00:00:00.015
    QuotaPoolUsage[PagedPool]         121696
    QuotaPoolUsage[NonPagedPool]      11448
    Working Set Sizes (now,min,max)  (1750, 50, 345) (7000KB, 200KB, 1380KB)
    PeakWorkingSetSize                1697
    VirtualSize                       2097239 Mb
    PeakVirtualSize                   2097239 Mb
    PageFaultCount                    2104
    MemoryPriority                    BACKGROUND
    BasePriority                      13
    CommitCharge                      470

    PEB at 0000008d04c6b000            
    InheritedAddressSpace:    No
    ReadImageFileExecOptions: No
    BeingDebugged:            No
    ImageBaseAddress:         00007ff7be3d0000
    Ldr                       00007ff8dff4f3a0
    Ldr.Initialized:          Yes
    Ldr.InInitializationOrderModuleList: 000001be470e1c10 . 000001be47128d60
    Ldr.InLoadOrderModuleList:           000001be470e1d80 . 000001be47128d40
    Ldr.InMemoryOrderModuleList:         000001be470e1d90 . 000001be47128d50
                    Base TimeStamp                     Module
            7ff7be3d0000 600d94df Jan 24 10:40:15 2021 C:\Windows\system32\wininit.exe
            7ff8dfdf0000 493793ea Dec 04 03:25:14 2008 C:\Windows\SYSTEM32\ntdll.dll
...
    SubSystemData:     0000000000000000
    ProcessHeap:       000001be470e0000
    ProcessParameters: 000001be470e1460
    CurrentDirectory:  'C:\Windows\system32\'
    WindowTitle:  '< Name not readable >'
    ImageFile:    'C:\Windows\system32\wininit.exe'
    CommandLine:  'wininit.exe'
    DllPath:      '< Name not readable >'
    Environment:  000001be47104460
        ALLUSERSPROFILE=C:\ProgramData
        CommonProgramFiles=C:\Program Files\Common Files
        CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
        CommonProgramW6432=C:\Program Files\Common Files
        COMPUTERNAME=a-host-name
        ComSpec=C:\Windows\system32\cmd.exe
        NUMBER_OF_PROCESSORS=16
        OS=Windows_NT
        Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\
        PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
        PROCESSOR_ARCHITECTURE=AMD64
        PROCESSOR_IDENTIFIER=AMD64 Family 23 Model 1 Stepping 1, AuthenticAMD
        PROCESSOR_LEVEL=23
        PROCESSOR_REVISION=0101
        ProgramData=C:\ProgramData
        ProgramFiles=C:\Program Files
        ProgramFiles(x86)=C:\Program Files (x86)
        ProgramW6432=C:\Program Files
        PSModulePath=%ProgramFiles%\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules
        PUBLIC=C:\Users\Public
        SystemDrive=C:
        SystemRoot=C:\Windows
        TEMP=C:\temp
        TMP=C:\temp
        USERNAME=SYSTEM
        USERPROFILE=C:\Windows\system32\config\systemprofile
        windir=C:\Windows

Sie können auf einem PEB DML Link klicken, oder Kontext über .process /p <PROCESS_ADDRESS> wechseln, dann würde !envvar COMPUTERNAME auch funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top