I have a small question. I know that the %x format specifier can be used to read values from the stack in a format string attack.
I found the following code:
%08x%08x%08x%08x
What does the 08 mean? What is it doing exactly? Thanks :)
Break-down:
8
says that you want to show 8 digits0
that you want to prefix with 0
's instead of just blank spacesx
that you want to print in lower-case hexadecimal.Quick example (thanks to Grijesh Chauhan):
#include <stdio.h> int main() { int data = 29; printf("%x\n", data); // just print data printf("%0x\n", data); // just print data ('0' on its own has no effect) printf("%8x\n", data); // print in 8 width and pad with blank spaces printf("%08x\n", data); // print in 8 width and pad with 0's return 0; }
Output:
1d 1d 1d 0000001d
Also see http://www.cplusplus.com/reference/cstdio/printf/ for reference.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With