This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
laboratoare:laborator-10 [2016/01/09 12:48] razvan.deaconescu [Setup] |
laboratoare:laborator-10 [2016/01/09 13:39] (current) razvan.deaconescu [[3p] BONUS Graceful exit] |
||
---|---|---|---|
Line 267: | Line 267: | ||
ni | ni | ||
</code> În acest moment veți face jump la adresa stocată în vârful stivei adică acolo unde programul așteaptă adresa de retur. Dacă totul e în regulă, veți face jump în funcția ''flag1''. | </code> În acest moment veți face jump la adresa stocată în vârful stivei adică acolo unde programul așteaptă adresa de retur. Dacă totul e în regulă, veți face jump în funcția ''flag1''. | ||
+ | </note> | ||
+ | |||
+ | <note important> | ||
+ | Dacă ați completat corect payload-ul, la transmiterea payload-ului către programul ''shellcode.exe'' veți avea afișat mesajul dat de variabila ''honeypot'' din fișierul ''shellcode.asm'', anume //You shouldn't be here!//. | ||
</note> | </note> | ||
Line 273: | Line 277: | ||
Modificați sursa ''gen_payload.py'' astfel încât să genereze un payload care să aducă programul să apeleze funcția ''flag2''. | Modificați sursa ''gen_payload.py'' astfel încât să genereze un payload care să aducă programul să apeleze funcția ''flag2''. | ||
- | <note> | + | <note tip> |
- | **Hints**: Câte argumente are funcția? | + | Câte argumente are funcția? |
Pentru ce valori ale argumentelor ajunge funcția să treacă testele? | Pentru ce valori ale argumentelor ajunge funcția să treacă testele? | ||
Cum trebuie să arate bufferul de intrare astfel încât atunci când se ajunge în funcție parametrii să se găsească pe pozițiile corespunzătoare pe stivă? | Cum trebuie să arate bufferul de intrare astfel încât atunci când se ajunge în funcție parametrii să se găsească pe pozițiile corespunzătoare pe stivă? | ||
Line 281: | Line 285: | ||
Scrieți modificările necesare în ''gen_payload.py'' și generați un nou payload. | Scrieți modificările necesare în ''gen_payload.py'' și generați un nou payload. | ||
- | ==== [3p] BONUS Graceful exits ==== | + | <note important> |
+ | Dacă ați completat corect payload-ul, la transmiterea payload-ului către programul ''shellcode.exe'' veți avea afișat mesajul dat de variabila ''great'' din fișierul ''shellcode.asm'', anume //Mad skills, yo!//. | ||
+ | </note> | ||
+ | ==== [3p] BONUS Graceful exit ==== | ||
+ | |||
+ | Ați observat că, pentru payload-ul anterior, în care apelați funcția ''flag2()'' deși se execută codul dorit de noi, programul în continuare crapă. De ce? Corectați acest lucru. Generați noi payload-uri prin care după ce se execută codul dorit, programul să se termine cu succes. | ||
+ | |||
+ | ===== Soluții ===== | ||
+ | |||
+ | [[http://elf.cs.pub.ro/asm/res/laboratoare/lab-10-sol.zip|Soluții de referință pentru exercițiile de laborator]] | ||
- | Ați observat că deși se execută codul dorit de noi, programul în continuare crapă. De ce? Corectați acest lucru. Generați noi payload-uri prin care după ce se execută codul dorit, programul să se termine cu succes. |