gcc-zexecstack-no-pie-w-obeef.c 형태로 컴파일한다!!!!!!! (gcc 옆에 붙는 각 옵션들이 버퍼 오버플로에 취약하게 만든다.)
실행 gdb”파일명”(만약 컴파일된것이 beef.c라면 beef로 파일명 써줄꺼야!!)
인텔형 어셈블리로 표시 setdisassembly-flavorintel
메인함수 디스어셈블하는 disasmain
브레이크 포인트 걸이 b*main 메인 함수에 브레이크 포인트 b*0x004005 bd 특정 주소에 브레이크 포인트 b”숫자” eip에서 상대적 위치에 브레이크 포인트
브레이크 포인트 삭제 deletedelete “번호”
실행 run”args” 처음부터 실행하는 continue 멈춘 부분부터 계속 실행하는 ni한 스탭 실행 후 멈춤
정보 확인 inforreg 레지스터 확인 inforreg “레지스터” 특정 레지스터 확인 infobreak 브레이크 포인트 확인
<메모리 주소 확인방법> x/t “메모리 주소” 2진수로 확인하는 x/o”메모리 주소” 8진수로 확인하는 x/d”메모리 주소” 10진수로 확인하는 x/u”메모리 주소” 부호 없음 10진수로 확인하는 x/x”메모리 주소” 16진수로 확인하는 x/c”메모리 주소” char에서 확인하는 x/f”메모리 주소” 부동소수점에서 확인하는 x/s”메모리 주소” 스트링에서 확인한다.
<메모리 주소 확인 방법> x/bx$rsp1바이트씩 확인하기 x/hx$rsp2바이트씩 확인하기 x/dx$rsp4바이트씩 확인하기 x/gx$rsp8바이트씩 확인하기
실행 중인 프로세스에 어태치 gdb”filename(프로그램명)”pid” gdb”attachgdb” detach