# HG changeset patch # User Christian Urban # Date 1412682487 -3600 # Node ID 01fe5aba87816e904dfb538c9f90b9dc39654719 # Parent 0d5e21110beedaab498fdab8fd5abb0d78c7bb72 updated diff -r 0d5e21110bee -r 01fe5aba8781 hws/hw03.pdf Binary file hws/hw03.pdf has changed diff -r 0d5e21110bee -r 01fe5aba8781 slides/slides03.pdf Binary file slides/slides03.pdf has changed diff -r 0d5e21110bee -r 01fe5aba8781 slides/slides03.tex --- a/slides/slides03.tex Tue Oct 07 11:13:40 2014 +0100 +++ b/slides/slides03.tex Tue Oct 07 12:48:07 2014 +0100 @@ -345,13 +345,13 @@ \only<2>{ \begin{textblock}{7}(5,8) \footnotesize -\lstinputlisting[language=C,xleftmargin=5mm,numbers=none]{../progs/example1a.s} +\lstinputlisting[language={[x86masm]Assembler},morekeywords={movl},xleftmargin=5mm,numbers=none]{../progs/example1a.s} \end{textblock}} \only<3>{ \begin{textblock}{7}(5,8) \footnotesize -\lstinputlisting[language=C,xleftmargin=5mm,numbers=none]{../progs/example1b.s} +\lstinputlisting[language={[x86masm]Assembler},morekeywords={movl,movw},xleftmargin=5mm,numbers=none]{../progs/example1b.s} \end{textblock}} \end{frame} @@ -499,13 +499,44 @@ \begin{itemize} \item use safe library functions -\item stack caneries +\item stack canaries \item ensure stack data is not executable (can be defeated) \item address space randomisation (makes one-size-fits-all more difficult) \item choice of programming language (one of the selling points of Java) +\end{itemize} -\end{itemize} - +\only<2>{ +\begin{textblock}{7}(6,1) + \begin{bubble}[5cm] + \begin{tabular}{cp{2cm}} + \begin{tikzpicture}[baseline=40mm,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\small\alert{\textbf{random}}}; + \draw[line width=1mm] (-1,6) -- (1,6); + \draw (0,6) node[anchor=south] {\tt buf}; + \draw[line width=1mm] (-1,7) -- (1,7); + \end{tikzpicture} & + canary: a random value after the local variables + \end{tabular} +\end{bubble} +\end{textblock}} + + \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%