Hier ist, wie ein Stapelrahmen aussehen sollte:Mein Stack-Frames unterscheiden sich von dem Erbe einer
(high memory addresses)
-function arguments
-return address
-saved frame pointer
-local variables
(low memory addresses)
Die Frage ist, warum mein Stack-Frames so aussehen:
(high memory addresses)
-return address
-saved frame pointer
-local variables
-function arguments
(low memory addresses)
ich es bemerkt beim Debuggen in gdb. Ich code in C und kompiliere mit gcc 5.4.0 auf Kali Linux x86_64 (Intel Core i7).
C-Code:
void test_function(int a, int b, int c, int d) {
int flag;
char buffer[10];
flag = 31337;
buffer[0] = 'A';
}
int main() {
test_function(1, 2, 3, 4);
return 0;
}
Wert von RBP in main:
0x7fffffffe260
Montageanleitung nach test_functtion Rufadresse:
0x00000000004004e1
Ergebnis von x Befehl auf RSP, während sie in der Rahmen test_function:
0x7fffffffe240: 0x00000004 0x00000003 0x00000002 0x00000001
0x7fffffffe250: 0x00400441 0x00000000 0x004003b0 0x00007a69
0x7fffffffe260: 0xffffe270 0x00007fff 0x004004e1 0x00000000
0x7fffffffe270: 0x004004f0 0x00000000 0xf7a575f0 0x00007fff
Da der Stapel _downwards_ wächst. – tkausl
Ich weiß, aber wenn Sie es umkehren, entspricht es nicht einmal. –
"So sollte ein Stack-Frame aussehen:". Woher hast du das? – kaylum