X-Git-Url: https://git.siccegge.de//index.cgi?p=talk%2Ffrida.git;a=blobdiff_plain;f=vortrag.tex;h=e694975367d993dcdcf801d191eb8ff734bab904;hp=a0cbe8c7862cd8b8735c2940882a7fbc8c9bc32d;hb=b689bfe155b7d2f37b706fda5724bbc23e9f6f6a;hpb=dff2abffac4101182f7b0b312fc9969d19297d26 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}{}