L'attaque de la chaîne de format sur printf que vous avez mentionnée n'est pas spécifique au formatage "%x" - dans tous les cas où printf a plus de paramètres de formatage que de variables passées, il lira des valeurs de la pile qui ne lui appartiennent pas. Vous aurez le même problème avec %d par exemple. %x est utile lorsque vous voulez voir ces valeurs en hexadécimal.
Comme expliqué dans les réponses précédentes, %08x produira un nombre hexagonal de 8 chiffres, complété par des zéros précédents.
En utilisant le formatage de votre exemple de code dans printf, sans paramètres supplémentaires :
printf ("%08x %08x %08x %08x");
Récupère 4 paramètres de la pile et les affiche sous forme de nombres hexadécimaux à 8 chiffres.