myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Reihenfolge des allozierten Speichers auf dem Stack stimmt nicht?

Willkommen

myGully

Links

Forum

 
 
 
Themen-Optionen Ansicht
Prev Vorheriger Beitrag   Nächster Beitrag Next
Ungelesen 12.06.11, 20:18   #1
MaSydJun
Anfänger
 
Registriert seit: Jun 2011
Beiträge: 13
Bedankt: 0
MaSydJun ist noch neu hier! | 0 Respekt Punkte
Standard Reihenfolge des allozierten Speichers auf dem Stack stimmt nicht?

Hallo,

bin Backfrisch hier im Forum.

Hab folgende Frage bzw. kuriose Feststellung:

Ich definiere 2 Variablen (in C):

Code:
char flag = 0;
char buffer[5];
Im Debugger bekomme ich folgende Infos:
Code:
(gdb) x/x &flag
0xbffff39f:	0xfff3b400
(gdb) x/s buffer
0xbffff39a:	 "\374\267ȅ\004"
Nun, hier ist ja noch alles in Ordnung: `flag' ist vor `buffer' auf dem Stack

Wenn ich jetzt aber für den buffer mehr Speicher allozier wirds komisch:

Code:
char flag = 0;
char buffer[10];
GDB sagt:
Code:
(gdb) x/x &flag
0xbffff391:	0xd0bfff00
(gdb) x/s buffer
0xbffff392:	 "\377\277\320j\353\267\340\204", <incomplete sequence \374\267>
Jetzt ist `buffer' vor `flag' auf dem Stack. Das erscheint mir extrem verrückt.

Ich will nämlich eigentlich einen Buffer Overflow erzeugen und so die Variable `flag' überschreiben.

Warum werden die beiden Variablen in verschiedenen Reihenfolgen auf den Stack gelegt?

Vielen Dank für Müh und Not
MaSydJun ist offline   Mit Zitat antworten
 


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:31 Uhr.


Sitemap

().