KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I want to skip a line in C, the line x=1; in the main section using bufferoverflow ; however, I don't know why I can not skip the address from 4002f4 to the next address 4002fb in spite of the fact that I am counting 7 bytes form <main+35> to <main+42> . I also have configured the options the randomniZation and execstack environment in a Debian and AMD environment, but I am still getting x=1; . What it's wrong with this procedure? I have used dba to debug the stack and the memory addresses: 0x00000000004002ef <main+30>: callq 0x4002a4 **<function>** **0x00000000004002f4** <main+35>: movl $0x1,-0x4(%rbp) **0x00000000004002fb** <main+42>: mov -0x4(%rbp),%esi 0x00000000004002fe <main+45>: mov $0x4629c4,%edi void function(int a, int b, int c) { char buffer[5]; int *ret; ret = buffer + 12; (*ret) += 8; } int main() { int x = 0; function(1, 2, 3); x = 1; printf("x = %i \n", x); return 0; }
Tags (comma-separated)
Save Edits
Cancel