달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

perfmon 결과 값에서 아래 값이 점차적으로 증가하면 메모리 누수 의심
Memory\Pool Nonpaged Bytes
Memory\Pool Paged Bytes

!vm 1 - 메모리 사용량 표시 -> Free System PTEs가 부족하지 않은지 확인
!sysptes - Total System PTE 확인 -> Total System Ptes와 Total free를 확인해 부족 여부 확인
!sysptes 4 - 모듈별로 사용한 PTE 표시

gflag를 이용해서 pooltagging Enable (2003은 Default로 enable)
pool usage - Pool 사용량 표시
!poolused - Module별로 Pool 사용량 표시
!poolused 2 - nonpage pool로 정렬 -> 메모리 많이 먹는 놈의 Pool Tag 확인

Pool Tag가 확인되었다면 어떤 드라이버가 사용하는지 확인
1. CMD 창에서는
C:\WINDOWS\system32\drivers 로 이동해서
findstr.exe /m /i <Tag Name> *.* - 해당 sys 파일이 확인된다

2. Windbg 에서는
!for_each_module s-a @#Base @#End "<Tag Name>" - 해당 Tag를 사용하는 메모리 주소가 확인된다
lm <Memory Address> - 메모리 주소에 Mapping되어 있는 파일이 확인된다.

:
Posted by 커널64