Почему это печатает значение адреса памяти в 0x08480110? Я не уверен, почему есть 5% аргументов 08x - где это приведет вас к стеку?
address = 0x08480110
address (encoded as 32 bit le string): "\x10\x01\x48\x08"
printf ("\x10\x01\x48\x08_%08x.%08x.%08x.%08x.%08x|%s|");
Этот пример взят со страницы 11 этой статьи http://crypto.stanford.edu/cs155/papers/formatstring-1.2.pdf