앞으로 시스템 공부를 하면서 많이 사용하게 될 GDB의 명령어에 대해 간단하게 알아보자
GDB 의 사용법은 너무 많지만 이 글에서는 조금씩 필요한것만 추가해 나갈 예정이다.
우선 리눅스에서 GDB를 실행하는 방법은
[g0pher]$ gdb ProgramName
위와 같이 실행할 수 있다.
set disas intel
어셈블리어 표기법을 인텔방식으로 설정
disas main
메인함수부분을 디스어셈블
r
프로그램 실행
b
브레이크 포인트 설정
x/[4byte 단위 보고싶은 메모리 값 수]x $[레지스터]
메모리 값을 16진수로 보여준다
ex > x/4x $ebp
x/[4byte 단위 보고싶은 메모리 값 수]s $[레지스터]
메모리 값에 해당하는 문자열을 출력한다.
ex > x/4s $esp
ni
어셈블리 소스의 한줄 실행. 함수 호출 명령도 하나의 명령으로 처리한다.
si
어셈블리 소스의 한줄 실행. 함수 호출 명령은 함수 루틴으로 들어간다.
'Study > reversing' 카테고리의 다른 글
CrossCompile - ARM,MIPS (0) | 2018.04.17 |
---|---|
함수 인자 전달 레지스터(64bit) (0) | 2018.04.01 |
안티 디버깅 (0) | 2017.10.17 |
언패킹 (1) | 2017.10.17 |
패킹 (0) | 2017.10.16 |