User Tools

Site Tools


gdb

Differences

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

Link to this comparison view

Next revision
Previous revision
gdb [2023/11/15 17:21] – created 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 121: Line 121:
 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 149: 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.1700068889.txt.gz · Last modified: 2025/12/01 11:40 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki