gdb의 기본적인 명령어 입니다.
순번 |
명령어 |
설명 |
1 |
gdb 파일명 |
해당 파일을 gdb로 열기 |
2 |
list = ("l") |
gcc 컴파일 시 -ggdb 옵션을 지정한 경우 소스 확인 가능 |
3 |
disas 주소/함수 |
해당 함수를 디스어셈블해 실행 |
4 |
run = (r) |
해당 파일을 실행 |
5 |
continue = ("c") |
브레이크가 걸린 상태에서 계속 실행 |
6 |
break 주소/함수명 |
주소나 함수에 브레이크 포인트를 걸기 |
7 |
x/32x 주소 |
주소에서 32개를 16진수로 출력(x/32s는 문자열) |
8 |
info registers = ("i r") |
레지스터의 값을 출력 |
9 |
nexti = ("n i") |
함수 내부로 들어가면서 한 라인 실행 |
10 |
stepi = ("s i") |
함수 내부로 들어가면서 한 라인 실행 |
11 |
help |
도움말 출력 |
12 |
backtrace |
프로그램 실행의 스택 추적 결과 출력 |
13 |
quit |
종료 |
*7번 자세히..
- x/"범위""출력형식""범위의단위" "메모리주소 또는 함수명"
- 출력형식 : x (16진수), s (문자열), I (명령어)
- 범위의단위 : b (1byte), h(2byte), w(4byte), g(8byte)
*실행예제
ex) x/20wx $esp : esp가 가리키는 메모리부터 높은 주소쪽으로 4byte 씩 20개 출력
'HACKING > System hacking' 카테고리의 다른 글
heapoverflow 문제 풀이3 (0) | 2016.11.05 |
---|---|
heap overflow 문제풀이2 (0) | 2016.11.02 |
heap overflow 문제 풀이 (0) | 2016.11.01 |
BOF 원리와 문제 풀이 (0) | 2016.10.26 |
GDB에서 어셈블리어 AT&T 문법에서 intel 문법으로 바꾸기 (0) | 2016.07.23 |