1. 이전에 어셈블리 코드로 만든 eaxm1-1.asm 파일을
목적코드 파일(오브젝트 파일)로 생성( .o 파일 )한다.
ex) nasm -f elf32 exam1-1.asm
exam1-1.o 목적코드 파일로 생성된다.
2. 목적코드 파일을 링크하여 실행파일( . exe 파일 )로 만들어 실행가능한 파일로 만들어준다.ex) ld --entry main exam1-1.o
a.out 이라는 실행파일이 생성된다.
( 실행파일 이름은 다른 이름으로 생성할 수도 있다. )
3. 생성된 a.out 실행파일을 gdb로 실행한다.
gdb 실행
: gdb -q a.out
-q 옵션) quite 옵션. gdb를 실행하실때 뜨는 안내문을 생략하고 gdb를 실행하는 옵션
gdb 명령어)
disas main
: main 의 것들을 디스어셈블해 보여주겠다.
x/x <- data 출력. ex) x/x $esp
x/4x $esp
x/x 0xbffff098
x/s <- string 출력.
x/i <- instruction 출력. ex) x/i 0x08048060
x/4i 0x08048060
break 명령어 : b
ex) b main
ni(next instruction) 명령어
: 다음 주소로 넘어간다.
info reg
: 해당 레지스터의 정보 값을 확인하겠다.
ex) info reg $esp
info reg $eax
'Reverse Engineering > gdb' 카테고리의 다른 글
lea, and, or, xor 명령어 (0) | 2020.10.10 |
---|---|
sub, add 명령어 (0) | 2020.10.10 |
gdb - Segmentation Fault, 대괄호 [ ] (0) | 2020.10.07 |
gdb 명령어, 리틀엔디언 방식 (0) | 2020.10.07 |
gdb at&t 방식을 intel 방식으로 바꾸기 (0) | 2020.10.07 |
댓글