eli_ez3r
eli_ez3r
eli_ez3r
전체 방문자
오늘
어제
  • 분류 전체보기 (202)
    • 0x01 끄적끄적 :) (57)
      • Network (5)
      • Security (14)
      • Reversing (2)
      • Forensic (5)
      • Operation System (10)
      • Development (10)
      • Solution (7)
      • 보안 상식 (3)
    • 0x02 Study :) (127)
      • Pwnable (59)
      • Webhacking (56)
      • Reversing (11)
      • Machine Learning (1)
    • 0x03 ETC :) (16)
      • IT Unpacking (5)
      • IT Information (1)
      • Enjoy (4)
      • Etc (6)
    • Admin :) (0)
      • 0x01 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • github.io 블로그 개설

인기 글

태그

  • BOF
  • overflow
  • pwnable
  • hack
  • buffer
  • write
  • attack
  • 공격
  • 암호
  • hakcing
  • 오버플로우
  • LOB
  • 문제
  • hacker
  • school
  • 풀이
  • web
  • 문제풀이
  • 해킹
  • 과정
  • 스쿨
  • LEVEL
  • password
  • 해커
  • 설명
  • 메모리
  • webhacking.kr
  • Up
  • 패스워드
  • hacking

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
eli_ez3r

eli_ez3r

WinDbg 명령어 모음
0x01 끄적끄적 :)/Security

WinDbg 명령어 모음

2018. 6. 5. 10:03


WinDbg 명령어

 

WinDbg 에는 3 종류의 명령어가 있다. 


  1. 일반 명령 : 일반적으로 사용하는 디버깅에 관련된 명령어 들이다. 브레이크 설정(bp), 타겟 제어(p,g) 등등
  2. 메타 명령 : 디버거에 관련된 명령이다. 명령어 앞에 . 이 붙는다. 디버깅 심벌 경로 설정 (.sympath ), 모듈 심벌 로드 (.reload ) 등등
  3. 확장 명령 : 외부 dll 로 제작된 명령이다(일종의 플러그인 ). 명령어 앞에 ! 이 붙는다. 예외상황분석( !analyze –v ) , 프로세스 구조체 보기 ( !peb ) 등등 

구    분

명 령 어

설    명

예    제

도움말 보기

.hh

도움말을 연다.

.hh .reload 

// .reload 명령어에 관한 도움말을 열어본다

 

경로 설정

.sympath

디버깅 심벌 위치 디렉토리 설정

.sympath+ d:\work\bin

.srcpath

소스 파일 위치 디렉토리 설정

.srcpath+ d:\work\src

.symfix

웹 디버깅 심벌 서버 설정.

.symfix+ c:\symbols

디버깅 심벌 로딩하기

.reload

디버깅 심벌을 로드한다. 

( 이 명령어는 디버깅 심벌을 준비해놓는다고 보면 될거 같다. 기본적으로 WinDbg 는 deferred symbol loading 을 수행하는데, 당장 쓰이지 않으면 디버깅 심벌을 로딩해 놓지 않는다. ) 

주의사항은 확장자를 붙여야 한다는것. 

.reload darpangs.sys 

// 디버깅 심벌 로드

 

.reload /u darpangs.sys 

// 디버깅 심벌 언로드

 

.reload /i darpangs.sys 

// 디버깅 심벌 강제 로드

ld

디버깅 심벌을 로드한다. 

( deferred loading 된 디버깅 심벌들을 실제로 로딩한다. ) 

주의사항은 확장자 없이 사용한다는 것

ld darpangs

로딩된 모듈 및 디버깅 심벌 보기

lm

List Loaded Modules

현재 로딩 되어 있는 모듈들을 본다. 

lmm *darpangs* 

// darpangs 글자가 들어간 모듈 나열

 

lmv 

// 상세 정보 표시 

 

lml 

// 디버깅 심벌이 로딩된 모듈만 표시.

쓰레드 보기

~

쓰레드 정보를 본다.

~* 

// 모든 쓰레드를 표시한다. 

 

~5 

// 5번 쓰레드를 표시한다. 

 

~1s 

// 1번 쓰레드를 현재 쓰레드로 설정한다.

 

~# 

// 예외를 일으킨 쓰레드를 본다. 

스택 보기

k

현재 쓰레드의 스택을 본다. 

kb 

// 스택 상황을 파라미터와 함께 본다.

 

kn 

// 스택 프레임 번호를 함께 본다.

 

kf 

// 스택 프레임 간격을 함께 본다. 이 기능은 로컬 스택의 크기를 알 수 있다.

심벌 보기

x

특정 모듈의 심벌을 본다.

x ntdll!*create* 

// ntdll 의 심벌(변수나 함수)중 create 이라는 단어가 들어간 것을 표시한다.

자료 구조 보기

dt

type을 표시(구조체 등)


type에 해당하는 메모리값 확인


디버깅 심벌이 로딩되어 있을 경우, 구조체의 정보를 보여준다.

dt ntdll!*list* 

// ntdll 의 구조체 중 list 단어가 들어간 것을 모두 보여준다. 

 

dt ntdll!_LIST_ENTRY 

// ntdll 의 구조체 중 _LIST_ENTRY 구조체의 구성을 보여준다. 

 

dt ntdll!_LIST_ENTRY 0x12345678 

// 0x12345678 메모리의 데이터를 _LIST_ENTRY 구조체로 맞추어서 보여준다.

 

dt ntdll!_LIST_ENTRY 0x12345678 –r2 

// 구조체 내부에 또 다른 구조체가 있을 경우, 해당 구조체의 내용도 표시해준다. 2단계까지 내용을 표시한다.

메모리 보기

d

메모리의 값을 각 형태에 맞게 본다.

 

dd

double word단위로 메모리를 표시

dd 0x12345678 

// 0x12345678 메모리의 데이터를 Double Word 형태로 출력한다.

db

byte 단위로 메모리를 표시

db 0x12345678

// 0x12345687 메모리의 데이터를 Byte 단위 및 ASCII 문자 형태로 출력한다.

du

 

du 0x12345678

// 유니코드 형태로 출력한다. 

브레이브 포인트

bp 

브레이크 포인트 설정

bp ntdll!NtCreateFile 

// ntdll.dll 의 NtCreateFile 함수에 브레이크 포인트를 건다. 

bu

브레이크 포인트 설정 ( 심벌 이름으로 )

bu ntdll!NtCreateFile 

// ntdll.dll 의 NtCreateFile 함수에 브레이크 포인트를 건다.

아직 로딩되지 않은 모듈에 브레이크 포인트를 설정할 수 있으며, 모듈이 언로드 되거나 WinDbg 가 종료되더라도 브레이크 포인트 설정이 계속 유지된다.

bl

브레이크 포인트 리스트 보기

bl

bc

브레이크 포인트 모두 제거

bc

bd

브레이크 포인트 비활성화

bd 5 

// 5번 브레이크 포인트 비활성화

be

브레이크 포인트 활성화

be 1-4 

// 1번부터 4번까지의 브레이크 포인트 활성화

ba

메모리 브레이크 포인트 설정

ba w4 0x12345678 

// 0x12345678 주소가 Writing 되는 시점에 브레이크가 걸린다.

 

ba r4 0x12345678 

// 0x12345678 주소가 Reading 되는 시점에 브레이크가 걸린다. 

브레이크

실행 제어

 

( .hh Controlling the Target )

F9 키 ( bp ) 

현재 src 창이나 disassembly 창의 라인에 브레이크 포인트 설정 

Visual Studio 와 동일

F10 키 ( p )

src 나 disassembly 의 한라인 실행

Visual Studio 와 동일

F11 키 ( t ) 

함수호출 시, 함수 내부 추적.

Visual Studio 와 동일

Shift + F11 키 ( gu )

현재 함수 종료까지 실행

Visual Studio 와 동일

오류 분석

!analyze

현재 예외 상황의 원인을 분석한다.

!analyze -v



저작자표시 비영리 변경금지 (새창열림)
    '0x01 끄적끄적 :)/Security' 카테고리의 다른 글
    • Slow HTTP POST DOS(RUDY Attack)
    • HTTP GET Flooding with Cache-Control(CC Attack)
    • [Anti-DOS]SYN Cookie
    • ARP Spoofing
    eli_ez3r
    eli_ez3r

    티스토리툴바