User Tools

Site Tools


secure-low-level-programming:capitole:02-spatii-de-adrese

Differences

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

Link to this comparison view

Next revision
Previous revision
secure-low-level-programming:capitole:02-spatii-de-adrese [2018/12/16 13:29]
127.0.0.1 external edit
secure-low-level-programming:capitole:02-spatii-de-adrese [2018/12/17 17:06] (current)
razvan [Spațiul de adrese]
Line 1: Line 1:
 ====== 2. Spații de adrese ====== ====== 2. Spații de adrese ======
  
-TODO: Descriere scurtă+Ne interesează modul în care este structurat spațiul de adrese al unui proces pentru a înțelege vulnerabilitățile legate de memoria sa. Vom vorbi despre zonele din spațiul de adrese al unui proces, rolul fiecăreia și perspective de cum pot fi atacate.
  
 ===== Subiecte abordate ===== ===== Subiecte abordate =====
  
-  * TODO +  * procese 
-  * TODO+  * spațiul (virtual) de adrese al unui proces 
 +  * zone din spațiul virtual de adrese 
 +  * alocarea și accesarea memoriei
  
 ===== Resurse ===== ===== Resurse =====
Line 12: Line 14:
   * [[http://​koala.cs.pub.ro/​training/​res/​secure-low-level-programming/​slides/​02-spatii-de-adrese.pdf|Slide-uri]]   * [[http://​koala.cs.pub.ro/​training/​res/​secure-low-level-programming/​slides/​02-spatii-de-adrese.pdf|Slide-uri]]
   * [[http://​koala.cs.pub.ro/​training/​res/​secure-low-level-programming/​arc/​02-spatii-de-adrese-skel.zip|Arhiva de suport]]   * [[http://​koala.cs.pub.ro/​training/​res/​secure-low-level-programming/​arc/​02-spatii-de-adrese-skel.zip|Arhiva de suport]]
- 
-===== Alte resurse ===== 
- 
-  * TODO link 
-  * TODO link 
-  * TODO link 
  
 ===== Exerciții ===== ===== Exerciții =====
Line 26: Line 22:
 </​code>​ </​code>​
  
-==== Exercițiu 1 ====+==== Spațiul de adrese ​==== 
 + 
 +Accesăm directorul ''​address-space/''​ din arhiva de suport. 
 + 
 +Urmăriți conținutul fișierului ''​prog.c''​ și rulați executabilul ''​prog''​. 
 + 
 +Într-o altă consolă rulați comanda 
 +<​code>​ 
 +pmap -p $(pidof prog) 
 +</​code>​ 
 +Comanda afișează spațiul virtual de adrese al procesului. 
 + 
 +Dacă doriți să urmăriți continuu (automat) spațiul virtual de adrese al procesului, rulați comanda 
 +<​code>​ 
 +watch -d -n 1 pmap -p $(pidof prog) 
 +</​code>​ 
 + 
 +Treceți prin fiecare pas în program și rulați comanda de mai sus la fiecare pas pentru a vedea cum se modifică (sau nu) zonele din spațiul virtual de adrese al procesului.
  
-Accesăm directorul ''​lalala/''​ din arhiva ​de suport.+Faceți o modificare ca să alocați (într-o buclă, cel mai simplu) de 10 ori memorie ​de fiecare fel.
  
-TODO+==== Acces read-write ====
  
-==== Exercițiu 2 ====+Accesăm directorul ''​read-write-areas/''​ din arhiva de suport.
  
-Accesăm directorul ​''​lalala/'' ​din arhiva ​de suport.+Urmăriți conținutul fișierului ​''​prog.c'' ​și rulați executabilul ''​prog''​. Generați accesarea ​de fiecare tip (//read// sau //write//) a fiecărei zone de mari de memorie a unui procesDe ce la unele primiți //​segmentation fault//?
  
-TODO+==== Acces peste limite ====
  
-==== Exercițiu 3 ====+Accesăm directorul ''​over-the-edge/''​ din arhiva de suport.
  
-Accesăm directorul ​''​lalala/'' ​din arhiva ​de suport.+Urmăriți conținutul fișierului ​''​vuln.c'' ​și rulați executabilul ''​vuln''​. Observați cum accesarea dincolo ​de limitele buffer-ului nu generează //​segmentation fault//.
  
-TODO+Modificați programul pentru a vedea la ce index din cadrul fiecărei zone (''​data'',​ ''​stack'',​ ''​heap''​) obțineți //​segmentation fault//.
  
  
secure-low-level-programming/capitole/02-spatii-de-adrese.1544959771.txt.gz · Last modified: 2018/12/16 13:29 by 127.0.0.1