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/18 11:56]
razvan.deaconescu [Tema 3]
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]].
  
-Î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 ''​mangle.py''​.+<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''​.
  
 Pentru a genera fișierul sursă C plecând de la ''​seed.c'',​ rulați comanda:<​code>​ Pentru a genera fișierul sursă C plecând de la ''​seed.c'',​ rulați comanda:<​code>​
-python ​mangle.py <​nume>​ <​prenume>​ <a treia cifră din numărul grupei>+python ​mangler.py <​nume>​ <​prenume>​ <a treia cifră din numărul grupei>
 </​code>​ </​code>​
 unde: unde:
Line 36: Line 40:
 <​note>​ <​note>​
 De exemplu, pentru ''​Ionescu Anca-Monica''​ de la grupa ''​323CA'',​ modul de rulare a comenzii de generare a fișierului sursă C va fi<​code>​ De exemplu, pentru ''​Ionescu Anca-Monica''​ de la grupa ''​323CA'',​ modul de rulare a comenzii de generare a fișierului sursă C va fi<​code>​
-python ​mangle.py Ionescu Anca 3+python ​mangler.py Ionescu Anca 3
 </​code>​ </​code>​
 </​note>​ </​note>​
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 90: Line 98:
  
 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 ​sursă/​script-urile ce generează ​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: 
 +<​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 109: 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.1453111018.txt.gz · Last modified: 2016/01/18 11:56 by razvan.deaconescu