91 lines
3.4 KiB
TeX
91 lines
3.4 KiB
TeX
\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}
|