007
04.12.2004, 15:47 Uhr
~cisdur
Gast
|
hallo nochmals,
vielleicht sollte ich die frage umformulieren und anders stellen. es ist ja kein schweres durch das debuggen herauszufinden, wo die rücksprungadresse steht und wo die zeichenkette steht, so dass ich, wenn ich eine zeichenkette mit ausreichender länge eingebe, die rückspringadresse überschreiben kann. das ist auch ohne weiteres möglich, das bekomm ich auch ohne weiteres hin.
ich frage mich nur, warum die distanz 32 bytes sind. es bezieht sich also auf die nutzung des stacks. das stichwort alignment würde nochmals 3 byte (char[5] + 3) erklären aber dann wäre ich erst mit meiner rechnung bei: 16 bytes, also gerade mal die hälfte.
ich selbst mache ein doppelstudium dort an der tu, mathe und info. nun, dass wir sowas im dritten semester machen, halte ich eigenltich gar nicht für so verkehrt. im dritten beschäftigen wir uns in info eigentlich ausschließlich mit Betriebssystemen, also z.B. Schedulingstrategien, Seitenzugriffsstrategien, und eben Speicher (-verwaltung). dass wir hauptsächlich C verwenden ist daher auch nicht verwunderlich. zum thema speicher gehört nunmal auch der stack und damit auch die sog. buffer overflow bugs. hans, die stoffliche aufteilung bei uns ist eigentlich schon ziemlich anders als, das was du geschrieben hast. im ersten, zweiten semester hatten wir neben mikroprogrammierung und assembler (grundlagen der informatik) eine einführung in java und dann wurden alle (un-)möglichen entwurfsmuster wie composite pattern, brückenmuster, ... bis zum geht nicht mehr durchgenommen. dann gabs noch einen haufen terminierungsbeweise und hoorekalkül (korrektheitsbeweise).
An der TU München hält Frau Prof. Feldmann diese Vorlesung im Moment. www.net.in.tum.de falls es jemanden interessiert.
um es nochmals zu betonen, die aufgabe zu lösen ist kein problem gewesen, es geht mir nur um das verständnis.
gruß |