diff --git a/Assignment 5 - Software Security - Teil 1/abgabe.tex b/Assignment 5 - Software Security - Teil 1/abgabe.tex index 9c390be..5a6efbd 100644 --- a/Assignment 5 - Software Security - Teil 1/abgabe.tex +++ b/Assignment 5 - Software Security - Teil 1/abgabe.tex @@ -70,4 +70,22 @@ \sheetnr{5} % <-- Anpassen % \begin{document} +\begin{exercise}[Crackme]{2} + Die Funkion \lstinline{verify_key} leitet das Passwort aus einem geheimen Schlüssel ab, indem der ASCII-Wert jedes Zeichens, abhängig von dessen Position, verändert wird. + Dem ASCII-Wert jedes Zeichens wird der doppelte Positionswert, bei 0 startend, abgezogen. + + Die Funktion gibt den Wert \lstinline{1} zurück, falls das abgeleitete Passwort mit der konstanten Zeichenkette \lstinline{MMNNQ} übereinstimmt. + Andernfalls wird der Wert \lstinline{0} zurückgegeben. +\end{exercise} + +\begin{exercise}[System Calls und Shellcode]{3} +\begin{subexercises} +\item Ein Linux-Syscall auf der x86-Architektur ist als i386-Architektur in \lstinline{syscall(2)} der Linux Manpages spezifiziert. + oohhh + Dabei wird die Zahlenkennung des Syscalls in Register eax übergeben. + Bis zu 6 Argumente können in den Registern \lstinline{ebx}, \lstinline{ecx}, \lstinline{edx}, \lstinline{esi}, \lstinline{edi} und \lstinline{ebp} übergeben werden. + Mit dem Aufruf der Instruktion \lstinline{int $0x80} wird der Syscall ausgelöst und der Syscall-Handler im Kernel durch Auslösen eines Interrupts ausgeführt. + Ausgaben des Syscalls werden in den Registern eax und edx zurückgegeben. +\end{subexercises} +\end{exercise} \end{document}