-g 옵션 사용 컴파일
shell> g++ source.cpp -g
tui 접근
shell> gdb a.out --tui
브레이크 포이트 위치 지정
gdb> break main
gdb> b main
gdb> b *main
실행
gdb> run
gdb> n ---> next
enter -> 한줄씩 이동
지정한 위치로 브레이크 포인터 이동
gdb> b 30 ---> 브레이크 포인트 설정 여기서 30은 tui 줄 번호
gdb> run ---> 30 라인으로 이동
gdb> q ---> 종료
------------
shell> gdb a.out --tui
브레이크 포인트 위치지정
gdb> b main
gdb> s
gdb> run
gdb> s ---> 추적
gdb> q
테스트 바이너리 다운로드.
https://github.com/LiveOverflow/liveoverflow_youtube/blob/master/0x05_simple_crackme_intro_assembler/license_1
실행
gdb "바이너리" --tui
어셈 블리어 형식 변환
set disassembly-flavor intel
메인 함수 디어셈블
disas main
브레이크 포인트 위치 지정
b 30 30번째 라인에다가 걸기
b *main 메인 함수 브레이크 포인트
b *0x0~~~~ 특정 주소에 브레이크 포인트
b "숫자" rip로부터 상대적 위치에 브레이크 포인트
브레이크 포인트 삭제
delete
delete "번호"
실행하기
run "args" 처음부터 실행
continue 멈춘 부분부터 실행
ni -> Next instance 한 출 씩 실행
정보 확인
info reg 레지스터 확인
info reg "레지스터" 특정 레지스터 확인
info break 브레이크 포인트 확인
x/t "메모리 주소" 2진수로 확인하기
x/o "메모리 주소" 8진수로 확인하기
x/d "메모리 주소" 10진수로 확인하기
x/u "메모리 주소" 부호없는 10진수로 확인하기
x/x "메모리 주소" 16진수로 확인하기
x/c "메모리 주소" char로 확인하기
x/f "메모리 주소" 부동소수점으로 확인하기
x/s "메모리 주소" 스트링으로 확인하기
x/bx $rsp 1바이트씩 확인하기
x/hx $rsp 2바이트씩 확인하기
x/dx $rsp 4바이트씩 확인하기
x/gx $rsp 8바이트씩 확인하기
-g 옵션 사용 컴파일
shell> g++ source.cpp -g
tui 접근
shell> gdb a.out --tui
브레이크 포이트 위치 지정
gdb> break main
gdb> b main
gdb> b *main
실행
gdb> run
gdb> n ---> next
enter -> 한줄씩 이동
지정한 위치로 브레이크 포인터 이동
gdb> b 30 ---> 브레이크 포인트 설정 여기서 30은 tui 줄 번호
gdb> run ---> 30 라인으로 이동
gdb> q ---> 종료
------------
shell> gdb a.out --tui
브레이크 포인트 위치지정
gdb> b main
gdb> s
gdb> run
gdb> s ---> 추적
gdb> q
테스트 바이너리 다운로드.
https://github.com/LiveOverflow/liveoverflow_youtube/blob/master/0x05_simple_crackme_intro_assembler/license_1
실행
gdb "바이너리" --tui
어셈 블리어 형식 변환
set disassembly-flavor intel
메인 함수 디어셈블
disas main
브레이크 포인트 위치 지정
b 30 30번째 라인에다가 걸기
b *main 메인 함수 브레이크 포인트
b *0x0~~~~ 특정 주소에 브레이크 포인트
b "숫자" rip로부터 상대적 위치에 브레이크 포인트
브레이크 포인트 삭제
delete
delete "번호"
실행하기
run "args" 처음부터 실행
continue 멈춘 부분부터 실행
ni -> Next instance 한 출 씩 실행
정보 확인
info reg 레지스터 확인
info reg "레지스터" 특정 레지스터 확인
info break 브레이크 포인트 확인
x/t "메모리 주소" 2진수로 확인하기
x/o "메모리 주소" 8진수로 확인하기
x/d "메모리 주소" 10진수로 확인하기
x/u "메모리 주소" 부호없는 10진수로 확인하기
x/x "메모리 주소" 16진수로 확인하기
x/c "메모리 주소" char로 확인하기
x/f "메모리 주소" 부동소수점으로 확인하기
x/s "메모리 주소" 스트링으로 확인하기
x/bx $rsp 1바이트씩 확인하기
x/hx $rsp 2바이트씩 확인하기
x/dx $rsp 4바이트씩 확인하기
x/gx $rsp 8바이트씩 확인하기
실행 중인 프로세스에 어태치
gdb "filename" "pid"
gdb" attach
gdb" detach
실행 중인 프로세스에 어태치
gdb "filename" "pid"
gdb" attach
gdb" detach
댓글 없음:
댓글 쓰기