Pwndbg 명령어

2021. 5. 16. 15:56Layer7/Layer7_Reverse Engineering

 

Pwndbg는 GDB(GNU Debugger)의 한 플러그인이다. 

리눅스 환경에서 간편하게 동적 분석을 할 수 있도록 해주는 디버거 도구이다.

 


 

리버싱 할 프로그램을 디버거에서 실행

gdb ./[프로그램명]

 

Pwndbg 종료

q

quit

Ctrl+D

 

실행 중단

Ctrl+C

 

 

프로세스가 멈추어있는 상태에서 프로세스를 이어서 실행

c

continue

 

브레이크 포인트 설정

b

b 10    //10행에 브레이크 포인트 설정

b main

b *[주소값]     

 

설정한 브레이크 포인트 보기

i b

info b

info breakpoints

 

브레이크 포인트 삭제

del [번호]

 

 


 

프로그램 시작

start

 

프로그램 실행

r

run

 

프로그램 종료

k

kill

 


 

현재 행 실행 (함수의 경우 함수 내부로 진입)  /  줄 단위

s

step

 

현재 행 실행 (함수의 경우 함수 내부로 진입하지 않고 실행)  /  줄 단위

n

next

 

현재 명령어 실행 (함수의 경우 함수 내부로 진입)  /  Instruction 단위

si    (step instruction)

 

현재 명령어 실행 (함수의 경우 함수 내부로 진입하지 않고 실행)  /  Instruction 단위

ni    (next instruction)

 


 

main 함수 디스어셈블링 (더 보편적으로 보기)

d main

disass main

disassemble main

 

main 함수 디스어셈블링 (색깔 있게 보기)

u [main의 주소] 19

 

현재 함수를 실행하지 않고 빠져나감, 리턴값 강제 변형

return 1

 

지역변수 정보 보기

info locals

 

main 함수의 주소값을 보기

p main

 

특정 변수의 값 출력

p [변수명]

 

현재 스택 정보 출력

info stack

 

특정 함수 호출, 반환값을 출력

call func(arg1, arg2)

 

n번 행으로 점프

jump n

 

프로세스에 KILL 시그널 보내기

signal SIGKILL

 

메모리의 특정 영역에 값 저장

set {타입} [주소] = [값]

set {int}0x8048300 = 100

 

 

 

 

메인 사진 출처: Unsplash

 

© 남찬우, 2021

'Layer7 > Layer7_Reverse Engineering' 카테고리의 다른 글

리버싱 실습  (0) 2021.05.27
어셈블리 동적 분석 실습  (0) 2021.05.24
어셈블리 - Assembly x64  (0) 2021.05.18
실행파일이 만들어지는 과정  (0) 2021.05.13
포인터에 대하여  (0) 2021.05.10