--- a/hws/hw03.tex Tue Oct 04 13:44:05 2016 +0100
+++ b/hws/hw03.tex Tue Oct 04 17:10:01 2016 +0100
@@ -16,14 +16,17 @@
\item Why is it crucial for a buffer overflow attack that the stack
grows from higher addresses to lower ones?
-\item If the attacker uses a buffer overflow attack in order to
-inject code, why can this code not contain any zero bytes?
+\item What does it mean for the stack to be executable and why is this
+ important for a buffer overflow attack?
+
+\item If the attacker uses a buffer overflow attack in order to inject
+ code, why can this code not contain any zero bytes?
\item How does a stack canary help with preventing a buffer-overflow
attack?
-\item Why does randomising the addresses from where programs
- are run help defending against buffer overflow attacks?
+\item Why does randomising the addresses from where programs are run
+ help defending against buffer overflow attacks?
\item What is a format string attack?
@@ -37,9 +40,9 @@
overflow attacks? (Hint: Why are C-programs prone to such attacks,
but not Java programs.)
-\item When filling the buffer that is attacked with a
-payload (starting a shell), what is the purpose of
-padding the string at the beginning with NOP-instructions.
+\item When filling the buffer that is attacked with a payload
+ (starting a shell), what is the purpose of padding the string at the
+ beginning with NOP-instructions.
\item \POSTSCRIPT
\end{enumerate}