본문 바로가기

system

gdb 명령어

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