windbg - 덤프 파일로부터 PID와 환경변수 등의 정보를 구하는 방법
가끔 덤프를 뜰 당시의 프로세스 ID를 알고 싶을 때가 있습니다. 이때 사용할 수 있는 명령어로,
| (Process Status)
; https://learn.microsoft.com/en-us/windows-hardware/drivers/debuggercmds/---process-status-
간단하게 다음과 같이 사용할 수 있습니다.
0:017> |
. 0 id: 1588 examine name: c:\WINDOWS\system32\inetsrv\w3wp.exe
이 외에 teb 명령어로,
0:000> !teb
TEB at 7ffdd000
ExceptionList: 0006fc6c
StackBase: 00070000
StackLimit: 0006c000
SubSystemTib: 00000000
FiberData: 00001e00
ArbitraryUserPointer: 00000000
Self: 7ffdd000
EnvironmentPointer: 00000000
ClientId: 00001588 . 000009b8
RpcHandle: 00000000
Tls Storage: 00000000
PEB Address: 7ffde000
LastErrorValue: 0
LastStatusValue: 103
Count Owned Locks: 0
HardErrorMode: 0
알아낸 peb 주소로 해당 프로세스에 로드된 모듈들의 정보, 명령행 인자 값과 함께 환경변수를 열람할 수 있습니다.
0:000> !peb 7ffde000
PEB at 7ffde000
InheritedAddressSpace: No
ReadImageFileExecOptions: No
BeingDebugged: No
ImageBaseAddress: 01000000
Ldr 7c9ca7e0
Ldr.Initialized: Yes
Ldr.InInitializationOrderModuleList: 00081f18 . 2e2cfe10
Ldr.InLoadOrderModuleList: 00081eb0 . 2e2cfe00
Ldr.InMemoryOrderModuleList: 00081eb8 . 2e2cfe08
Base TimeStamp Module
1000000 45d6968e Feb 17 14:45:50 2007 c:\windows\system32\inetsrv\w3wp.exe
7c940000 5507c9e0 Mar 17 15:29:52 2015 C:\WINDOWS\system32\ntdll.dll
...[생략]...
8f90000 488ada86 Jul 26 17:04:22 2008 C:\WINDOWS\assembly\GAC_MSIL\System.Web.Services.resources\2.0.0.0_ko_b03f5f7f11d50a3a\System.Web.Services.resources.dll
SubSystemData: 00000000
ProcessHeap: 00080000
ProcessParameters: 00020000
CurrentDirectory: 'c:\windows\system32\inetsrv\'
WindowTitle: 'c:\windows\system32\inetsrv\w3wp.exe'
ImageFile: 'c:\windows\system32\inetsrv\w3wp.exe'
CommandLine: 'c:\windows\system32\inetsrv\w3wp.exe -a \\.\pipe\iisipm511f6096-0056-4586-95b2-4a5c7a335320 -t 20 -ap "TestAppPool"'
DllPath: 'c:\windows\system32\inetsrv;C:\WINDOWS\system32;C:\WINDOWS\system;C:\WINDOWS;.;c:\app\Administrator\product\11.1.0\client_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem'
Environment: 00010000
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APP_POOL_ID=TestAppPool
ClusterLog=C:\WINDOWS\Cluster\cluster.log
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=TESTPC
ComSpec=C:\WINDOWS\system32\cmd.exe
...[생략]...
PROCESSOR_REVISION=3e04
ProgramFiles=C:\Program Files
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\WINDOWS\TEMP
TMP=C:\WINDOWS\TEMP
USERPROFILE=C:\Documents and Settings\Default User
windir=C:\WINDOWS
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]