PWNDBG 설치
seKUrity에서는 pwndbg랑 tmux가 이미 설치된 서버에서 실습을 했지만 나중을 위해 설치 방법부터 알아보겠다.
🖇️https://github.com/pwndbg/pwndbg
GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB Made Easy
Exploit Development and Reverse Engineering with GDB Made Easy - GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB Made Easy
github.com
git clone [URL] [DIRECTORY]
git clone http://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh
위 명령을 차례대로 실행한 후 설치가 완료되면 gdb [file name]을 입력해 pwndbg를 실행할 수 있다.
PWNDBG 주요 사용법
gdb [file name]: 실행
start: 프로그램 실행
q or [Ctrl + d]: 종료
ni: step over
si: step into
l: main 함수를 기점으로 소스 출력
l 10: 10행을 기준으로 출력
l func: func 함수의 소스를 출력
b func: func 함수의 시작 부분에서 브레이크 포인트 설정
b 10: 10행에 브레이크 포인트 설정
bl: 브레이크 포인트 리스트 출력
r: 프로그램 수행(재시작)
k: 프로그램 수행 종료
bt: 오류가 발생한 함수 역추적
s: 현재 출력된 행을 수행한 뒤 정지. (단, 함수의 경우 함수의 내부로 들어가 수행을 이어나간다.)
n: 현재 출력된 행을 수행한 뒤 정지. 함수의 경우 함수를 수행하고 넘어간다.
return 123: 현재 함수를 수행하지 않고 빠져나가며 리턴값이 123으로 설정된다.
info locals: 현 시점의 지역 변수들과 값을 알 수 있다.
p func : func 함수의 주소값을 확인할 수 있다.
p [변수명] : 변수 값을 출력한다.
p [변수명]@[배열크기] : 변수의 내용을 변수 배열의 크기 형태로 출력한다.
frame [N] : n번 스택 프레임으로 변경한다.
info frame : 현재 스택 프레임 정보를 출력한다.
x/[범위] [출력형식] [볌위의 단위] : 메모리의 특정 값들을 확인 할 수 있다.
disas func : func 함수의 어셈블리 코드를 볼 수 있다.
call func(arg1, arg2) : 특정 함수 func를 arg1, arg2 파라미터를 포함하여 호출하고, 반환값을 출력한다.
jump 10 : 무조건 10행으로 분기하여 수행한다.
signal SIGKILL : 디버깅 대상의 프로세스에게 KILL 시그널을 보낼 수 있다.
set {타입} [주소] = [값] : p 명령 대신에 set을 통해 메모리의 특정 주소에 저장하는 것이 더 일반적이다.
set {int}0x8048300 = 100 : 해당 주소에 100의 값을 입력
'System & Reversing > 필기' 카테고리의 다른 글
Tmux 설치 및 주요 사용법 (0) | 2023.04.04 |
---|---|
올리디버그(Ollydbg) 설치 및 사용법 (0) | 2023.03.16 |
BOF(Buffer Overflow) 개요 및 동작 원리 (0) | 2023.03.16 |
x86, x64 차이점 및 구분 (0) | 2023.03.16 |
아키텍처의 개념, 종류, 특징(+ CPU 아키텍처) (0) | 2023.03.11 |