I have simple C program:
char user_input[100];
scanf("%s", user_input);
printf(user_input);
It is my understanding this represents security vulnerability; e.g. inputing a bunch of %x will print out the stack's content.
But how could one print a chosen memory location?
I read that:
\x10\x01\x48\x08_%08x.%08x.%08x.%08x.%08x|%s|
Should be dumping the memory's content at the location 0x08480110 from this paper. But instead, it is printing out the very next 4bytes to the format string on the stack. I'm trying to understand why.