gdb -q [FILE NAME] // 해당 파일 디버깅 시작하기.
-c // core 파일을 의미하는 옵션
disassemble main // main 함수를 디스어셈블 하는 명령어.
set disassemble-flavor intel(set dis intel) // intel 문법으로 표시
info functions // 함수 정보 확인
disassemble [FUNCTION NAME] // 해당 함수 디스어셈블
list(l) // main 함수를 기점으로 소스코드 출력 ( 10 줄 단위 )
list [FUNCTION NAME]
break [ADDRESS] // 해당 주소 브레이크
ex ) break *0xbffffcb2 , break *main+5
info breakpoints(info b) // breakpoint 정보 확인
del 1 // 1번 breakpoint 삭제
del // breakpoint 모두 삭제
run // 프로그램 실행
next // 다음 라인 실행 ( 함수만나면 실행 )
step // 다음 라인 실행 ( 함수 만나면 함수 안으로 )
continue(c) // 브레이크포인트로 실행 중단 이후에 실행을 재개한다.
info registers // 레지스터 정보 확인
x/x 0x8048410 // 특정 메모리 내용 확인(16진수)
x/d 0x8048410 // 특정 메모리 내용 확인(10진수)
x/b 0x8048410 // 특정 메모리 내용 확인(바이트)
x/s 0x8048410 // 특정 메모리 내용 확인(문자열)
x/x $esp // esp 위치의 값 확인
x/20x $esp // esp 위치로부터 20단위의 값 확인
x/x $ebp-12 // ebp-12 위치의 값 확인
ctrl + d, quit(q) // 종료
'system' 카테고리의 다른 글
메시지 루프와 처리 함수의 전체 순서 (0) | 2016.01.07 |
---|---|
BOF protection techniques (0) | 2016.01.03 |
plt, got (0) | 2015.12.30 |
메모리 구조 (0) | 2015.11.10 |
ShellShock 취약점(CVE-2014-6271 : Remote code execution through bash) (0) | 2015.10.26 |