From b689bfe155b7d2f37b706fda5724bbc23e9f6f6a Mon Sep 17 00:00:00 2001 From: Christoph Egger Date: Thu, 8 Oct 2015 14:05:59 +0200 Subject: [PATCH] Separate chapters from main file --- chapters/design.tex | 40 +++++++++++++++++ chapters/implementation.tex | 45 +++++++++++++++++++ chapters/vision.tex | 14 ++++++ vortrag.tex | 89 ++----------------------------------- 4 files changed, 102 insertions(+), 86 deletions(-) create mode 100644 chapters/design.tex create mode 100644 chapters/implementation.tex create mode 100644 chapters/vision.tex diff --git a/chapters/design.tex b/chapters/design.tex new file mode 100644 index 0000000..f5aef26 --- /dev/null +++ b/chapters/design.tex @@ -0,0 +1,40 @@ +\section{Design Overview} +\subsection{Serialization} +\begin{frame}{Serialization} + \begin{itemize} + \item Storing \emph{Facts} (and later \emph{Patches}) for the Binary + \item ZIP archive with base state and linear sequence of + transactions + \begin{itemize} + \item Each transaction with enough information to reverse-apply it + \item Transactions can not only be written to disk but also + e.\,g. sent over the network to remote viewers + \end{itemize} + \end{itemize} +\end{frame} + +\subsection{QSignals} +\begin{frame}{QSignals} + \begin{itemize} + \item Only option really for the GUI part + \item Properly handles passing messages between + (Q)Threads. Disassembler already runs asyncron to the GUI and the + interpreter + \end{itemize} +\end{frame} + +\subsection{Scripting} +\begin{frame}{Scripting} + \begin{itemize} + \item Keep complex logic out of the core as far as possible + \begin{itemize} + \item finding probably functions in the text section + \item Detecting structure of \texttt{libgcc\_s} \texttt{\_start} + \end{itemize} + \end{itemize} +\end{frame} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../vortrag" +%%% End: diff --git a/chapters/implementation.tex b/chapters/implementation.tex new file mode 100644 index 0000000..ac98136 --- /dev/null +++ b/chapters/implementation.tex @@ -0,0 +1,45 @@ +\section{Current State} +\subsection{Disassembler Core} +\begin{frame}{Disassembler Core} + \begin{itemize} + \item Recursive Disassembler + \item MachO / PE / ELF handling + \item Whatever ISA LLVM supports, frida supports (x86, arm, POWER, + mips, \dots{}) + \item Use Symbols when available, still find \texttt{\_start} if not + \item Assembly dialect suckless\texttrademark{} configurable + \end{itemize} +\end{frame} + +\subsection{GUI} +\begin{frame}{GUI} + \begin{itemize} + \item Classical Control-Flow Diagram + \item Hyperlinked references + \item Automagic Layout + \item Grouping for functions + \end{itemize} +\end{frame} + +\subsection{Scripting} +\begin{frame}{Scripting} + \begin{itemize} + \item Plugin Interface, Plug your own! + \item GUILE bindings with access to the core datastructures + \begin{itemize} + \item Full geiser support (Connect your editor to frida when + writing scripts)! + \item Missing: wrapper for nicer interface + \end{itemize} + \item iPython currently explored + \begin{itemize} + \item Qt IPython Widget + \item Alternative socket connection + \end{itemize} + \end{itemize} +\end{frame} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../vortrag" +%%% End: diff --git a/chapters/vision.tex b/chapters/vision.tex new file mode 100644 index 0000000..c8e2607 --- /dev/null +++ b/chapters/vision.tex @@ -0,0 +1,14 @@ +\section{Vision} +\begin{frame}{Vision} + \begin{itemize} + \item LLDB + \item clang-based indexing of \texttt{/usr/include} + \item Calculation of Path-Conditions + \item XMPP PubSub based Multiplayer mode + \end{itemize} +\end{frame} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "../vortrag" +%%% End: diff --git a/vortrag.tex b/vortrag.tex index a0cbe8c..e694975 100644 --- a/vortrag.tex +++ b/vortrag.tex @@ -139,92 +139,9 @@ \tableofcontents{} \end{frame} -\section{Current State} -\subsection{Disassembler Core} -\begin{frame}{Disassembler Core} - \begin{itemize} - \item Recursive Disassembler - \item MachO / PE / ELF handling - \item Whatever ISA LLVM supports, frida supports (x86, arm, POWER, - mips, \dots{}) - \item Use Symbols when available, still find \texttt{\_start} if not - \item Assembly dialect suckless\texttrademark{} configurable - \end{itemize} -\end{frame} - -\subsection{GUI} -\begin{frame}{GUI} - \begin{itemize} - \item Classical Control-Flow Diagram - \item Hyperlinked references - \item Automagic Layout - \item Grouping for functions - \end{itemize} -\end{frame} - -\subsection{Scripting} -\begin{frame}{Scripting} - \begin{itemize} - \item Plugin Interface, Plug your own! - \item GUILE bindings with access to the core datastructures - \begin{itemize} - \item Full geiser support (Connect your editor to frida when - writing scripts)! - \item Missing: wrapper for nicer interface - \end{itemize} - \item iPython currently explored - \begin{itemize} - \item Qt IPython Widget - \item Alternative socket connection - \end{itemize} - \end{itemize} -\end{frame} - -\section{Design Overview} -\subsection{Serialization} -\begin{frame}{Serialization} - \begin{itemize} - \item Storing \emph{Facts} (and later \emph{Patches}) for the Binary - \item ZIP archive with base state and linear sequence of - transactions - \begin{itemize} - \item Each transaction with enough information to reverse-apply it - \item Transactions can not only be written to disk but also - e.\,g. sent over the network to remote viewers - \end{itemize} - \end{itemize} -\end{frame} - -\subsection{QSignals} -\begin{frame}{QSignals} - \begin{itemize} - \item Only option really for the GUI part - \item Properly handles passing messages between - (Q)Threads. Disassembler already runs asyncron to the GUI and the - interpreter - \end{itemize} -\end{frame} - -\subsection{Scripting} -\begin{frame}{Scripting} - \begin{itemize} - \item Keep complex logic out of the core as far as possible - \begin{itemize} - \item finding probably functions in the text section - \item Detecting structure of \texttt{libgcc\_s} \texttt{\_start} - \end{itemize} - \end{itemize} -\end{frame} - -\section{Vision} -\begin{frame}{Vision} - \begin{itemize} - \item LLDB - \item clang-based indexing of \texttt{/usr/include} - \item Calculation of Path-Conditions - \item XMPP PubSub based Multiplayer mode - \end{itemize} -\end{frame} +\input{chapters/design} +\input{chapters/implementation} +\input{chapters/vision} \begin{frame}{Name Wanted} \begin{block}{} -- 2.39.2