\documentclass[a4,12pt]{article}

%% Projet Theo
%% Original: Jezz

\usepackage[francais]{babel}
\usepackage[latin1]{inputenc} %% les accents dans le fichier.tex
%\usepackage[T1]{fontenc}      %% Pour la césure des mots accentués
\usepackage{vmargin}          %%
\usepackage{amsmath}          %%
\usepackage{times}            %%

\pagestyle{headings}

\title{Tracage de Code}
\author{
  \textsc{Pouiller} Jérôme\\
  \textsc{Tessari} Marco\\
  \textsc{Ramirez} Guillaume}
\date{EPITA - Mai 2003}



\begin{document}
\maketitle                      %Page de garde
\newpage
\tableofcontents %Table des matières
\section{Introduction}
  \subsection{Qu'est ce que le tracage de code?}
    \begin{itemize}
      \item pseudo définition
      \item but du traçage de code (deboggeur, faille de sécurité...)
    \end{itemize}
  \subsection{Etat de l'art}
    \begin{itemize}
      \item outils déjà existant (hardware, deboggeur, désassembleur,
      traçage des appels systèmes)
     \item état de l'art (comment s'y prend on actuellement, ces limites, ce
       qu'on voudrait) (introduction de l'idée d'un décompilateur)
    \end{itemize}
  \subsection{Décompilateur}
    \begin{itemize}
      \item qu'est ce qu'un décompilateur?
      \item différentes parties d'un décompilateur (asm2ir, dataflow, control
        flow, typage)
    \end{itemize}

\section{De l'assembleur à la représentation } 
  \subsection{désassemblage}
  \subsection{pourquoi une représentation intermediare}
  \subsection{présentation de différentes représentations
    intermédiaires}

\section{Dataflow}
  \begin{itemize}
    \item suppression de la notion de registre (reperage de la vie de
    chaque variable)
    \item suppression de la notion de du registre de flags
    \item equivaut au flowgraph de T8
  \end{itemize}

\section{Controlflow}
  \begin{itemize}
    \item reperage des basic block (commence apres un saut et fini par
    un saut) (enumere les differents types de basic block) (cf
    tr421.ps page 4)
    \item construit la signature des fonction (ses parametre, ce
    qu'elle retourne, etc...)
    \item change les appel de fonction en code plus explicite (ie : a
    := func1(b,c f))
    \item reperage des if...then while, for, etc...
    \item methode : on trouve une facon de transphormer le code pour
    avoir le moin de goto possible
  \end{itemize}

\section{Analyse de type}
 voir http://www.cl.cam.ac.uk/users/am/papers/esop99.ps.gz
\section{Conclusion}
  \subsection{Etat des lieux}
    \begin{itemize}
      \item decompilateurs existans (dcc, SourceAgain...)
      \item les résultats optenus
    \end{itemize}

\section{LINKS}
\begin{itemize}
\item http://www.itee.uq.edu.au/~cristina/decomp01.pdf
\item http://www.it.uq.edu.au/~cristina/tr421.ps
\end{itemize}
\end{document}

\section{Biblio}
 ne pas oublier, faire plein de références.

