User Tools

Site Tools


teme:tema-3

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
Last revision Both sides next revision
teme:tema-3 [2016/01/19 00:07]
adrian.bogatu [Trimitere și notare]
teme:tema-3 [2016/01/19 02:53]
razvan.deaconescu [Tema 3]
Line 4: Line 4:
 * Deadline Hard: 19.01.2016 23:55 * Deadline Hard: 19.01.2016 23:55
 * Data publicării:​ 09.01.2016 ''​01:​15''​ * Data publicării:​ 09.01.2016 ''​01:​15''​
-* Data ultimei modificări: ​18.01.2016 ''​11:56''​+* Data ultimei modificări: ​19.01.2016 ''​02:52''​
 * Responsabili:​ * Responsabili:​
   * [[vladimir.diaconescu@cs.pub.ro|Vladimir Diaconescu]]   * [[vladimir.diaconescu@cs.pub.ro|Vladimir Diaconescu]]
Line 22: Line 22:
 ===== Setup ===== ===== Setup =====
  
-Pentru dezvoltarea temei recomandăm ​să folosiți mașina virtuală de Windows descrisă în secțiunea [[:​utile#​masini-virtuale|Mașini virtuale]] din pagina de resurse. Mașina virtuală de Windows este numită ''​SSS - Windows 7 32bit''​. Această mașină virtuală este folosită și pentru verificarea temei pe [[https://​vmchecker.cs.pub.ro/​ui/#​IOCLA|vmchecker]].+Pentru dezvoltarea temei va trebui ​să folosiți mașina virtuală de Windows descrisă în secțiunea [[:​utile#​masini-virtuale|Mașini virtuale]] din pagina de resurse. Mașina virtuală de Windows este numită ''​SSS - Windows 7 32bit''​. Această mașină virtuală este folosită și pentru verificarea temei pe [[https://​vmchecker.cs.pub.ro/​ui/#​IOCLA|vmchecker]]. 
 + 
 +<note important>​ 
 +Puteți testa anumite funcționalități pe alt sistem, dar implementarea voastră trebuie să meargă pe mașina virtuală. Este posibil ca, datorită mediului diferit, anumite payload-uri să meargă pe un alt sistem dar nu pe mașina virtuală. Folosiți, ca referință,​ mașina virtuală. 
 +</​note>​
  
 În [[http://​elf.cs.pub.ro/​asm/​res/​teme/​iocla-tema3-resurse.zip|arhiva de resurse a temei]] veți vedea că există fișierul ''​seed.c'',​ precum și scriptul Python ''​mangler.py''​. În [[http://​elf.cs.pub.ro/​asm/​res/​teme/​iocla-tema3-resurse.zip|arhiva de resurse a temei]] veți vedea că există fișierul ''​seed.c'',​ precum și scriptul Python ''​mangler.py''​.
Line 48: Line 52:
 gcc -o tema3.exe tema3.c gcc -o tema3.exe tema3.c
 </​code>​ </​code>​
 +
 +==== Simplificat ====
 +
 +Toți pașii de mai sus sunt realizați de scriptul de verificare (''​checker.py''​) din [[http://​elf.cs.pub.ro/​asm/​res/​teme/​iocla-tema3-resurse.zip|arhiva de resurse a laboratorului]]. Prin rularea scriptului de verificare se configurează variabila de mediu ''​PATH''​ se generează fișierul ''​tema3.c''​ și apoi se obține fișierul executabil aferent și se validează conținutul payload-urilor.
  
 ==== Dezactivare ASLR ==== ==== Dezactivare ASLR ====
Line 91: Line 99:
 Temele vor trebui încărcate pe platforma [[https://​vmchecker.cs.pub.ro/​ui/#​IOCLA|vmchecker]] (în secțiunea IOCLA) și vor fi testate automat. Arhiva încărcată va fi o arhivă ''​.zip''​ care trebuie să conțină: Temele vor trebui încărcate pe platforma [[https://​vmchecker.cs.pub.ro/​ui/#​IOCLA|vmchecker]] (în secțiunea IOCLA) și vor fi testate automat. Arhiva încărcată va fi o arhivă ''​.zip''​ care trebuie să conțină:
   * fișierele cu intrările pentru program: ''​payload_a'',​ ''​payload_b'',​ ''​payload_c''​   * fișierele cu intrările pentru program: ''​payload_a'',​ ''​payload_b'',​ ''​payload_c''​
-  ​fișierul sursă aferent: ''​tema3.c''​+    ​Dacă ați folosit un script atunci adăugați în arhiva submisă ​și scriptul cu care ați obținut acele payload-uri. 
 +      * Dacă nu ați folosit un script atunci adăugați în README modul de obținere a payload-urilor.
   * fișierul ''​credentials.txt''​ care conține numele, prenumele și a 3-a cifră din numărul grupei, fiecare pe câte o line, astfel:   * fișierul ''​credentials.txt''​ care conține numele, prenumele și a 3-a cifră din numărul grupei, fiecare pe câte o line, astfel:
-  ​+<​code>​ 
 +<​Nume>​ 
 +<​Prenume>​ 
 +<A 3-a cifră din numărul grupei></​code>​
   * fișier ''​README''​ ce conține descrierea implementării   * fișier ''​README''​ ce conține descrierea implementării
     * analiza statică (pe scurt)     * analiza statică (pe scurt)
     * cum ați determinat userul și parola de login     * cum ați determinat userul și parola de login
     * cum v-ați gândit să faceți programul să ajungă în ''​secret_func1'',​ ''​secret_func2'',​ ''​fopen''​     * cum v-ați gândit să faceți programul să ajungă în ''​secret_func1'',​ ''​secret_func2'',​ ''​fopen''​
 +  * scriptul (sau scripturile) de generare a fișierelor payload
  
 Punctajul este repartizat în felul următor: Punctajul este repartizat în felul următor:
Line 111: Line 124:
 ===== Precizări suplimentare ===== ===== Precizări suplimentare =====
  
-În cadrul corectării, ​vom verifica dacă ''​tema3.c''​ este într-adevăr fișierul ​generat pornind de la ''​seed.c''​ și datele voastre. ​Dacă există diferențe, nu se merge mai departe în procesul ​de corectare.+În cadrul corectării, ​fișierul ​''​tema3.c''​ este generat ​în mod automat ​pornind de la ''​seed.c''​ și datele voastre ​din fișierul ''​credentials.txt''​. Acest lucru este realizat de scriptul de verificare ''​checker.py''​ care verifică și corectitudinea conținutului fișierelor ​de tip payload. 
 + 
 +Datele din fișierul ''​credentials.txt''​ trebuie să fie corecte, cu excepția motivelor bine întemeiate.
  
 Din moment ce programul de intrare scris în C este dat, analiza statică presupune să interpretați cod C, nu assembly. Din moment ce programul de intrare scris în C este dat, analiza statică presupune să interpretați cod C, nu assembly.
teme/tema-3.txt · Last modified: 2016/01/19 10:55 by razvan.deaconescu