Von einem ins nächste Stackframe



  • Hallo
    Ich würde gerne mal wissen,was der Stack im Speicher eigentlich ist.
    Er ist wohl kein Hardwarbaustein,sondern Software und wird wahrscheinlich(so wie ich das verstanden habe) erst im RAM nach Code- und Heapsegment virtuel erstellt,d.h. Speicher für ihn alloziiert.Jedes Unterprogramm bekommt sein eigenes Stackframe.
    Wenn das soweit richtig war, nun meine Frage:Ist es möglich von einem Stackframe einer Unterfunktion ins nächste zuzugrefen?
    Und wie siehts Programmübergreifend aus?Kann ein Programm auf den Stack eines anderen zugreifen?
    MFG Hans



  • zum Thema Stack lies dir mal http://de.wikipedia.org/wiki/Stapelspeicher durch.
    Es ist ein Speicherbereich im RAM, im Register sp ist ein Pointer auf das letzte Element auf dem Stack.

    Ja, jedes Programm hat sein eigenes Stack Segment.

    Im Realmode/Ring 0 ist es durchaus möglich auf den Stack anderer Programme zuzugreifen, sofern du die Adresse weißt.

    Da man damit natürlich Schabernack zu Hauf treiben kann, auch aus versehen, wurde der protected mode erfunden, welcher derartige Zugriffe versucht zu unterbinden. Heutzutage versuchen v.a. Virenprogrammierer immer neue Möglichkeiten zu finden auf den Speicherbereich fremder Programme (und damit auch auf den Stack) zuzugreifen.

    Als Antwort auf deine Frage kann ich dir sagen, es ist Möglich auf den Stack anderer Programme zuzugreifen, auch wenn dies sehr schwer und v.a. unerwünscht ist.


Anmelden zum Antworten