\documentclass[11pt]{scrartcl} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[ngerman]{babel} \usepackage{lmodern} \usepackage{graphicx} \usepackage{listings} \usepackage{xspace} \usepackage{amsmath} \usepackage{algorithm} \usepackage{algpseudocode} \usepackage{xifthen} \usepackage{xcolor} \usepackage[a4paper,lmargin={2cm},rmargin={2cm},tmargin={2.5cm},bmargin = {2.5cm},headheight = {4cm}]{geometry} \usepackage{amsmath,amssymb,amstext,amsthm} \usepackage[shortlabels]{enumitem} \usepackage[headsepline]{scrlayer-scrpage} \pagestyle{scrheadings} \usepackage{titling} \usepackage{etoolbox} \usepackage{tikz} \usetikzlibrary{shapes, arrows, calc, automata, arrows.meta, positioning,decorations.pathmorphing,backgrounds,decorations.markings,decorations.pathreplacing, graphs} \usetikzlibrary{matrix,shapes,arrows,positioning,chains, calc} \usetikzlibrary{arrows.meta,matrix,shapes,arrows,positioning,chains, calc} \tikzset{% initial text={}, state/.style={circle, draw, minimum size=.6cm}, every initial by arrow/.style={-stealth}, every loop/.append style={-stealth}, >=stealth } \ohead{\parbox[t]{.5\linewidth}{\raggedleft \theauthor}} \ihead{System Security, SoSe 24, Assignment \thesheetnr} % Sheet number \newcounter{sheetnr} \newcommand{\sheetnr}[1]{\setcounter{sheetnr}{#1}} % Exercise environments \newenvironment{exercise}[2][]{\section*{#2\expandafter\ifstrempty\expandafter{#1}{}{\ #1}}}{} \newenvironment{subexercises}{\begin{enumerate}[a), font=\bfseries, wide, labelindent=0pt]}{\end{enumerate}} \newenvironment{subsubexercises}{\begin{enumerate}[i), font=\bfseries, wide, labelindent=0pt]}{\end{enumerate}} % Makros % MACRO for whole diagram % #1: total width of diagram % #2: total height of diagram % #3: nodes, paths, ... \newcommand\protocolflow[3]{ \begin{center} \begin{tikzpicture}[x=#1cm,y=#2cm] #3 \end{tikzpicture} \end{center} } % MACRO for path line shortening % #1: start coordinate % #2: target coordinate % #3: text above arrow \newcommand{\package}[3]{ \path[*-{latex[width=5pt, length=5pt]}] (#1) edge node [above] {#3} (#2); } % Anpassen --> % \author{Benjamin Haschka\\Sascha Tommasone\\Paul Zinselmeyer} \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}