Jo, das tolle ist nur, das es dabei um Puffer auf dem Stack geht,
da er nach unten wächst, wird beim buffer overflow evtl. die Rücksprung adresse überschrieben.
puffer 0
...
puffer n-1
rücksprung eip
wenn der angreifer einen solchen puffer überlauf findet, legt er seinen pösen, pösen code im puffer ab und überschreibt dazu noch die Rücksprungadresse. mit dem Anfang des Puffers,
beim rücksprung aus der Funktion wird dann der Code im puffer ausgeführt!
beim amd64 kann das verhindert werden, indem man für den stack das nx-bit setzt.
Abschmieren tut der Prozess/Thread dann trotzdem, aber der Code wird nicht ausgeführt.
Bei heap overflows wird meistens nur der Heap corrupted und das Programm macht auch Latte, aber das Code auf dem Heap ausgeführt wird, ist sehr unwahrscheinlich, man bräuchte ja erstmal wieder einen buffer overflow, um den Control Flow dahin zulenken.
Wie gesagt, möglichst nicht soweit kommen lassen, immer sauber Programmiernen
MfG
DDR-RAM