Toteuta seuraavat ohjelmat C/C++-kielellä. Käännä ja suorita ohjelmat. Kerro, mitä tapahtuu ja miksi.
Vinkkejä saat materiaalista aliotsikon puskuriylivuodot alta.
T1: Kirjoita ohjelma, joka saa aiheuttaa taulukon ylivuodon. (0,5 pistettä)
T2: Kirjoita ohjelma, joka aiheuttaa yhden yli -vuodon (off-by-one). (0,5 pistettä)
T3: Kirjoita ohjelma, joka aiheuttaa kasan ylivuodon (heap overflow). (0,5 pistettä)
T4: Kirjoita ohjelma, joka saa aikaan funktion ylivuodon (function pointer). (0,5 pistettä)
T5: Kirjoita ohjelma, jossa on printf-haavoittuvuus. (0,5 pistettä)
T6: Piirrä kuva, josta selviää, miten ohjelman kutsupino (stack / call stack) toimii. (1,5 pistettä)
T7: Piirrä kuva tehtävän 1 puskuriylivuotohaavoittuvuudesta. Kuvasta tulee selvitä, miten suoritus siirtyy haitalliseen koodiin. (2 pistettä)