mirror of
https://github.com/reactos/press-media.git
synced 2024-11-23 03:39:52 +00:00
[PRESS-MEDIA]
Add the slides of yesterday's presentation of my Printing Stack Thesis as well. Again, a PDF and the TeX source files are provided. svn path=/trunk/; revision=67
This commit is contained in:
parent
32c2354d82
commit
85b89a820b
BIN
Events/2015 - Printing Stack Thesis Presentation/slides.pdf
Normal file
BIN
Events/2015 - Printing Stack Thesis Presentation/slides.pdf
Normal file
Binary file not shown.
@ -0,0 +1,88 @@
|
||||
% Copyright 2007 by Till Tantau
|
||||
%
|
||||
% This file may be distributed and/or modified
|
||||
%
|
||||
% 1. under the LaTeX Project Public License and/or
|
||||
% 2. under the GNU Public License.
|
||||
%
|
||||
% See the file doc/licenses/LICENSE for more details.
|
||||
|
||||
\ProvidesPackageRCS $Header: beamercolorthemeeonerc.sty,v 1.4 2007/01/28 20:48:24 tantau Exp $
|
||||
|
||||
|
||||
\mode<presentation>
|
||||
|
||||
%%
|
||||
%% define colors
|
||||
%%
|
||||
\xdefinecolor{eonercred}{RGB}{219,62,52}
|
||||
|
||||
\xdefinecolor{ultralightred}{RGB}{250,220,216}
|
||||
\xdefinecolor{verylightred}{RGB}{244,183,177}
|
||||
\xdefinecolor{lightred}{RGB}{239,145,134}
|
||||
\xdefinecolor{normalred}{RGB}{219,62,52}
|
||||
\xdefinecolor{darkred}{RGB}{173,53,53}
|
||||
\xdefinecolor{verydarkred}{RGB}{125,35,19}
|
||||
|
||||
% Main colors
|
||||
\setbeamercolor*{normal text}{fg=black}
|
||||
|
||||
\setbeamercolor*{structure}{fg=eonercred}
|
||||
|
||||
\setbeamercolor*{palette primary}{use=structure,fg=structure.fg,bg=lightred}
|
||||
\setbeamercolor*{palette secondary}{use=structure,fg=structure.fg,bg=verylightred}
|
||||
\setbeamercolor*{palette tertiary}{use=structure,fg=structure.fg,bg=ultralightred}
|
||||
\setbeamercolor*{palette quaternary}{use=structure,fg=structure.fg,bg=ultralightred}
|
||||
|
||||
% Outer structure
|
||||
\setbeamercolor*{separation line}{bg=black} % Draw separation lines, part of default RWTH theme
|
||||
\setbeamercolor{frametitle}{fg=black}
|
||||
\setbeamercolor{title}{fg=eonerc}
|
||||
\setbeamercolor{subtitle}{fg=black}
|
||||
\setbeamercolor{author}{fg=black}
|
||||
\setbeamercolor{date}{fg=black}
|
||||
\setbeamercolor{section}{fg=black}
|
||||
|
||||
|
||||
|
||||
|
||||
%%
|
||||
%% settings for the title page
|
||||
%%
|
||||
\setbeamercolor{title in titlepage}{fg=eonercred}
|
||||
\setbeamercolor{title}{fg=eonercred}
|
||||
\setbeamercolor{block title}{fg=eonercred}
|
||||
\setbeamercolor{title in head/foot}{fg=eonercred}
|
||||
\setbeamercolor{text in footer}{fg=gray}
|
||||
\setbeamercolor{subtitle}{fg=black}
|
||||
\setbeamercolor{author in head/foot}{fg=black}
|
||||
\setbeamercolor{institute in head/foot}{fg=eonercred}
|
||||
|
||||
|
||||
|
||||
%%
|
||||
%% settings for the outer theme
|
||||
%%
|
||||
\setbeamercolor{framenumber in head/foot}{}
|
||||
\setbeamercolor{frametitle}{fg=black}
|
||||
\setbeamercolor{section}{fg=black}
|
||||
|
||||
%%
|
||||
%% settings for the table of contents
|
||||
%%
|
||||
\setbeamercolor{section in toc}{fg=black}
|
||||
\setbeamercolor{subsection in toc}{fg=black}
|
||||
|
||||
|
||||
%%
|
||||
%% settings for the inner theme (e.g. itemize)
|
||||
%%
|
||||
\setbeamercolor{enumerate item}{fg=eonercred}
|
||||
\setbeamercolor{enumerate subitem}{fg=eonercred}
|
||||
\setbeamercolor{enumerate subsubitem}{fg=eonercred}
|
||||
\setbeamercolor{itemize item}{fg=eonercred}
|
||||
\setbeamercolor{itemize subitem}{fg=eonercred}
|
||||
\setbeamercolor{itemize subsubitem}{fg=eonercred}
|
||||
|
||||
\mode<all>
|
||||
|
@ -0,0 +1,32 @@
|
||||
% Copyright 2007 by Till Tantau
|
||||
%
|
||||
% This file may be distributed and/or modified
|
||||
%
|
||||
% 1. under the LaTeX Project Public License and/or
|
||||
% 2. under the GNU Public License.
|
||||
%
|
||||
% See the file doc/licenses/LICENSE for more details.
|
||||
|
||||
\ProvidesPackageRCS $Header: beamerfontthemeeonerc.sty,v 1.13 2007/01/28 20:48:29 tantau Exp $
|
||||
|
||||
|
||||
\mode<presentation>
|
||||
|
||||
%%
|
||||
%% settings for the title page
|
||||
%%
|
||||
\setbeamerfont{title in title page}{size=\Large, series=\bfseries}
|
||||
\setbeamerfont{subtitle in title page}{size=\large, series=\bfseries}
|
||||
\setbeamerfont{author in title page}{size=\normalsize, series=\bfseries}
|
||||
\setbeamerfont{institute in title page}{size=\normalsize}
|
||||
\setbeamerfont{date in title page}{size=\normalsize}
|
||||
|
||||
%%
|
||||
%% settings for the header and footer (outer theme)
|
||||
%%
|
||||
\setbeamerfont{text in footer}{size*={9pt}{10.8pt}}
|
||||
\setbeamerfont{framenumber}{size=\small}
|
||||
\setbeamerfont{frametitle}{size=\large, series=\bfseries}
|
||||
\setbeamerfont{section}{size=\Large, series=\bfseries}
|
||||
|
||||
\mode<all>
|
@ -0,0 +1,181 @@
|
||||
% Copyright 2007 by Till Tantau
|
||||
%
|
||||
% This file may be distributed and/or modified
|
||||
%
|
||||
% 1. under the LaTeX Project Public License and/or
|
||||
% 2. under the GNU Public License.
|
||||
%
|
||||
% See the file doc/licenses/LICENSE for more details.
|
||||
|
||||
\ProvidesPackageRCS $Header: beamerinnerthemeeonerc.sty,v 1.4 2007/07/23 20:48:30 tantau Exp $
|
||||
|
||||
\RequirePackage{marvosym} % for \MVRightArrow (used in: itemize subitem)
|
||||
\RequirePackage{calc}
|
||||
|
||||
\mode<presentation>
|
||||
|
||||
\defbeamertemplate{title page}{smallbanner}{
|
||||
% The white bar, fills 1/3rd
|
||||
\usebeamercolor{title page bar}
|
||||
\begin{tikzpicture}[overlay, remember picture]
|
||||
\iftoggle{titlebanner}{%
|
||||
\coordinate (bannerPos) at ($(current page.north west)+(0.5\paperwidth,-0.1665\paperheight)$);
|
||||
\node[
|
||||
inner sep=0pt
|
||||
] (picture) at (bannerPos) {\includegraphics[height=.333\paperheight,width=\paperwidth]{\printtitlebanner}};
|
||||
}{%
|
||||
\node [
|
||||
fill=eonercred,
|
||||
minimum width=\paperwidth,
|
||||
minimum height=0.333\paperheight,
|
||||
anchor=north west,
|
||||
] (picture) at (current page.north west) {};
|
||||
}
|
||||
\coordinate (picture.south west) at ($(current page.north west)+(0, -0.333\paperheight)$);
|
||||
\coordinate (titlePos) at ($(picture.south west)+(2em, -1.0cm)$);
|
||||
\node [
|
||||
anchor=west,
|
||||
align=left,
|
||||
text={eonercred},
|
||||
font={\usebeamerfont{title in title page}},
|
||||
] (title) at (titlePos) {\inserttitle};
|
||||
\coordinate (subtitlePos) at ($(title.south west)+(0, -.3cm)$);
|
||||
\node [
|
||||
anchor=west,
|
||||
align=left,
|
||||
text={black},
|
||||
font={\usebeamerfont{subtitle in title page}},
|
||||
] (subtitle) at (subtitlePos) {\insertsubtitle};
|
||||
\coordinate (authorPos) at ($(subtitle.south west)+(0, -.6cm)$);
|
||||
\node [
|
||||
anchor=west,
|
||||
align=left,
|
||||
text={black},
|
||||
font={\usebeamerfont{author in title page}},
|
||||
] (author) at (authorPos) {\insertauthor};
|
||||
|
||||
\end{tikzpicture}
|
||||
|
||||
% Print institute logo to the bottom of the page
|
||||
\instlogobottom
|
||||
}
|
||||
|
||||
\defbeamertemplate{title page}{bigbanner}{
|
||||
% The white bar, fills 1/3rd
|
||||
\usebeamercolor{title page bar}
|
||||
\begin{tikzpicture}[overlay, remember picture]
|
||||
\iftoggle{titlebanner}{%
|
||||
\coordinate (bannerPos) at ($(current page.north west)+(0.5\paperwidth,-0.332\paperheight)$);
|
||||
\node[
|
||||
inner sep=0pt
|
||||
] (picture) at (bannerPos) {\includegraphics[height=.666\paperheight,width=\paperwidth]{\printtitlebanner}};
|
||||
}{%
|
||||
\node [
|
||||
fill=eonercred,
|
||||
minimum width=\paperwidth,
|
||||
minimum height=0.666\paperheight,
|
||||
anchor=north west,
|
||||
] (picture) at (current page.north west) {};
|
||||
}
|
||||
\coordinate (titlePos) at ($(picture.south west)+(2em, -1.0cm)$);
|
||||
\iftoggle{subtitle}{%
|
||||
\node [
|
||||
anchor=west,
|
||||
align=left,
|
||||
text={eonercred},
|
||||
font={\usebeamerfont{title in title page}},
|
||||
] (title) at (titlePos) {\inserttitle{} -- \insertsubtitle{}};
|
||||
}{%
|
||||
\node [
|
||||
anchor=west,
|
||||
align=left,
|
||||
text={eonercred},
|
||||
font={\usebeamerfont{title in title page}},
|
||||
] (title) at (titlePos) {\inserttitle{}};
|
||||
}
|
||||
\coordinate (authorPos) at ($(title.south west)+(0, -.3cm)$);
|
||||
\node [
|
||||
anchor=west,
|
||||
align=left,
|
||||
text={black},
|
||||
font={\usebeamerfont{author in title page}},
|
||||
] (author) at (authorPos) {\insertauthor};
|
||||
\end{tikzpicture}
|
||||
|
||||
% Print institute logo to the bottom of the page
|
||||
\instlogobottom
|
||||
}
|
||||
|
||||
%%%
|
||||
% Title page
|
||||
%%%
|
||||
\iftoggle{bigbanner}{%
|
||||
\setbeamertemplate{title page}[bigbanner]{}
|
||||
}{%
|
||||
\setbeamertemplate{title page}[smallbanner]{}
|
||||
}
|
||||
|
||||
|
||||
%
|
||||
% Itemize/Enumerate Layout
|
||||
%
|
||||
%1st Layer: Square
|
||||
\defbeamertemplate{itemize item}{layerOne}{\printBulletLayerOne}
|
||||
\setbeamertemplate{itemize item}[layerOne]
|
||||
|
||||
% 2nd Layer: Three bars
|
||||
\defbeamertemplate{itemize subitem}{layerTwo}{\printBulletLayerTwo}
|
||||
\setbeamertemplate{itemize subitem}[layerTwo]
|
||||
\defbeamertemplate{enumerate subitem}{layerTwo}{\alph{enumii})}
|
||||
\setbeamertemplate{enumerate subitem}[layerTwo]
|
||||
|
||||
% 3rd Layer: Two bars
|
||||
\defbeamertemplate{itemize subsubitem}{layerThree}{\printBulletLayerThree}
|
||||
\setbeamertemplate{itemize subsubitem}[layerThree]
|
||||
\defbeamertemplate{enumerate subsubitem}{layerThree}{\roman{enumiii})}
|
||||
\setbeamertemplate{enumerate subsubitem}[layerThree]
|
||||
|
||||
|
||||
\AtBeginSection[] % Do nothing for \section*
|
||||
{
|
||||
\setbeamertemplate{navigation symbols}{}
|
||||
\begin{frame}[plain]
|
||||
\begin{columns}
|
||||
\begin{column}{.05\paperwidth}
|
||||
\end{column}
|
||||
\begin{column}{.95\paperwidth}
|
||||
|
||||
\frametitle{~}
|
||||
\vspace{3cm}
|
||||
\begin {beamercolorbox}[sep=0pt]{section}
|
||||
\usebeamerfont{section}\insertsection
|
||||
\end {beamercolorbox}
|
||||
\instlogobottom
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
\AtBeginDocument
|
||||
{
|
||||
\iflanguage{ngerman}{\pdfbookmark[2]{Titelseite}{title}}{}
|
||||
\iflanguage{english}{\pdfbookmark[2]{Title page}{title}}{}
|
||||
|
||||
\frame{\titlepage}
|
||||
}
|
||||
|
||||
%%
|
||||
%% Table of Content Layout
|
||||
%%
|
||||
\defbeamertemplate{section in toc}{acssquare}{%
|
||||
\hspace*{1em}{\printBulletLayerOne}~~\inserttocsection%
|
||||
}
|
||||
\setbeamertemplate{section in toc}[acssquare]
|
||||
\defbeamertemplate{subsection in toc}{acsequiv}{%
|
||||
\hspace*{1em}\small\vspace{.5ex}\leftskip=1.2em%
|
||||
{\printBulletLayerTwo}~~\inserttocsubsection\par%
|
||||
}
|
||||
\setbeamertemplate{subsection in toc}[acsequiv]
|
||||
|
||||
\mode<all>
|
||||
|
@ -0,0 +1,119 @@
|
||||
\ProvidesPackageRCS $Header: beamerouterthemeeonerc.sty,v 1.9 2007/07/16 20:48:30 tantau Exp $
|
||||
\RequirePackage{calc} % needed for calculations of lengths
|
||||
|
||||
\mode<presentation>
|
||||
|
||||
\setbeamersize{sidebar width right=0mm} % no right sidebar.
|
||||
\setbeamersize{text margin right=1.9em}
|
||||
\setbeamersize{text margin left=.025\paperwidth}
|
||||
|
||||
% no sidebars
|
||||
\defbeamertemplate*{sidebar right}{rwth theme}{}
|
||||
\defbeamertemplate*{sidebar left}{rwth theme}{}
|
||||
|
||||
|
||||
\defbeamertemplate*{frametitle}{rwth theme}[1][left]{}
|
||||
|
||||
|
||||
%%
|
||||
%% Definition of the headline
|
||||
%%
|
||||
\edef\sepLineDist{.025\paperwidth}
|
||||
\edef\sepLineLength{\paperwidth-2*\sepLineDist}
|
||||
\defbeamertemplate*{headline}{rwth theme}[1][left]
|
||||
{
|
||||
\ifnum \insertpagenumber=1
|
||||
\else
|
||||
\leavevmode%
|
||||
% hbox is necessary for correct text positioning in frame
|
||||
\hbox{%
|
||||
\begin{beamercolorbox}[sep=0cm,ht=\headlineHeight, wd=\sepLineDist]{frametitle}
|
||||
\end{beamercolorbox}%
|
||||
}
|
||||
|
||||
% the actual footer definition
|
||||
\begin{tikzpicture}[remember picture, overlay]
|
||||
% bottom line
|
||||
\draw [] (toplineStart) -- (toplineEnd);
|
||||
\coordinate (titleHelper) at ($(current page.north west)!(toplineStart)!(current page.north east)$);
|
||||
\coordinate (titleAnchor) at ($(titleHelper)!.5!(toplineStart)$);
|
||||
\node [
|
||||
anchor=west,
|
||||
] at (titleAnchor) {\usebeamerfont{frametitle}\strut\insertframetitle};
|
||||
\end{tikzpicture}
|
||||
\fi
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
%% Definition of the footline
|
||||
%%
|
||||
\iftoggle{shortpagenumbers}{%
|
||||
\defbeamertemplate*{page numbering}{rwth theme}{%
|
||||
\insertframenumber
|
||||
}
|
||||
}{%
|
||||
\defbeamertemplate*{page numbering}{rwth theme}{%
|
||||
\insertframenumber~\protect\iflanguage{ngerman}{von}{}\protect\iflanguage{english}{of}{}~\inserttotalframenumber
|
||||
}
|
||||
}
|
||||
\newcommand{\nempty}[3]{\ifx#1\empty#3{}\else#2{}\fi}
|
||||
\defbeamertemplate*{footer first line}{rwth theme}{%
|
||||
\nempty{\insertshorttitle}{\insertshorttitle{}\enskip|\enskip}{}%
|
||||
\nempty{\insertauthor}{\insertauthor{}\enskip|\enskip}{}%
|
||||
\nempty{\insertshortinstitute}{\insertshortinstitute{}\enskip|\enskip}{}%
|
||||
}
|
||||
\defbeamertemplate*{footer second line}{rwth theme}{%
|
||||
\insertdate
|
||||
}
|
||||
\edef\footlineTextDist{.01\paperwidth}
|
||||
\defbeamertemplate*{footline}{rwth theme}
|
||||
{
|
||||
\ifnum \insertpagenumber=1
|
||||
\else
|
||||
\leavevmode%
|
||||
% hbox is necessary for correct text positioning in frame
|
||||
\hbox{%
|
||||
\begin{beamercolorbox}[sep=0cm,ht=\footlineHeight, wd=\sepLineDist]{frametitle}
|
||||
\end{beamercolorbox}%
|
||||
}
|
||||
|
||||
% the actual footer definition
|
||||
\begin{tikzpicture}[remember picture, overlay]
|
||||
\draw [] (bottomlineStart) -- (bottomlineEnd);
|
||||
|
||||
% Page Numbering
|
||||
\coordinate (pageNumberPosLot) at ($(current page.south east)!(bottomlineStart)!(current page.south west)$);
|
||||
\coordinate (pageNumerAnchor) at ($(bottomlineStart)!(ercrwthLogo.north west)!(pageNumberPosLot)$);
|
||||
\node [
|
||||
text=gray,
|
||||
anchor=north west,
|
||||
outer sep=0,
|
||||
inner sep=0
|
||||
] (pageNumber) at (pageNumerAnchor) {\usebeamertemplate{page numbering}};
|
||||
|
||||
% Footer Text 1st line
|
||||
\coordinate (firstLineAnchor) at ($(pageNumber.north east)+(\footlineTextDist, 0)$);
|
||||
\node [
|
||||
text=gray,
|
||||
anchor=north west,
|
||||
outer sep=0,
|
||||
inner sep=0
|
||||
] (footerFirstLine) at (firstLineAnchor) {\usebeamertemplate{footer first line}};
|
||||
|
||||
% Footer Text 2nd line
|
||||
\coordinate (secondLineAnchor) at ($(intersection of footerFirstLine.north west--footerFirstLine.south west and ercrwthLogo.south west--ercrwthLogo.south east)$);
|
||||
\node [
|
||||
text=gray,
|
||||
anchor=south west,
|
||||
outer sep=0,
|
||||
inner sep=0
|
||||
] (footerSecondLine) at (secondLineAnchor) {\usebeamertemplate{footer second line}};
|
||||
\end{tikzpicture}
|
||||
\fi
|
||||
|
||||
% Print institute logo to the bottom of the page
|
||||
\instlogobottom
|
||||
}
|
||||
|
||||
\mode<all>
|
@ -0,0 +1,166 @@
|
||||
% Copyright 2007 by Till Tantau
|
||||
% Copyright 2009 by Rainer Finocchiaro
|
||||
% Copyright 2012 by Georg Wassen
|
||||
%
|
||||
% This file may be distributed and/or modified
|
||||
%
|
||||
% 1. under the LaTeX Project Public License and/or
|
||||
% 2. under the GNU Public License.
|
||||
%
|
||||
% See the file doc/licenses/LICENSE for more details.
|
||||
|
||||
\ProvidesPackageRCS $Header: beamerthemeeonerc.sty,v 0.1 2012/12/13 wassen Exp $
|
||||
|
||||
\RequirePackage{xspace} % for \xspace
|
||||
\RequirePackage{etoolbox}
|
||||
|
||||
\newtoggle{bigbanner}
|
||||
\togglefalse{bigbanner}
|
||||
\DeclareOption{bigbanner}{\toggletrue{bigbanner}}
|
||||
\newtoggle{subtitle}
|
||||
\togglefalse{subtitle}
|
||||
\DeclareOption{subtitle}{\toggletrue{subtitle}}
|
||||
\newtoggle{shortpagenumbers}
|
||||
\DeclareOption{shortpagenumbers}{\toggletrue{shortpagenumbers}}
|
||||
\ProcessOptions
|
||||
|
||||
|
||||
%%
|
||||
%% Use Arial as default font
|
||||
%%
|
||||
%\usepackage{helvet}
|
||||
%\renewcommand{\familydefault}{phv}
|
||||
|
||||
%%
|
||||
%% include RWTH logo (for header)
|
||||
%%
|
||||
\ifthenelse{\boolean{outputPrintVersion}}{
|
||||
\logo{\includegraphics[height=5mm]{logos/eonerc_rwth}}
|
||||
}{
|
||||
\logo{\textcolor{white}{\rule{5mm}{5mm}}}
|
||||
}
|
||||
|
||||
|
||||
%%
|
||||
%% add new commands to set web and email address
|
||||
%% (and, optionally, institute logo
|
||||
%%
|
||||
\newcommand*{\webaddress}[1]{}
|
||||
\newcommand*{\printwebaddress}{www.rwth-aachen.de}
|
||||
\renewcommand*{\webaddress}[1]{\renewcommand*{\printwebaddress}{#1}}
|
||||
|
||||
\newcommand*{\email}[1]{}
|
||||
\newcommand*{\printemail}{}
|
||||
\renewcommand*{\email}[1]{\renewcommand*{\printemail}{\href{mailto:#1}{#1}\xspace}}
|
||||
|
||||
\newcommand*{\instlogo}[1]{}
|
||||
\newcommand*{\printinstlogo}{}
|
||||
\renewcommand*{\instlogo}[1]{\renewcommand*{\printinstlogo}{#1}}
|
||||
|
||||
\instlogo{\includegraphics[height=8mm]{logos/acs}}
|
||||
|
||||
\newtoggle{titlebanner}
|
||||
\togglefalse{titlebanner}
|
||||
\newcommand*{\titlebanner}[1]{}
|
||||
\newcommand*{\printtitlebanner}{}
|
||||
\renewcommand*{\titlebanner}[1]{\toggletrue{titlebanner}\renewcommand*{\printtitlebanner}{#1}}
|
||||
|
||||
\newcommand*{\instlogobottom}{
|
||||
\begin{tikzpicture}[overlay, remember picture]
|
||||
% bottom line
|
||||
\coordinate(bottomlineStart) at ($(current page.south west)+(\sepLineDist, \footlineHeight)$);
|
||||
\coordinate(bottomlineEnd) at ($(bottomlineStart)+(\sepLineLength, 0)$);
|
||||
\coordinate(toplineStart) at ($(current page.north west)+(\sepLineDist, -\headlineHeight)$) -- +(\sepLineLength, 0);
|
||||
\coordinate(toplineEnd) at ($(toplineStart)+(\sepLineLength, 0)$);
|
||||
|
||||
% RWTH logo
|
||||
\coordinate (logoAnchorLot) at ($(current page.south west)!(bottomlineEnd)!(current page.south east)$);
|
||||
\coordinate (logoAnchor) at ($(logoAnchorLot)!.5!(bottomlineEnd)$);
|
||||
\node [anchor=east, outer sep=0, inner sep=0] (ercrwthLogo) at (logoAnchor) {\insertlogo};
|
||||
\end{tikzpicture}
|
||||
}
|
||||
|
||||
%%
|
||||
%% the '\lastpage' command may be used to insert a 'running-out' slide
|
||||
%%
|
||||
\newcommand*{\lastpage}{
|
||||
\begin{frame}[plain,t]
|
||||
\begin{columns}
|
||||
\begin{column}{.05\paperwidth}
|
||||
\end{column}
|
||||
\begin{column}{.95\paperwidth}
|
||||
\hfill
|
||||
|
||||
\vspace{4cm}
|
||||
\scriptsize
|
||||
\protect\iflanguage{ngerman}{Vielen Dank f\"ur Ihre Aufmerksamkeit!}{}
|
||||
\protect\iflanguage{english}{Thank you for your kind attention!}{}
|
||||
|
||||
|
||||
\vspace{4ex}
|
||||
\textbf{\insertauthor}\ifx\printemail\@empty\else{~--~{\color{eonercred}\printemail}}\fi
|
||||
|
||||
\vspace{2ex}
|
||||
Institute for Automation of Complex Power Systems\\
|
||||
E.ON Energy Research Center, RWTH Aachen University\\
|
||||
Mathieustra{\ss}e 10\\
|
||||
52074 Aachen
|
||||
|
||||
\vspace{2ex}
|
||||
{\color{eonercred}\url{\printwebaddress}}
|
||||
\instlogobottom
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
\mode<presentation>
|
||||
|
||||
% Define some lengths
|
||||
\newlength{\bulletHeight}
|
||||
\setlength{\bulletHeight}{5pt}
|
||||
\newlength{\bulletWidth}
|
||||
\setlength{\bulletWidth}{5pt}
|
||||
\newlength{\footlineHeight}
|
||||
\setlength{\footlineHeight}{.75cm}
|
||||
\newlength{\headlineHeight}
|
||||
\setlength{\headlineHeight}{1.25cm}
|
||||
\newlength{\backgroundHeight}
|
||||
\setlength{\backgroundHeight}{\paperheight}
|
||||
\addtolength{\backgroundHeight}{-\headlineHeight}
|
||||
\addtolength{\backgroundHeight}{-\footlineHeight}
|
||||
|
||||
%%
|
||||
%% add some commands for itemize bullets
|
||||
%%
|
||||
\newcommand*{\bulletLayerOne}[1]{}
|
||||
\newcommand*{\printBulletLayerOne}{}
|
||||
\renewcommand*{\bulletLayerOne}[1]{\renewcommand*{\printBulletLayerOne}{#1}}
|
||||
\bulletLayerOne{\includegraphics[height=\bulletHeight, width=\bulletWidth]{logos/bullet_layer_one}}
|
||||
|
||||
\newcommand*{\bulletLayerTwo}[1]{}
|
||||
\newcommand*{\printBulletLayerTwo}{}
|
||||
\renewcommand*{\bulletLayerTwo}[1]{\renewcommand*{\printBulletLayerTwo}{#1}}
|
||||
\bulletLayerTwo{\includegraphics[height=\bulletHeight, width=\bulletWidth]{logos/bullet_layer_two}}
|
||||
|
||||
\newcommand*{\bulletLayerThree}[1]{}
|
||||
\newcommand*{\printBulletLayerThree}{}
|
||||
\renewcommand*{\bulletLayerThree}[1]{\renewcommand*{\printBulletLayerThree}{#1}}
|
||||
\bulletLayerThree{\includegraphics[height=\bulletHeight, width=\bulletWidth]{logos/bullet_layer_three}}
|
||||
|
||||
\newcommand*{\bulletLayerFour}[1]{}
|
||||
\newcommand*{\printBulletLayerFour}{}
|
||||
\renewcommand*{\bulletLayerFour}[1]{\renewcommand*{\printBulletLayerFour}{#1}}
|
||||
\bulletLayerFour{\color{eonercred}$\bullet$}
|
||||
|
||||
%%
|
||||
%% include the other style files of the rwth theme
|
||||
%%
|
||||
|
||||
\usefonttheme{eonerc} % beamerfontthemerwth.sty
|
||||
\usecolortheme{eonerc} % beamercolorthemerwth.sty
|
||||
\useoutertheme{eonerc} % beamerouterthemerwth.sty
|
||||
\useinnertheme{eonerc} % beamerinnerthemerwth.sty
|
||||
|
||||
\mode<all>
|
||||
|
@ -0,0 +1,69 @@
|
||||
%PDF-1.5
|
||||
%µí®û
|
||||
3 0 obj
|
||||
<< /Length 4 0 R
|
||||
/Filter /FlateDecode
|
||||
>>
|
||||
stream
|
||||
xœ-DZ
€@À>Sx‚‰Æ`
|
||||
øØ_BHtw—Ñk®Šz4MÊÔ<1A>»c܉þ±¤'…’§
|
||||
ÃßûÀi›½@
|
||||
endstream
|
||||
endobj
|
||||
4 0 obj
|
||||
69
|
||||
endobj
|
||||
2 0 obj
|
||||
<<
|
||||
/ExtGState <<
|
||||
/a0 << /CA 1 /ca 1 >>
|
||||
>>
|
||||
>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 83.737999 67.703003 ]
|
||||
/Contents 3 0 R
|
||||
/Group <<
|
||||
/Type /Group
|
||||
/S /Transparency
|
||||
/CS /DeviceRGB
|
||||
>>
|
||||
/Resources 2 0 R
|
||||
>>
|
||||
endobj
|
||||
1 0 obj
|
||||
<< /Type /Pages
|
||||
/Kids [ 5 0 R ]
|
||||
/Count 1
|
||||
>>
|
||||
endobj
|
||||
6 0 obj
|
||||
<< /Creator (cairo 1.10.2 (http://cairographics.org))
|
||||
/Producer (cairo 1.10.2 (http://cairographics.org))
|
||||
>>
|
||||
endobj
|
||||
7 0 obj
|
||||
<< /Type /Catalog
|
||||
/Pages 1 0 R
|
||||
>>
|
||||
endobj
|
||||
xref
|
||||
0 8
|
||||
0000000000 65535 f
|
||||
0000000466 00000 n
|
||||
0000000182 00000 n
|
||||
0000000015 00000 n
|
||||
0000000161 00000 n
|
||||
0000000254 00000 n
|
||||
0000000531 00000 n
|
||||
0000000658 00000 n
|
||||
trailer
|
||||
<< /Size 8
|
||||
/Root 7 0 R
|
||||
/Info 6 0 R
|
||||
>>
|
||||
startxref
|
||||
710
|
||||
%%EOF
|
Binary file not shown.
@ -0,0 +1,67 @@
|
||||
%PDF-1.5
|
||||
%µí®û
|
||||
3 0 obj
|
||||
<< /Length 4 0 R
|
||||
/Filter /FlateDecode
|
||||
>>
|
||||
stream
|
||||
xœuɱ
€0DÑ>Sܘ‹mp2#P@jÂþ QB÷¿Þ‘(e*EuËOЪ*zøíLÄ4“0Ç<30>U<}Ã~£SXì½/\Òˆl
|
||||
endstream
|
||||
endobj
|
||||
4 0 obj
|
||||
83
|
||||
endobj
|
||||
2 0 obj
|
||||
<<
|
||||
/ExtGState <<
|
||||
/a0 << /CA 1 /ca 1 >>
|
||||
>>
|
||||
>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<< /Type /Page
|
||||
/Parent 1 0 R
|
||||
/MediaBox [ 0 0 83.734001 67.703003 ]
|
||||
/Contents 3 0 R
|
||||
/Group <<
|
||||
/Type /Group
|
||||
/S /Transparency
|
||||
/CS /DeviceRGB
|
||||
>>
|
||||
/Resources 2 0 R
|
||||
>>
|
||||
endobj
|
||||
1 0 obj
|
||||
<< /Type /Pages
|
||||
/Kids [ 5 0 R ]
|
||||
/Count 1
|
||||
>>
|
||||
endobj
|
||||
6 0 obj
|
||||
<< /Creator (cairo 1.10.2 (http://cairographics.org))
|
||||
/Producer (cairo 1.10.2 (http://cairographics.org))
|
||||
>>
|
||||
endobj
|
||||
7 0 obj
|
||||
<< /Type /Catalog
|
||||
/Pages 1 0 R
|
||||
>>
|
||||
endobj
|
||||
xref
|
||||
0 8
|
||||
0000000000 65535 f
|
||||
0000000480 00000 n
|
||||
0000000196 00000 n
|
||||
0000000015 00000 n
|
||||
0000000175 00000 n
|
||||
0000000268 00000 n
|
||||
0000000545 00000 n
|
||||
0000000672 00000 n
|
||||
trailer
|
||||
<< /Size 8
|
||||
/Root 7 0 R
|
||||
/Info 6 0 R
|
||||
>>
|
||||
startxref
|
||||
724
|
||||
%%EOF
|
Binary file not shown.
After Width: | Height: | Size: 82 KiB |
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 182 KiB |
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
Binary file not shown.
After Width: | Height: | Size: 257 KiB |
@ -0,0 +1,12 @@
|
||||
[FormatInfo]
|
||||
Type=TeXnicCenterProjectInformation
|
||||
Version=4
|
||||
|
||||
[ProjectInfo]
|
||||
MainFile=slides.tex
|
||||
UseBibTeX=0
|
||||
UseMakeIndex=0
|
||||
ActiveProfile=LaTeX ⇨ PDF
|
||||
ProjectLanguage=en
|
||||
ProjectDialect=US
|
||||
|
433
Events/2015 - Printing Stack Thesis Presentation/src/slides.tex
Normal file
433
Events/2015 - Printing Stack Thesis Presentation/src/slides.tex
Normal file
@ -0,0 +1,433 @@
|
||||
%%
|
||||
%% if lualatex is not used, compile to PDF 1.4 (compatibility to Adobe Acrobat)
|
||||
%%
|
||||
\RequirePackage{ifluatex}
|
||||
\ifluatex
|
||||
\else
|
||||
\RequirePackage{pdf14}
|
||||
\fi
|
||||
|
||||
\documentclass[aspectratio=1610]{beamer}
|
||||
%%
|
||||
%% E.ON ERC Beamer Theme (layout based on E.ON ERC PowerPoint template)
|
||||
%% by Simon Pickartz, Institute for Automation of Complex Power Systems, 2014
|
||||
%% spickartz@eonerc.rwth-aachen.de
|
||||
%% based on RWTH Latex template
|
||||
%% by Georg Wassen, Lehrstuhl für Betriebssysteme, 2013
|
||||
%% wassen@lfbs.rwth-aachen.de
|
||||
%%
|
||||
%% The templates are derived from the beamer documentation and the provided
|
||||
%% templates, hence, the same licence applies:
|
||||
%%
|
||||
%% ----------------------------------------------------------------
|
||||
%% | This file may be distributed and/or modified |
|
||||
%% | |
|
||||
%% | 1. under the LaTeX Project Public License and/or |
|
||||
%% | 2. under the GNU Public License. |
|
||||
%% | |
|
||||
%% | See the file doc/licenses/LICENSE for more details. |
|
||||
%% ----------------------------------------------------------------
|
||||
%%
|
||||
%% Version 0.1 03/28/2014 Initial presentation using this theme
|
||||
%% Version 0.2 04/01/2014 First version to be published in the institute
|
||||
%%
|
||||
|
||||
\usepackage{ifthen}
|
||||
|
||||
% Whether to output the Print version (with RWTH logo) or the public version
|
||||
\newboolean{outputPrintVersion}
|
||||
\setboolean{outputPrintVersion}{false}
|
||||
|
||||
\usepackage[]{luainputenc}
|
||||
\usepackage[english]{babel}
|
||||
\usetheme[]{eonerc}
|
||||
|
||||
\usepackage[T1]{fontenc} % Font encoding
|
||||
\usepackage{lmodern} % Select Linux Modern Fonts
|
||||
\usepackage{graphicx} % needed to include graphics
|
||||
\beamertemplatenavigationsymbolsempty % Disable navigation symbols
|
||||
|
||||
\usepackage{listings}
|
||||
\usepackage{tikz}
|
||||
|
||||
\usetikzlibrary{calc,positioning,fit,matrix,shadows,chains,arrows,shapes,spy,fadings,shadings}
|
||||
\usepackage{pgfplots}
|
||||
\usetikzlibrary{pgfplots.units,shapes.symbols,shapes.arrows}
|
||||
|
||||
\tikzset{
|
||||
cf_base/.style={font=\sffamily\footnotesize, node distance=12mm, fill=white},
|
||||
cf_block/.style={cf_base, draw, rectangle, rounded corners, on grid, align=center},
|
||||
cf_data/.style={cf_base, draw, cylinder, aspect=0.2, on grid, shape border rotate=90]},
|
||||
cf_head/.style={font=\sffamily\bfseries\normalsize, on grid},
|
||||
cf_impl/.style={cf_base, fill=yellow!40},
|
||||
cf_label/.style={align=left, draw opacity=0, font=\sffamily\tiny},
|
||||
cf_line/.style={cf_base, draw=black, -latex},
|
||||
cf_skiplistitem/.style={cf_base, draw, rectangle split, rectangle split parts=#1, rectangle split empty part height=1.3ex, rectangle split empty part width=1ex, align=center},
|
||||
cf_onslide/.code args={<#1>#2}{\only<#1>{\pgfkeysalso{#2}}},
|
||||
cf_emphline/.style={line width=0.8pt},
|
||||
cf_blackbox/.style={cf_base, draw, rectangle, on grid, align=center, color=white, fill=black, minimum height=25mm, minimum width=50mm}
|
||||
}
|
||||
|
||||
\definecolor{windows_gray}{RGB}{212,208,200}
|
||||
\definecolor{windows_blue}{RGB}{10,36,106}
|
||||
|
||||
\newcommand\myheading[1]{{\Large\bfseries#1}\par\bigskip}
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% configure title page and author information
|
||||
%%-------------------------------
|
||||
%% You can always provide a short version: \title[short]{long title}
|
||||
%% title -- Title of the presentation
|
||||
%% The title appears on the first page and may contain
|
||||
%% a line break: \\
|
||||
%% The short title appears in the footer line
|
||||
%% subtitle -- Appears below the title
|
||||
%% titlegraphic -- Currently not supported
|
||||
%% author -- Name of the author(s)
|
||||
%% email -- E-Mail address of author (optional)
|
||||
%% institute -- Name of the institution (e.g. chair)
|
||||
%% webaddress -- Web address (default is www.rwth-aachen.de),
|
||||
%% (see slide generated with \lastpage)
|
||||
%% date -- Date of the presentation
|
||||
%% (or use \date to insert the date of the PDF generation)
|
||||
%% subject -- This is only for the PDF meta data
|
||||
%% keywords -- This is only for the PDF meta data
|
||||
%% logo -- Logo, don't change (given by coporate identity templates)
|
||||
\title[Printing Stack for the ReactOS Operating System]{Analysis, Design and Implementation of a Printing Stack \\for the Open-Source ReactOS Operating System}
|
||||
\titlebanner{pictures/title_small}
|
||||
\subtitle{Bachelor Thesis Presentation}
|
||||
\author{Colin Finck}
|
||||
\email{colin.finck@rwth-aachen.de} % optionally
|
||||
\institute[ACS]{Automation of Complex Power Systems}
|
||||
\webaddress{www.eonerc.rwth-aachen.de} % overrides rwth-aachen.de
|
||||
\date{October 7, 2015}
|
||||
\subject{Analysis, Design and Implementation of a Printing Stack for the Open-Source ReactOS Operating System}
|
||||
\keywords{ReactOS, Operating Systems, Printing, Reverse Engineering}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{frame}{Agenda}
|
||||
\tableofcontents
|
||||
\end{frame}
|
||||
|
||||
\section{Basics}
|
||||
|
||||
\subsection{The ReactOS Operating System}
|
||||
\begin{frame}{The ReactOS Operating System}
|
||||
\myheading{Goal: Open-Source Desktop Operating System for the Mass}
|
||||
|
||||
\begin{itemize}
|
||||
\item Fully compatible to applications and drivers written for Microsoft Windows
|
||||
\item Customizable
|
||||
\item Trustworthy
|
||||
\end{itemize}
|
||||
|
||||
\bigskip
|
||||
\pause
|
||||
|
||||
But lacking Printing abilities prior to this work!
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{The ReactOS Operating System}
|
||||
\centering
|
||||
\includegraphics{pictures/office2007ros}
|
||||
\end{frame}
|
||||
|
||||
\subsection{Technical Terms}
|
||||
\begin{frame}{Technical Terms}
|
||||
\begin{itemize}
|
||||
\item \textbf{API} \\
|
||||
Official and documented interface to let a software developer make use of a component
|
||||
\bigskip
|
||||
|
||||
\item \textbf{GDI} \\
|
||||
Windows component for drawing text and graphics on the screen and on paper
|
||||
\bigskip
|
||||
|
||||
\item \textbf{Spooler} \\
|
||||
Buffers concurrent print requests from multiple applications and sends them,\\
|
||||
one after another, to the Printer
|
||||
\bigskip
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\subsection{Microsoft Windows Printing Stack}
|
||||
\begin{frame}{Microsoft Windows Printing Stack}
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\node [cf_block, cf_impl] (App) {Application};
|
||||
\node [cf_block, below left = 15mm of App] (gdi32) {GDI};
|
||||
\node [cf_block, cf_impl, below = 22mm of App] (winspool) {Spooler API};
|
||||
\path [cf_line, dotted] (App) -- (gdi32);
|
||||
\path [cf_line, dotted] (App) -- (winspool);
|
||||
\path [cf_line] (gdi32) -- (winspool);
|
||||
|
||||
\uncover<2->{
|
||||
\node [cf_block, cf_impl, below = of winspool] (spoolsv) {Spooler Server};
|
||||
\path [cf_line] (winspool) -- (spoolsv);
|
||||
}
|
||||
|
||||
\uncover<3->{
|
||||
\node [cf_block, cf_impl, below = of spoolsv] (spoolss) {Spooler Router};
|
||||
\path [cf_line] (spoolsv) -- (spoolss);
|
||||
}
|
||||
|
||||
\uncover<4->{
|
||||
\node [cf_block, cf_impl, below left = 12mm and 32mm of spoolss] (localspl) {Local Spooler};
|
||||
\node [cf_block, below = of spoolss] (inetpp) {Internet Print Provider};
|
||||
\node [cf_block, below right = 12mm and 40mm of spoolss] (win32spl) {LanMan Print Services};
|
||||
\path [cf_line, dotted] (spoolss) -- (localspl);
|
||||
\path [cf_line, dotted] (spoolss) -- (inetpp);
|
||||
\path [cf_line, dotted] (spoolss) -- (win32spl);
|
||||
}
|
||||
|
||||
\uncover<5->{
|
||||
\node [cf_block, right = 80mm of spoolsv] (extern_spoolsv) {Spooler Server\\on another computer};
|
||||
\node [cf_data, cf_impl, below = 13mm of localspl] (spoolfile) {Spool File};
|
||||
\node [cf_block, below = 13mm of inetpp] (ippprinter) {IPP-capable Printer};
|
||||
|
||||
\path [cf_line] (localspl) -- (spoolfile);
|
||||
\path [cf_line] (inetpp) -- (ippprinter);
|
||||
|
||||
\coordinate [left = 3mm of extern_spoolsv] (extern_spoolsv_anchor);
|
||||
\path [draw] (win32spl) -- (win32spl |- ippprinter.north);
|
||||
\path [draw] (win32spl |- ippprinter.north) -- (ippprinter.north -| extern_spoolsv_anchor);
|
||||
\path [draw] (ippprinter.north -| extern_spoolsv_anchor) -- (extern_spoolsv_anchor);
|
||||
\path [cf_line] (extern_spoolsv_anchor) -- (extern_spoolsv.west);
|
||||
}
|
||||
\end{tikzpicture}
|
||||
|
||||
\begin{tikzpicture}[remember picture, overlay]
|
||||
\node [cf_base, align=right, xshift=130mm, yshift=-13mm] at (titleAnchor) {Implemented components\\in \colorbox{yellow!40}{yellow}};
|
||||
\end{tikzpicture}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Microsoft Windows Printing Stack}
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\node [cf_data, cf_impl] (spoolfile) {Spool File};
|
||||
\node [cf_block, cf_impl, right = 30mm of spoolfile] (winprint) {Print Processor};
|
||||
\path [cf_line] (spoolfile.east) -- (winprint.west);
|
||||
|
||||
\uncover<2->{
|
||||
\node [cf_block, cf_impl, below = 20mm of winprint] (spoolss) {Spooler Router};
|
||||
\node [cf_block, cf_impl, below = of spoolss] (localspl) {Local Spooler};
|
||||
\path [cf_line, dotted] (winprint) -- (spoolss);
|
||||
\path [cf_label] (winprint) edge node [right] {For RAW datatype} (spoolss);
|
||||
\path [cf_line] (spoolss) -- (localspl);
|
||||
}
|
||||
|
||||
\uncover<3->{
|
||||
\node [cf_block, cf_impl, below left = 12mm and 20mm of localspl] (localmon) {Local Port Monitor};
|
||||
\node [cf_block, below right = 12mm and 20mm of localspl] (usbmon) {USB Port Monitor};
|
||||
\path [cf_line, dotted] (localspl) -- (localmon);
|
||||
\path [cf_line, dotted] (localspl) -- (usbmon);
|
||||
}
|
||||
|
||||
\uncover<4->{
|
||||
\node [cf_block, below = 24mm of localspl] (kernel32) {User-Mode Kernel API for accessing a port};
|
||||
\node [cf_block, below = 10mm of kernel32] (printer) {Printer};
|
||||
\path [cf_line] (localmon) -- (kernel32.north -| localmon);
|
||||
\path [cf_line] (usbmon) -- (kernel32.north -| usbmon);
|
||||
\path [cf_line] (kernel32) -- (printer);
|
||||
}
|
||||
\end{tikzpicture}
|
||||
|
||||
\begin{tikzpicture}[remember picture, overlay]
|
||||
\node [cf_base, align=right, xshift=130mm, yshift=-13mm] at (titleAnchor) {Implemented components\\in \colorbox{yellow!40}{yellow}};
|
||||
\end{tikzpicture}
|
||||
\end{frame}
|
||||
|
||||
\subsection{Remote Procedure Calls (RPC)}
|
||||
\begin{frame}{Remote Procedure Calls (RPC)}
|
||||
\myheading{Call a function in another process, on another computer}
|
||||
|
||||
Here used for Spooler API $\rightarrow$ Spooler Server communication.
|
||||
\bigskip
|
||||
|
||||
\begin{itemize}
|
||||
\item Function call and parameter information are transmitted over the network
|
||||
\item No network-specific code needs to be written
|
||||
\end{itemize}
|
||||
|
||||
\bigskip
|
||||
\pause
|
||||
|
||||
Remote function call as easy as a local one!
|
||||
|
||||
\bigskip
|
||||
|
||||
Example:\\
|
||||
\footnotesize\texttt{\_RpcOpenPrinter(L"\textbackslash\textbackslash\textbackslash\textbackslash Computer\textbackslash\textbackslash Printer", \&hPrinter, Datatype, \&DevMode, AccessRequired);}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Remote Procedure Calls (RPC)}
|
||||
What's happening in the background:
|
||||
|
||||
\begin{enumerate}
|
||||
\item \textbf{Marshalling:} Function name and parameters are packed into a message.
|
||||
\item Message is transmitted over the network.
|
||||
\item \textbf{Unmarshalling:} Function name and parameters are reconstructed out of the message.
|
||||
\item The actual implemented function is called in the target application.
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
\section{Methods}
|
||||
|
||||
\subsection{Reverse Engineering Tools}
|
||||
\begin{frame}{Reverse Engineering Tools}
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\node [cf_blackbox] (spoolss) {Windows\\Spooler Router};
|
||||
\node [cf_blackbox, below = 50mm of spoolss] (localspl) {Windows\\Local Spooler};
|
||||
\path [cf_line] (spoolss) -- (localspl);
|
||||
|
||||
\node [cf_base, on grid, below left = 20mm and 15mm of spoolss] {Function Calls?};
|
||||
\node [cf_base, on grid, below left = 30mm and 13mm of spoolss] {Parameters?};
|
||||
\end{tikzpicture}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Reverse Engineering Tools}
|
||||
\myheading{Dependency Walker}
|
||||
|
||||
Reveals dependencies between modules and their imported and exported functions
|
||||
\bigskip
|
||||
|
||||
\centering
|
||||
\includegraphics{pictures/depends}
|
||||
|
||||
\begin{tikzpicture}[remember picture, overlay]
|
||||
\node<2-> [cf_base, align=center, xshift=15mm, yshift=-30mm] at (titleAnchor) {Examining\\ \colorbox{windows_gray}{Local Spooler}};
|
||||
\node<3-> [cf_base, align=center, xshift=138mm, yshift=-51mm] at (titleAnchor) {Found function\\ \colorbox{windows_blue}{\textcolor{white}{InitializePrintMonitor}}};
|
||||
\end{tikzpicture}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Reverse Engineering Tools}
|
||||
\myheading{GNU strings}
|
||||
|
||||
Outputs all strings found in a binary file
|
||||
\bigskip
|
||||
|
||||
\centering
|
||||
\includegraphics{pictures/strings}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Reverse Engineering Tools}
|
||||
\myheading{API Monitor}
|
||||
|
||||
Monitors all calls done to system functions and their parameters
|
||||
\bigskip
|
||||
|
||||
\centering
|
||||
\includegraphics{pictures/apimon}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Reverse Engineering Tools}
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\node [cf_blackbox] (spoolss) {Windows\\Spooler Router};
|
||||
\node [cf_blackbox, below = 50mm of spoolss] (localspl) {Windows\\Local Spooler};
|
||||
\path [cf_line] (spoolss) -- (localspl);
|
||||
|
||||
\node [cf_base, on grid, below left = 20mm and 15mm of spoolss] {Function Calls?};
|
||||
\node [cf_base, on grid, below left = 30mm and 13mm of spoolss] {Parameters?};
|
||||
|
||||
\node [cf_block, below = 8mm of localspl] {$\vcenter{\hbox{\includegraphics[height=2ex]{pictures/glass}}}$ GNU strings};
|
||||
\node [cf_block, below right = 20mm and 20mm of spoolss] {$\vcenter{\hbox{\includegraphics[height=2ex]{pictures/glass}}}$ Dependency Walker};
|
||||
\node [cf_block, below right = 30mm and 15mm of spoolss] {$\vcenter{\hbox{\includegraphics[height=2ex]{pictures/glass}}}$ API Monitor};
|
||||
\end{tikzpicture}
|
||||
\end{frame}
|
||||
|
||||
\section{Implementation}
|
||||
|
||||
\subsection{Skip Lists}
|
||||
\begin{frame}{Skip Lists}
|
||||
\centering
|
||||
\begin{tikzpicture}[scale=1.2, every node/.append style={transform shape}]
|
||||
\node[cf_skiplistitem=5] (H) {L4 \nodepart{two} L3 \nodepart{three} L2 \nodepart{four} L1 \nodepart{five} Head};
|
||||
\node[cf_skiplistitem=2, right = of H.south, anchor = south] (5) {\nodepart{two} 5};
|
||||
\node[cf_skiplistitem=3, right = of 5.south, anchor = south] (7) {\nodepart{three} 7};
|
||||
\node[cf_skiplistitem=5, right = of 7.south, anchor = south] (10) {\nodepart{five} 10};
|
||||
\node[cf_skiplistitem=4, right = of 10.south, anchor = south] (15) {\nodepart{four} 15};
|
||||
\node[cf_skiplistitem=2, right = of 15.south, anchor = south] (16) {\nodepart{two} 16};
|
||||
\node[cf_skiplistitem=2, right = of 16.south, anchor = south] (19) {\nodepart{two} 19};
|
||||
\node[cf_skiplistitem=3, right = of 19.south, anchor = south] (23) {\nodepart{three} 23};
|
||||
|
||||
\path [cf_line, cf_onslide=<2->{draw=red, cf_emphline}] (H.one east) -- (10.one west |- H.one east);
|
||||
\path [cf_line] (H.two east) -- (10.two west |- H.two east);
|
||||
\path [cf_line] (H.three east) -- (7.one west |- H.three east);
|
||||
\path [cf_line, cf_onslide=<3->{draw=blue, cf_emphline}] (H.four east) -- (5.one west |- H.four east);
|
||||
\path [cf_line, cf_onslide=<3->{draw=blue, cf_emphline}] (5.one east) -- (7.two west |- 5.one east);
|
||||
\path [cf_line] (7.one east) -- (10.three west |- 7.one east);
|
||||
\path [cf_line, cf_onslide=<3->{draw=blue, cf_emphline}] (7.two east) -- (10.four west |- 7.two east);
|
||||
\path [cf_line, cf_onslide=<2->{draw=red, cf_emphline}] (10.two east) -- (15.one west |- 10.two east);
|
||||
\path [cf_line] (10.three east) -- (15.two west |- 10.three east);
|
||||
\path [cf_line, cf_onslide=<3->{draw=blue, cf_emphline}] (10.four east) -- (15.three west |- 10.four east);
|
||||
\path [cf_line] (15.two east) -- (23.one west |- 15.two east);
|
||||
\path [cf_line] (15.three east) -- (16.one west |- 15.three east);
|
||||
\path [cf_line] (16.one east) -- (19.one west |- 16.one east);
|
||||
\path [cf_line] (19.one east) -- (23.two west |- 19.one east);
|
||||
|
||||
\path [cf_label, cf_onslide=<4->{red}] (H.one east) edge node [above] {3} (10.one west |- H.one east);
|
||||
\path [cf_label] (H.two east) edge node [above] {3} (10.two west |- H.two east);
|
||||
\path [cf_label] (H.three east) edge node [above] {2} (7.one west |- H.three east);
|
||||
\path [cf_label] (H.four east) edge node [above] {1} (5.one west |- H.four east);
|
||||
\path [cf_label] (5.one east) edge node [above] {1} (7.two west |- 5.one east);
|
||||
\path [cf_label] (7.one east) edge node [above] {1} (10.three west |- 7.one east);
|
||||
\path [cf_label] (7.two east) edge node [above] {1} (10.four west |- 7.two east);
|
||||
\path [cf_label, cf_onslide=<4->{red}] (10.two east) edge node [above] {1} (15.one west |- 10.two east);
|
||||
\path [cf_label] (10.three east) edge node [above] {1} (15.two west |- 10.three east);
|
||||
\path [cf_label] (10.four east) edge node [above] {1} (15.three west |- 10.four east);
|
||||
\path [cf_label] (15.two east) edge node [above] {3} (23.one west |- 15.two east);
|
||||
\path [cf_label] (15.three east) edge node [above] {1} (16.one west |- 15.three east);
|
||||
\path [cf_label] (16.one east) edge node [above] {1} (19.one west |- 16.one east);
|
||||
\path [cf_label] (19.one east) edge node [above] {1} (23.two west |- 19.one east);
|
||||
\end{tikzpicture}
|
||||
|
||||
\bigskip
|
||||
|
||||
\begin{itemize}
|
||||
\item Fast insertions, deletions and lookups, \\ $\mathcal{O}(\log n)$ on average
|
||||
\item Easy to implement
|
||||
\item Extensible
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Skip Lists}
|
||||
\myheading{Example: Data Structure with 1000 Elements}
|
||||
\vspace{15mm}
|
||||
|
||||
\centering
|
||||
\large Average Number Of Comparisons During A Lookup
|
||||
\vspace{10mm}
|
||||
|
||||
\begin{tikzpicture}[scale=1.1]
|
||||
\begin{axis}[
|
||||
xbar,
|
||||
xmin = 0,
|
||||
width = 100mm,
|
||||
height = 35mm,
|
||||
enlarge x limits = {rel=0.13, upper},
|
||||
ytick = {1,2},
|
||||
yticklabels = {Linked List, Skip List},
|
||||
enlarge y limits = 0.4,
|
||||
nodes near coords,
|
||||
y axis line style = { opacity = 0 },
|
||||
axis x line = none,
|
||||
tickwidth = 0
|
||||
]
|
||||
\addplot coordinates {(500,1) (10,2)};
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
|
||||
\vspace{15mm}
|
||||
\end{frame}
|
||||
|
||||
%%
|
||||
%% the final slide (contact information) can be generated with the following
|
||||
%% command
|
||||
%%
|
||||
\lastpage
|
||||
|
||||
\end{document}
|
Loading…
Reference in New Issue
Block a user