\documentclass{report} \usepackage[a4paper]{geometry} \usepackage[utf8x]{inputenc} \usepackage[T1]{fontenc} \usepackage[french]{babel} \usepackage[cyr]{aeguill} \usepackage{xspace} \usepackage{hyperref} \usepackage{svg} \usepackage[nottoc, notlof, notlot]{tocbibind} \setlength{\parindent}{2em} \setlength{\parskip}{0.5em} \renewcommand{\baselinestretch}{1.4} \usepackage{minted} \usepackage{verbatim} \usemintedstyle{tango} % TODO: handle reference name \makeatletter \newenvironment{code}[2] {\VerbatimEnvironment %\begin{listing}[H] \begin{minted}[frame=lines,framesep=2mm,linenos,label=#2]{#1}} {\end{minted} %\end{listing} } \makeatother \usepackage{titlesec} % \titleformat % {\chapter} % command % [block] % shape % {\bfseries\Large} % format % {Chapitre \ \thechapter} % label % {0ex} % sep % { % \rule{\textwidth}{1pt} % \centering % } % before-code % [ % \centering % \vspace{-1.5ex}% % \rule{\textwidth}{0.3pt} % ] % after-code \titleformat{\chapter}[frame] {\normalfont} {\filright \large \enspace Chapitre \thechapter\enspace} {8pt} {\Large\bfseries\filcenter} \titlespacing{\chapter}{0pc}{-5pc}{2pc} \newcommand{\inltype}[1]{\texttt{\detokenize{#1}}} \begin{document} \title{{\Huge{Rapport de stage --- VideoLabs}} \\ Renforcement de la sécurité d'un lecteur vidéo multiplate-forme par séparation des privilèges} \author{Alexandre Janniaux} \date{19 septembre 2018} \maketitle \clearpage \section*{Remerciements} \input{chapters/thanks} \tableofcontents \chapter*{Introduction} \input{chapters/vlc_introduction} \part{VLC-sandbox, sécurité par isolation et limitation des capacités} \chapter{Qu'est-ce que le sandboxing} \input{chapters/what_is_sandboxing} \chapter{Pourquoi faire du sandboxing dans VLC} \input{chapters/why_sandboxing} \part{Fonctionnement de VLC} \chapter{Architecture modulaire} \input{chapters/vlc_explanations} \part{Abstractions apportées dans la sandbox} \chapter{Question d'architecture: broker vs orchestrateur} \input{chapters/sandbox_architecture} \chapter{Communication inter-processus} \input{chapters/sandbox_ipc} \chapter{Gestion des messages reçus: boucle événementielle} \input{chapters/sandbox_eventloop} \chapter{Gestion des blocs mémoires} \input{chapters/sandbox_memory_blocks} \chapter{Technique de sandboxing naïve, isolation par module} \input{chapters/sandbox_pattern_modules} \chapter{Gestion des objets de libvlccore, design pattern} \input{chapters/sandbox_pattern_libvlccore} \part{Implémentation de la sandbox sous Linux} \chapter{Passage de descripteur de fichiers entre processus} \input{chapters/linux_file_descriptor} \chapter{Gestion asynchrone des messages reçus} \input{chapters/linux_eventloop} % \chapter{Routage des messages dans les différents modèles} % % \chapter{Gestion des accès et permissions via socket unix et descripteur de fichiers} \part{Implémentation de la sandbox sous Windows} \chapter{Passage de descripteur de fichiers entre processus} \input{chapters/windows_ipc} \chapter{Gestion asynchrone des messages reçus} \input{chapters/windows_eventloop} %\chapter{Routage des messages dans le modèle broker} % %\chapter{Gestion des accès et de la mémoire via ACL} \part{Finalisation et optimisation d'un moteur de rendu pour la réalité virtuelle} \chapter{Qu'est-ce que la réalité virtuelle} \chapter{Objectifs du projet} \input{chapters/cinema.tex} \part{Missions subsidiaires} \chapter{Ajout de fonctionnalités mineures et correction de bogues} \input{chapters/other_bug_features} \chapter{Implémentation d'un encodeur matériel sous Android} \input{chapters/other_android_mediacodec} \chapter{Ajout du support d'égaliseur externe sur Android} \chapter{Amélioration d'un module d'extraction de flux vidéos depuis des torrents} \input{chapters/torrent} \bibliographystyle{plain} \bibliography{bibliography} \end{document}