\section{Format String Exploitation} Der erste Versuch ist, viele Format-Strings als Vorname und Nachname einzugeben und das Ergebnis zu beobachten. Mit einem Debugger kann die Speicheraddresse der 3 Wichtigen Variablen ausgelesen werden. \begin{figure}[H] \begin{center} \includegraphics[width=0.9\textwidth]{format-string/stack} \caption{Vorname, Nachname und Key im Stack} \label{fig:Vorname, Nachname und Key im Stack} \end{center} \end{figure} Der Key ist im Speicher unter der Adresse 0xbffff2ec abgespeichert und kann mit dem Format String \verb|%19$i| erreicht und dezimal ausgegeben werden. \begin{figure}[H] \begin{center} \includegraphics[width=0.8\textwidth]{format-string/done} \caption{Zahl richtig geraten} \label{fig:Zahl richtig geraten} \end{center} \end{figure} \subsection{Warum so gefährlich \& was getan werden muss} Durch einen Format String Exploit kann jede Stelle im Speicher ausgelesen werden. Damit ist die Vertraulichkeit, ein Teil der ``CIA'', gebrochen. Format Strings sollten immer als Teil des Programms angegeben werden, nicht als Teil der Eingabe. Außerdem könnten die Formatzeichenfolgen als konstanten deklariert werden.