8. Dezember 2012 00:53

Re: Viele Leute ersparen sich eben untaugliche Methoden.....

Bonita.M schrieb am 7. Dezember 2012 21:47

> >> Erstens schützt hier DEP auch weil die entsprechenden
> >> Datenbereiche nicht ausführbar bleiben.

> > Was schützt er noch? Überschrieben werden zeiger auf
> > Funktionen, und deren Argumente...

> Äh, schon mal nachgedacht wozu DEP dienen soll? DEP soll
> das Einschleusen von beliebigem Code verhindern - und das
> tut es in solchen Fällen genauso als würde man eine Rück-
> sprungadresse sowie Code in den Stack einschleusen.


Dafür liegt aber die Rücksprungadresse auf beschreibbarem Speicher,
der gar nicht ausführbar sein. Du veränderst Sprungziele, NICHT den
Code selbst. Deshalb nützt Dir hier DEP überhaupt  nichts.

> >> Zweitens wer setzt denn variabel lange Arrays in einem
> >> Objekt in C++ ein? Wenn ich C++ nutze, dann arbeite
> >> ich doch in sol-

> > z.B. wenn Objekte eingelesen werden....

> Was passiert denn bitte beim "Einlesen von Objekten" (ich
> hab den Verdacht, Du argumenrierst hier mit Worthülsen)?
>

Welchen Verdacht Du hegst, ist mir ziemlich sch*egal. Gucke Dir
einmal Code an, der Zeichnugnsobjekte einliest....

> >> ... Fällen mit std::string oder std::vector.

> > was nützt es Dir hier?

> Die variabel langen Datenstrukturen bei denen ein Puffer-
> überlauf induziert worden wäre lägen diese im Stack liegen
> dann eben wo anders und das Überschreiben der VTable
> -Pointer passiert nicht. Außerdem ist das Handling solcher
> Puffer anders und einfacher so dass man nicht so leicht
> entsprechende Programmierfehler macht.

Gegenstandslos. Real-World-Bindings sehen anders aus.

HA

Anzeige