Geben Sie den Host von einer Windows-Benutzermodus-Dump-Datei
-
01-07-2019 - |
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.
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
d3d58464 ":: 1"
ffffe001
3: kd>
ffffe001d3d5846c "169.254.66.248"
d3d5848a ""
3: kd>
ffffe001
3: kd>
ffffe001d3d5848c "fe80::f0cb:5439:f12f:42f8"
d3d584c0 ""
3: kd>
ffffe001
3: kd>
ffffe001d3d584c2 "192.168.104.249"
3: kd>
ffffe001
d3d584e2 ""
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.