q
: gdb 종료
r(run)
: 실행
주의)
b main+7 이렇게 쓰면 gdb에서 'main+7' 자체를 함수로 인식해버린다. 저러한 함수는 없기에 제대로 실행 안됨.
b *main+7 그래서 이렇게 main 앞에 *를 써주면, 나는 main에 break point를 두고 싶은데 main 함수에서 +7번째에 있는 부분에 break point를 두고싶다. 라는 의미로 적용되어 원하는 대로 사용 가능하다.
gdb 는 리틀 엔디언 방식.
x/x 사용 예)
x/bx $esp 1바이트(byte) 단위로 출력하겠다.
x/4bx $esp 1바이트(byte) 단위로 4번째 까지 출력하겠다.
x/wx $esp 1워드(word) 단위로 출력하겠다. 즉, 4바이트 단위로 출력하겠다. (1워드 = 4바이트)
x/4wx $esp 1워드(word) 단위로 4번째 까지 출력하겠다. 즉, 4바이트 단위로 4번째 까지 출력하겠다.
(1워드 = 4바이트)
( 사용 후 마지막으로 출력한 방식으로 계속 출력되므로 ( x/x 출력 할 때.) 다시 본래의 출력 방식인 4바이트 단위 출력으로 돌리려면 x/4wx 로 출력을 다시 해주면 된다. )
gdb 는 리틀 엔디언 방식이어서,
0x12345678이 0x78 0x56 0x34 0x12 순서로 뒤에 값 부터 출력 되는 것을 볼 수 있다.
'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 |
댓글