User Tools

Site Tools


laboratoare:laborator-09

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
laboratoare:laborator-09 [2015/12/11 19:11]
razvan.deaconescu [[1.5p] 7. Buffer overflow cu date de la intrarea standard și fgets()]
laboratoare:laborator-09 [2016/01/09 13:38] (current)
razvan.deaconescu [[2p] Bonus: Buffer overflow pentru binar]
Line 119: Line 119:
 <note tip> <note tip>
 Urmăriți pagina de manual a [[http://​man7.org/​linux/​man-pages/​man3/​fgets.3.html|funcției fgets()]] pentru a afla ce parametri primește. Urmăriți pagina de manual a [[http://​man7.org/​linux/​man-pages/​man3/​fgets.3.html|funcției fgets()]] pentru a afla ce parametri primește.
 +</​note>​
 +
 +<note tip>
 +Pentru apelul funcției ''​fgets''​ folosiți construcția<​code>​
 +call _fgets
 +</​code>​
 +De asemenea, marcați simbolul ca fiind extern folosind construcția<​code>​
 +extern _fgets
 +</​code>​
 </​note>​ </​note>​
  
Line 137: Line 146:
 De cele mai multe ori vom identifica vulnerabilități de tip buffer overflow în programe scrise în C. Acolo trebuie să vedem ce buffere sunt și care este distanța de la buffer la variabila dorită pentru a putea face suprascriere. De cele mai multe ori vom identifica vulnerabilități de tip buffer overflow în programe scrise în C. Acolo trebuie să vedem ce buffere sunt și care este distanța de la buffer la variabila dorită pentru a putea face suprascriere.
  
-Este important de avut în vedere distanța între un buffer și o altă variabilă în C poate nu corespunde cu cea %%"din teren"​%%;​ compilatorul poate face actualizări,​ reordonări etc.+<note important>​ 
 +Este important de avut în vedere ​că distanța între un buffer și o altă variabilă în C poate nu corespunde cu cea %%"din teren"​%%;​ compilatorul poate face actualizări,​ reordonări, poate lăsa spații libere între variabile ​etc. 
 +</​note>​
  
 Pentru exercițiul curent, accesați directorul ''​c-buffer-overflow/''​ din arhiva de resurse a laboratorului și observați codul sursă aferent în C. Pentru cazul în care doriți să nu mai compilați voi codul aveți în arhivă și fișierul limbaj de asamblare echivalent și fișierul în cod obiect și fișierul executabil. Pentru exercițiul curent, accesați directorul ''​c-buffer-overflow/''​ din arhiva de resurse a laboratorului și observați codul sursă aferent în C. Pentru cazul în care doriți să nu mai compilați voi codul aveți în arhivă și fișierul limbaj de asamblare echivalent și fișierul în cod obiect și fișierul executabil.
Line 170: Line 181:
 </​code>​ </​code>​
 </​note>​ </​note>​
 +
 +===== Soluții =====
 +
 +[[http://​elf.cs.pub.ro/​asm/​res/​laboratoare/​lab-09-sol.zip|Soluții de referință pentru exercițiile de laborator]]
 +
laboratoare/laborator-09.1449853888.txt.gz · Last modified: 2015/12/11 19:11 by razvan.deaconescu