Carsten: Virensequenzen in JPG und GD-Lib

Beitrag lesen

Hi Tom,

Ein Überschreiben des Stacks ist aber schon ganz schön derb. Ich dachte immer, dass das in Protected Mode Systemen nicht mehr so einfach möglich sei. Da habe ich doch bei ordentlicher Programmierung gar keinen direkten Zugriff auf den Speicherbereich des Stacks.

Doch. C(++) legt bestimmte (=funktionslokale Auto-) Variablen auf dem Stack an. Auch Arrays. Verletzt man jetzt Arraygrenzen (also Zugriff ausserhalb des definierten Bereichs) überschreibt man auf dem Stack andere Variablen und irgendwann auch die Rücksprungadresse zum Aufrufer der Funktion. Da aus irgendeinem unverständlichen Grund Code auf dem Stack ausgeführt werden kann, sind (dadurch) recht einfache Angriffe möglich: Der Inhalt, der Überläuft, enthält gleich den Code mit der Angriffsfunktion - nebst dem auf sich selber gezieltem Überschreiben der Rücksprungadresse.

Gruß,
  Carsten