User Tools

Site Tools


gdb

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
gdb [2023/11/15 17:26] kresimirgdb [2025/12/01 11:40] (current) – external edit 127.0.0.1
Line 4: Line 4:
 Njime je moguće izvesti disassemble nad strojnim kodom, odnosno,  učiniti binarnu datoteku čitljivom. Njime je moguće izvesti disassemble nad strojnim kodom, odnosno,  učiniti binarnu datoteku čitljivom.
  
-U svrhe debuggiranja programa, izvorni kod se može kompilirati na način da I sami izvorni kod bude dostupan unutar binarne izvršne datoteke +U svrhe debuggiranja programa, izvorni kod se može kompilirati tako da I sami izvorni kod bude dostupan unutar binarne izvršne datoteke 
 postavljanjem tzv. debugging simbola unutar simboličke tablice binarne datoteke. Time je vidljiv kroz debugging alate poput gdb-a. postavljanjem tzv. debugging simbola unutar simboličke tablice binarne datoteke. Time je vidljiv kroz debugging alate poput gdb-a.
 Npr.  Npr. 
  gcc –g –o example example.c // (kompiliranje izvornog koda pisanog u c-u u svrhe debuggiranja radi se zastavicom –g)  gcc –g –o example example.c // (kompiliranje izvornog koda pisanog u c-u u svrhe debuggiranja radi se zastavicom –g)
  
-U slučaju analize binarne izvršne datoteke u svrhe binarne eksploatacije, ova opcija najčešće neće biti uključena zbog čega je potrebno razumijeti asemblerski jezik.+U slučaju analize binarne izvršne datoteke u svrhe binarne eksploatacije, ova opcija najčešće neće biti uključena zbog čega je potrebno razumjeti asemblerski jezik.
  
 #Sintaksa za naredbe: naziv_naredbe(kratica) #Sintaksa za naredbe: naziv_naredbe(kratica)
Line 17: Line 17:
  gdb <binarna_datoteka>  gdb <binarna_datoteka>
  
-Korisnik je predstavljen sa interaktivnim sučeljem programa+Korisnik je predstavljen interaktivnim sučeljem programa
 Poruka: (No debugging symbols found in binarna_datoteka) je pokazatelj da datoteka nije kompilirana s –g, time izvorni kod neće biti dostupan. Poruka: (No debugging symbols found in binarna_datoteka) je pokazatelj da datoteka nije kompilirana s –g, time izvorni kod neće biti dostupan.
  
Line 32: Line 32:
  
   *run<nowiki>(r)</nowiki> arg1 arg2…:    *run<nowiki>(r)</nowiki> arg1 arg2…: 
-    *Pokreće program zadanim argumentima+    *Pokreće program sa zadanim argumentima
  
   *break(b) function/address:   *break(b) function/address:
Line 118: Line 118:
 Pokretanje: Pokretanje:
  gdb main  gdb main
- 
-{{binary:gdbpokretanje.png}} 
  
 Prikaz funkcije main: Prikaz funkcije main:
  disas main  disas main
 +{{gdbdisas.png}}
  
 Postavljanje breakpointa na adresu main + 49 (mov edi, 0x405098): Postavljanje breakpointa na adresu main + 49 (mov edi, 0x405098):
  b *main + 49  b *main + 49
 +{{gdbbreak.png}}
  
 Pokretanje programa: Pokretanje programa:
  r  r
 +{{gdbrun.png}}
  
 Ispis vrijednosti registra edi: Ispis vrijednosti registra edi:
  i r edi //Rezultat je 0x407120  i r edi //Rezultat je 0x407120
 +{{gdbiredi.png}}
  
 Izvođenje sljedeće instrukcije (mov edi, 0x405098) Izvođenje sljedeće instrukcije (mov edi, 0x405098)
  ni  ni
 +{{gdbni.png}}
  
 Ponovni ispis vrijednosti registra edi: Ponovni ispis vrijednosti registra edi:
  i r edi //Rezultat je 0x405098  i r edi //Rezultat je 0x405098
 +{{gdbiredi2.png}}
  
 Ispis funkcije provjeri_lozinku: Ispis funkcije provjeri_lozinku:
  disas provjeri_lozinku  disas provjeri_lozinku
 +{{gdbdisas2.png}}
  
-Postavljanje breakpointa na provjeri_lozinku + 58+Postavljanje breakpointa na provjeri_lozinku + 58:
  b *provjeri_lozinku + 107  b *provjeri_lozinku + 107
  
Line 151: Line 156:
  
 Password: "mojalozinka123" Password: "mojalozinka123"
 +
 +{{gdbbreak2.png}}
  
 Ispis framea: Ispis framea:
  i f   i f 
 +{{gdbif.png}}
  
 Ispis memorije na stogu: Ispis memorije na stogu:
  x/20xb $rsp  x/20xb $rsp
 +{{gdbexamine.png}}
  
 Ispis stringa na vrhu stoga: Ispis stringa na vrhu stoga:
  x/s $rsp  x/s $rsp
 +{{gdbexamine2.png}}
  
 Prekid proces:  Prekid proces: 
  k  k
 +{{gdbkill.png}}
  
 Izlazak: Izlazak:
gdb.1700069215.txt.gz · Last modified: 2025/12/01 11:40 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki