]> git.siccegge.de Git - talk/frida.git/blobdiff - vortrag.tex
Moar stuff
[talk/frida.git] / vortrag.tex
index 4871e1b54c3763375840ccd18833266d75079b53..a0cbe8c7862cd8b8735c2940882a7fbc8c9bc32d 100644 (file)
@@ -17,7 +17,7 @@
 \documentclass[12pt]{beamer}
 
 \usepackage{BeamerColor}
-
+\usepackage{textcomp}
 %% Beamer Layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \useoutertheme[subsection=false,shadow]{miniframes}
 \setbeamertemplate{footline}[frame number]
@@ -50,7 +50,7 @@
 %\usemintedstyle{trac}
 %\usemintedstyle{monokai}
 \setbeamerfont{frametitle}{size=\huge}
-\setcounter{tocdepth}{1}
+\setcounter{tocdepth}{2}
 \usepackage{booktabs}
 \usepackage{multirow}
 %use biblatex instead of bibtex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 \begin{document}
-\renewcommand{\inserttotalframenumber}{\pageref{lastslide}}
+%\renewcommand{\inserttotalframenumber}{\pageref{lastslide}}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\section{\scshape Einführung}
 \begin{frame}[plain]
 \title{FrIDa}
 \subtitle{A Free and Interactive Disassembler}
 \titlepage
 \end{frame}
 
+\AtBeginSection[]
+{
+  \begin{frame}
+    \frametitle{Table of Contents}
+    \tableofcontents[currentsection]
+  \end{frame}
+}
+
+\begin{frame}
+  \centering
+  \includegraphics[width=.7\textwidth]{images/frida}
+\end{frame}
+
+\begin{frame}{FrIDa}
+  \begin{columns}[T]
+    \begin{column}[T]{5em}
+      \includegraphics[width=\textwidth]{images/GPLv3}      
+    \end{column}
+    \begin{column}{23em}
+      \url{https://www.frida.xyz}\\
+      \url{https://doc.frida.xyz}\\
+      \url{https://projects.faui2k9.de/tag/frida/}
+    \end{column}
+  \end{columns}
+\bigskip
+  \begin{tabular}[ht]{lcr}
+    \parbox{3.0cm}{
+      \centering
+      \includegraphics[width=3.0cm]{images/LLVM}
+    } &
+    \parbox{4.0cm}{
+      \centering
+      \includegraphics[width=3.5cm]{images/guile}
+    } &
+    \parbox{3.0cm}{
+      \centering
+      \includegraphics[width=2.5cm]{images/Qt}
+    }
+  \end{tabular}
+\end{frame}
+
 \begin{frame}{Overview}
   \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}
 
-\begin{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}
 
-\section{Technical Overview}
+\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}
 
-\begin{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}
 
-\begin{frame}
-  
+\begin{frame}{Name Wanted}
+  \begin{block}{}
+    Mit der AS/400-Standardsoftware Frida 4.0 \dots
+  \end{block}
+  \begin{block}{}
+    Frida Software: FRamework for Image Dataset Analysis
+  \end{block}
+  \begin{block}{}
+    Frida: Inject JavaScript to explore native apps on Windows, Mac, Linux, iOS and Android
+  \end{block}
 \end{frame}
 
 \begin{frame}{Questions?}
   Download: https://static.siccegge.de/talks/frida-FAU-2015-10-09.pdf\\
   https://git.siccegge.de/?p=talk/frida.git
 \end{frame}
-
-
 \end{document}