(c) teso. all rights reversed.
exploiting format string vulnerabilities - Was genau ist ein Format-String ?

Was genau ist ein Format-String ?

Ein format String ist eine Mischung aus Text und sogenannter Format-Parameter.

Beispiel:
        printf ("Die Zahl lautet: %d\n", 1911);

einige Format Parameter

%ddecimal (int)value
%uunsigned decimal (unsigned int)value
%xhexadecimal (unsigned int)value
%sstring ((const) (unsigned) char *)reference
%nnumber of bytes written so far, (* int)reference


Das '\' Zeichen dient zum escapen von speziellen Zeichen. Es wird jedoch vom C Compiler beim Kompilieren ersetzt, so dass es als fertiges Byte bereits im Format-String vorhanden ist. Es wird nicht von den *printf Funktionen umgewandelt und hat eigentlich nichts mit den Format-Funktionen zu tun.

Beispiel:
        printf ("Die Zahl lautet: \x25d\n", i);
funktioniert, da "\x25" beim Kompilieren zu '%' umgewandelt wird.

<< - < - > - >>