1
0

thesis: Complete 1.1

This commit is contained in:
2025-08-05 12:52:04 +02:00
parent 786d5cac35
commit 92487d1d18
2 changed files with 23 additions and 12 deletions

1
.gitignore vendored
View File

@@ -4,3 +4,4 @@ bin/
*.o *.o
*.log *.log
*.pdf *.pdf
related-work/

View File

@@ -1,12 +1,22 @@
\chapter{Introduction}\label{ch:introduction} \chapter{Introduction}\label{ch:introduction}
Lorem Ipsum. Intercepting (also known as Hooking, or Tracing) system or function calls allows one to trace what a given program does.
This information is useful for security analysis or when testing or verifying a program.
This chapter gives a general overview about what the motivation and goal for this work were (Section~\ref{sec:motivation-and-goal}), and what the difference between system calls and function calls is (Section~\ref{sec:definitions}).
\section{Motivation and Goal}\label{sec:motivation-and-goal} \section{Motivation and Goal}\label{sec:motivation-and-goal}
Lorem Ipsum. When teaching students about Operating Systems, their interfaces, and standard libraries, C is still a widely used language.
Especially when using Linux.
Therefore, it is obvious, why many university courses still require students to write their assignments and exams in C\@.
The problem when trying to verify, if students correctly implemented their assignment is that low-level OS constructs (like semaphores, pipes, sockets, memory management) make it hard to run automated tests, because the testing system needs to keep track, set up, and verify the usage of these resources.
The goal of this work was to find a way to easily intercept system or function calls and to verify if students called the right functions with the right arguments at the right time.
This restriction in scope allows to focus on simple binary programs without having to think about complex or I/O heavy programs.
Furthermore, in this setting the source code of the student's programs is obviously available because this is what they need to deliver.
The availability of source code is a key concern when trying to intercept function or system calls as will be clear in the next chapters.
\section{Definitions}\label{sec:definitions} \section{Definitions}\label{sec:definitions}
@@ -30,26 +40,26 @@ See also Section~\ref{sec:methods-for-intercepting}.
Lorem Ipsum. Lorem Ipsum.
https://dl.acm.org/doi/10.1145/3728874
What other solutions are available?
What are the differences?
What are the characteristics?
\subsection{GDB Checker}\label{subsec:gdb-checker} \subsection{GDB Checker}\label{subsec:gdb-checker}
Lorem Ipsum. Lorem Ipsum.
\subsection{zpoline}\label{subsec:zpoline} \subsection{Binary-Rewriting-Based}\label{subsec:binary-rewriting-based}
\subsubsection{zpoline}
Lorem Ipsum. Lorem Ipsum.
\cite{zpoline} \cite{zpoline}
\subsection{DataHook}\label{subsec:datahook}
\subsubsection{DataHook}
Lorem Ipsum. Lorem Ipsum.
\cite{datahook} \cite{datahook}
\subsection{Non-Binary-Rewriting-Based}\label{subsec:non-binary-rewriting-based}
Lorem Ipsum.