ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • gdb 명령어
    System hacking training/Knowledge 2018. 2. 13. 21:56

    gdb -q [binary]       gdb 조용히 켜기

    run (r)                  바이너리 실행

    continue (c)           다음 bp 까지 실행

    quit (q)                 바이너리 종료

    disas [function name]    특정함수의 어셈블리 코드 출력

    info [function]        함수의 정보를 출력 

    [break]            bp(break point)의 정보 출력

    [register]          register의 정보 출력


    info break 했을 때 bp정보가 보이는데, 이중

    delete (del)     모든 bp 제거

    delete (del) [number]    특정 bp 제거


    info function 할때는 바이너리 시작 전에 해야한다.    -> 공유라이브러리까지 모두 출력하기 때문(지저분)


    break (b) function     함수에 bp를 건다.

    함수 프롤로그를 skip 한다.


    b * function        함수에 bp를 건다.

    함수 프롤로그를 포함한다.


    b * [address]        특정 주소에 break를 건다.


    stepi (si)            코드를 한줄 실행 / 함수를 만났을때 함수 안으로 들어간다.

    nexti (ni)            코드를 한줄 실행 / 함수를 만났을때 함수 안으로 들어가지 않는다.


    print [function] (p)    해당 함수의 주소 출력

    p $[register]            해당 레지스터 값 출력


    p / [출력형식] [register]    출력형식에 맞추어 레지스터값 출력

    [d]    부호없는 10진수

    [x]    16진수



    [Tip] - 참고로 os + 환경마다 다를 수 있다.

    32bit 운영체제에서 0x0804800 으로 시작하는 부분이 코드가 시작되는 부분이고 0xb7~ 로 시작하는 부분이 공유 라이브러리의 주소다.


    <메모리 상태 검사 명령어>

    x / [범위] [출력 형식] [범위의 단위]    [메모리 주소나 함수명]


    x/[범위] i    [address]    특정 주소를 범위 만큼 어셈블리로 출력

    x/[범위] s    [address]    특정 주소를 범위 만큼 문자열로 출력

    x/[범위] wx    [address]    특정 주소를 범위 만큼 16진수로 4byte 단위로 출력



    set {type} [address]    특정 메모리에 값을 지정

    ex) set {int} [address] = 100        이 주소에 100이라는 int형 정수가 들어감


    set $[register]    특정 레지스터에 값을 지정

    ex) set $eip = 0x41414141    eip의 값을 0x41414141로 지정


    참고 : http://shayete.tistory.com/entry/2-Stack-Corruption-gdb-%EB%AA%85%EB%A0%B9%EC%96%B4?category=857069

    반응형

    'System hacking training > Knowledge' 카테고리의 다른 글

    ELF Technique - RTL Chaining  (1) 2018.02.22
    ELF Technique - RTL(Return To Library)  (0) 2018.02.16
    ELF Memory Protection - DEP/NX  (0) 2018.02.10
    ELF Memory Protection - ASCII Armor  (0) 2018.02.06
    ELF Memory Protection - ASLR  (0) 2018.02.06
Designed by Tistory.