This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
teme:tema-3 [2016/01/18 11:56] razvan.deaconescu [Setup] |
teme:tema-3 [2016/01/19 02:50] razvan.deaconescu [Trimitere și notare] |
||
---|---|---|---|
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: 12.01.2016 ''13:02'' | + | * Data ultimei modificări: 19.01.2016 ''01:46'' |
* 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: |