diff -r 88416b7df38c -r 0105257429f3 slides/slides03.tex --- a/slides/slides03.tex Mon Oct 06 00:57:44 2014 +0100 +++ b/slides/slides03.tex Mon Oct 06 02:16:53 2014 +0100 @@ -524,19 +524,65 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[c] +\frametitle{The Stack} + +\begin{textblock}{7}(1,1) + \begin{tikzpicture}[scale=0.8] + %\draw[step=1cm] (-3,-1) grid (3,8); + \draw[gray!20,fill=gray!20] (-1, 0) rectangle (1,-1); + \draw[line width=1mm] (-1,-1.2) -- (-1,7.4); + \draw[line width=1mm] ( 1,-1.2) -- ( 1,7.4); + \draw (0,-1) node[anchor=south] {\tt main}; + \draw[line width=1mm] (-1,0) -- (1,0); + \draw (0,0) node[anchor=south] {\tt arg$_3$=3}; + \draw[line width=1mm] (-1,1) -- (1,1); + \draw (0,1) node[anchor=south] {\tt arg$_2$=2}; + \draw[line width=1mm] (-1,2) -- (1,2); + \draw (0,2) node[anchor=south] {\tt arg$_1$=1}; + \draw[line width=1mm] (-1,3) -- (1,3); + \draw (0,3.1) node[anchor=south] {\tt ret}; + \draw[line width=1mm] (-1,4) -- (1,4); + \draw (0,4) node[anchor=south] {\small\tt last sp}; + \draw[line width=1mm] (-1,5) -- (1,5); + \draw (0,5) node[anchor=south] {\tt buf$_1$}; + \draw[line width=1mm] (-1,6) -- (1,6); + \draw (0,6) node[anchor=south] {\tt buf$_2$}; + \draw[line width=1mm] (-1,7) -- (1,7); + \draw (2,6.1) node[anchor=south] {\code{$esp}}; + \draw[<-,line width=0.5mm] (1.1,7) -- (2.5,7); + + \draw[->,line width=0.5mm] (1,4.5) -- (1.8,4.5) -- (1.8, 0) -- (1.1,0); + \draw[->,line width=0.5mm] (1,3.5) -- (2.5,3.5); + \draw (2.6,3.1) node[anchor=south west] {\tt back to main()}; + + \draw[->,red,line width=2mm] (2.5,0.1) -- (4.2,0.1); +\end{tikzpicture} +\end{textblock} + +\begin{textblock}{7}(6.4,8) +\begin{bubble}[6.8cm] +\footnotesize +\lstinputlisting[language=C,xleftmargin=5mm]{../progs/example1.c} +\end{bubble} +\end{textblock} + + +\end{frame} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[c] \frametitle{The Problem} \begin{itemize} \item The basic problem is that library routines in C look as follows: +\end{itemize} \begin{center} -\footnotesize\lstinputlisting[language=C]{../progs/app5.c} +\small\lstinputlisting[language=C,numbers=none]{../progs/app5.c} \end{center} -\item the resulting problems are often remotely exploitable -\item can be used to circumvents all access control\\ -(for grooming botnets for further attacks) -\end{itemize} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%