\documentclass[aspectratio=169,16pt]{beamer}

\usetheme[department=FakIM,pageNumbers]{OTHR}

% document language and hyphenation
\usepackage[ngerman]{babel}
% \usepackage[utf8]{luainputenc}
% \usepackage{filecontents}
\usepackage{subfigure}

% code listings
\usepackage{listings}
\usepackage{minted}

\usepackage{enumerate}
\usepackage{calc}

\usepackage[plain]{fancyref}

% math stuff
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mathtools}

\usepackage{chronology}

\usepackage[backend=biber,style=alphabetic]{biblatex}
\addbibresource{bibliography.bib}
% \bibliographystyle{amsalpha}

% acronyms
\usepackage{acro}
\acsetup{single,make-links=true}
\input{acronyms}

% custom commands
\input{commands}

\graphicspath{{assets/}}

\useDepartmentLogo

\AtBeginSubsection[]
{%
  \begin{frame}
    \frametitle{Inhalt}
    \tableofcontents[
      currentsection,
      hideothersubsections,
      sectionstyle=show/hide,
      subsectionstyle=show/shaded/hide,
    ]
  \end{frame}
  \addtocounter{framenumber}{-1}% If you don't want them to affect the slide number
}

\begin{document}
\newcommand{\genemail}[1]{\href{mailto:#1}{\textless\nolinkurl{#1}\textgreater}}
\title{Buffer Overflows}
\author[Valentin~Brandl]{Valentin Brandl~\genemail{mail@vbrandl.net}}
\institute{Fakultät Informatik und Mathematik}
\date{\today}

% Angepasstes Titelformat definieren (verwendet bewusst nicht die
% Beamer-Infrastruktur, um einfache Anpassungen zu zeigen)
\newcommand{\fillme}{\vskip0pt plus 1filll}
\newenvironment{references}{\begin{tiny}\begin{flushleft}}%
    {\end{flushleft}\end{tiny}\vspace*{\fill}}
\defbeamertemplate*{title page}{customized}[1][]
{
  \vspace*{1em}\usebeamerfont{title}\textbf{\inserttitle}\bigskip\par

  \begin{scriptsize}
  \insertauthor\bigskip\par
  \textit{\insertinstitute}\\\insertdate
  \end{scriptsize}

  % \fillme\begin{references}
  %   \(^{1}\){\color{gray}{GPG/PGP-ID \href{http://pgp.mit.edu/pks/lookup?op=vindex&search=0xD22BCBB9E835336F}{E835336F},
  %   Fingerprint: A62E FFFC 4029 7339 357B  D04D D22B CBB9 E835 336F.}}\\
  %  \(^{2}\){\color{gray}{GPG/PGP-ID \href{http://keys.gnupg.net/pks/lookup?op=get&search=0xF16F252398356E1E}{98356E1E},
  %   Fingerprint: 5920 9407 AB5C 8B28 3C7B 4F02 F16F 2523 9835 6E1E.}}
  % \end{references}
}

\maketitle

\frame{%
  \frametitle{Inhalt}
  \tableofcontents[
    sectionstyle=show/show,
    subsectionstyle=hide/hide,
  ]
}

\section{Problem}
\begin{frame}
\frametitle{Problem}
\begin{itemize}
  \item Maschinennahe Programmiersprachen ohne Memorysafety (z.B. C, C++, Assembly, FORTRAN) erlauben es, Speicher beliebig zu beschreiben

  \item Bei fehlender Validierung kann ein Programm mehr Speicher schreiben, als eigentlich reserviert wurde und dabei andere Daten im RAM überschreiben

  \item Entsprechend präparierter Input kann dazu führen, dass ein Angreifer den Ablauf der Programmausführung übernehmen kann
\end{itemize}
\end{frame}

\section{Beispiel}
\begin{frame}
\inputminted{c}{assets/vuln.c}
\end{frame}

\section{Stack Layout, Execution Flow}
\begin{frame}
% \frametitle{Stack Layout, Execution Flow}
\end{frame}

\section{Exkurs: Shellcode}
\begin{frame}
% \frametitle{Exkurs: Shellcode}
\end{frame}

\section{Exploitation}
\begin{frame}
% \frametitle{Exploitation}
\end{frame}

\section{Aktuelle Situation}
\begin{frame}
% \frametitle{Aktuelle Situation}
\end{frame}


\appendix
% \nocite{*}
\section*{Quellen}
% \begin{frame}[allowframebreaks,nosection]
\begin{frame}[noframenumbering,plain,allowframebreaks]
  \frametitle{Quellen}

  \printbibliography[heading=none]{}
\end{frame}

\end{document}
