Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
디버깅을 진행 하다 보면 특정 메모리의 tag는 확인하였으나 구조체를 알 수 없는 경우가 많이 있습니다. 이 때 dt 명령을 적절히 사용하면 손쉽게 원하는 정보를 얻을 수 있습니다.
먼저 process 정보를 확인해 본 후 fffffa8004952c10 가 어떤 구조체를 가지는지 확인해 보도록 하겠습니다.
lkd> !process 0 0 explorer.exe
PROCESS fffffa8004952c10
SessionId: 1 Cid: 12dc Peb: 7fffffdb000 ParentCid: 1248
DirBase: a3fd9000 ObjectTable: fffff8800b1a30f0 HandleCount: 1003.
Image: explorer.exe
!pool 명령을 사용해서 이 주소는 NonPagedPool 이고 Proc 즉 Process object 와 관련이 있다는 것을 알 수 있습니다.
lkd> !pool fffffa8004952c10 2
Pool page fffffa8004952c10 region is Nonpaged pool
*fffffa8004952bd0 size: 430 previous size: 130 (Allocated) *Proc (Protected)
Pooltag Proc : Process objects, Binary : nt!ps
Process 와 관련이 있다는 것을 알았으므로 아래와 깉은 방법으로 어떤 구조체들이 존재하는지 확인해 볼 수 있습니다.
lkd> dt nt!_*proc*
ntkrnlmp!_KPROCESSOR_STATE
ntkrnlmp!_PROCESSOR_POWER_STATE
ntkrnlmp!_KPROCESS
ntkrnlmp!_EPROCESS
ntkrnlmp!_EPROCESS_QUOTA_BLOCK
ntkrnlmp!_WOW64_PROCESS
ntkrnlmp!_SE_AUDIT_PROCESS_CREATION_INFO
ntkrnlmp!_ALPC_PROCESS_CONTEXT
ntkrnlmp!_WHEA_GENERIC_PROCESSOR_ERROR
ntkrnlmp!_RTL_USER_PROCESS_PARAMETERS
ntkrnlmp!_PROCESSOR_CACHE_TYPE
ntkrnlmp!_WHEA_GENERIC_PROCESSOR_ERROR_VALIDBITS
감사합니다.