KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm not really getting how this code does what it does: char shellcode[] = "\xbb\x00\x00\x00\x00" "\xb8\x01\x00\x00\x00" "\xcd\x80"; int main() { int *ret; ret = (int *)&ret + 2; (*ret) = (int)shellcode; } Okay, I know: int *ret; sets a pointer of int. and: ret = (int *)&ret + 2; sets the address of ret and 2 bytes (I think.) But I don't get what this means: (int *)&ret I know what &ret means but not what (int *)&ret means. Also, how does it execute the shellcode by assigning the value of shellcode to ret ? UPDATE: What is the difference between: (int *)&ret + 2 and: &ret + 2
Tags (comma-separated)
Save Edits
Cancel