security/화이트햇

Windbg 커맨드 정리

민사민서 2024. 1. 6. 19:14

메모리 덤프 파일 확인 / 윈도우 소프트웨어의 동적 분석 시 매우매우매우 유용

 

주요 커맨드

  • k [n] : 콜스택 확인 (kv 많이 사용)
  • ln 0x401000 : 특정 addr 주변에 가장 가까운 symbol 확인
  • r [레지스터/플래그] : 레지스터 및 플래그 정보 확인 가능 (eax, ebx, zf ..)
  • r eax=0 : 레지스터 값 변경
  • bp 0x401000 : bp 설정 (bp testexe!ReadFile+0x123 이런 식도 가능)
  • bl : bp list (bd 숫자 => 특정 브포 disable, be 숫자 => enable)
  • g : 다음 bp까지 쭉 continue
  • p : step over
  • t : step into
  • gu : 현재 함수 밖으로 이동, step out
  • dq, dd, dw, db [addr] : 메모리 값 출력, L4 등의 옵션을 통해 출력할 개수 지정 가능
  • du/da [addr] : unicode/ascii 값 출력 (문자열 버퍼 값 확인 시)
  • eq, ed, ew, eb [addr] : 메모리 값 수
  • !address : vmmap 느낌 (뒤에 주소 입력 시 해당 주소 부근의 정보 나타내줌)
  • !exchain : exception handler 정보 확인
  • u [addr] : 특정 addr부터 디스어셈블
  • x ![함수이름] : 특정 symbol 검색
  • ? 0x123 - 0x12 : p/x 0x123-0x12 마냥 계산해줌
  • lm vm JPM.dll : 특정 모듈 매핑 주소

 

기타 꿀팁들

  • Launch executable (advanced) 옵션 이용해서 인자 넣고 디버깅 가능 + TTD도 가능!!
  • Attach to process 해서 백그라운드 실행중인 프로세스 디버깅 가능 + TTD도 가능!!
  • TTD 커맨드
    • g-, p-, t- 등과 같이 기존 커맨드에 - 붙이면 거꾸로 흘러감
    • bp 거는거나 dd, du로 메모리 확인하는거는 동일하게 진행됨
    • 단 이미 녹화된 로그를 보는 것이므로 !address는 잘 동작 안하더라