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
teme:tema-3 [2016/01/19 00:08]
adrian.bogatu [Trimitere și notare]
teme:tema-3 [2016/01/19 10:55] (current)
razvan.deaconescu [Tema 3]
Line 1: Line 1:
 ====== Tema 3 ====== ====== Tema 3 ======
  
-* Deadline Soft: 19.01.2016 23:55 +* Deadline Soft: 20.01.2016 23:55 
-* Deadline Hard: 19.01.2016 23:55+* Deadline Hard: 20.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 ''​10:55''​
 * 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. 
-  * fișierul ''​credentials.txt''​ care conține numele, prenumele și a 3-a cifră din numărul grupei, fiecare pe câte o line.+      * 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: 
 +<​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 110: 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.1453154895.txt.gz · Last modified: 2016/01/19 00:08 by adrian.bogatu