commit 029f0e11d30363a1f6617bb4236a91681e98789f
parent ae66fd3ec58516f740d55fec3e4d8b0d109f4d18
Author: Tizian Leonhardt <tizianleonhardt@web.de>
Date: Fri, 5 Feb 2021 13:07:02 +0100
Add slides template
Diffstat:
7 files changed, 679 insertions(+), 0 deletions(-)
diff --git a/project/slides/Makefile b/project/slides/Makefile
@@ -0,0 +1,9 @@
+.PHONY all: presentation.pdf
+
+presentation.pdf: presentation.tex
+ pdflatex presentation.tex
+ pdflatex presentation.tex
+ pdflatex presentation.tex
+
+.PHONY clean:
+ rm -f *.aux *.log *.nav *.out *.toc *.snm *.vrb *.pdfpc presentation.pdf
diff --git a/project/slides/beamerthemetum.sty b/project/slides/beamerthemetum.sty
@@ -0,0 +1,319 @@
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 3.
+
+\usepackage{MnSymbol}
+\usepackage{helvet}
+
+\newcommand\semester[1]{\renewcommand\@semester{#1}}
+\newcommand\@semester{}
+
+% switch for 'dark' option
+\newif\ifyourpkgprefix@darkoption\yourpkgprefix@darkoptionfalse
+% switch for 'en' option
+\newif\ifyourpkgprefix@enoption\yourpkgprefix@enoptionfalse
+% switch for 'minimal' option
+\newif\ifyourpkgprefix@minimaloption\yourpkgprefix@minimaloptionfalse
+% switch for 'wide' option
+\newif\ifyourpkgprefix@wideoption\yourpkgprefix@wideoptionfalse
+
+
+\DeclareOption{dark}{\yourpkgprefix@darkoptiontrue}
+\DeclareOption{en}{\yourpkgprefix@enoptiontrue}
+\DeclareOption{minimal}{\yourpkgprefix@minimaloptiontrue}
+\DeclareOption{wide}{\yourpkgprefix@wideoptiontrue}
+
+\DeclareOption*{\OptionNotUsed} % discard any undeclared option
+
+\ProcessOptions\relax
+
+\newlength{\logoindent} %% Left and right margin on title page
+\setlength{\logoindent}{.5cm}
+
+\newlength{\headmargin} %% Left and right margin for title text line
+\setlength{\headmargin}{.1cm}
+
+\ifyourpkgprefix@enoption
+\usepackage{babel}
+\else
+\usepackage[ngerman]{babel}
+\fi
+
+\ifyourpkgprefix@wideoption
+\geometry{paperwidth=170.66mm,paperheight=96mm} % 16:9
+\else
+\geometry{paperwidth=128mm,paperheight=96mm} % 4:3
+\fi
+
+\setbeamerfont{title}{size=\Large}
+\setbeamerfont{subtitle}{size=\normalsize}
+
+\mode<presentation>
+
+\newif\ifbeamer@secheader
+\beamer@secheaderfalse
+
+\DeclareOptionBeamer{secheader}{\beamer@secheadertrue}
+\ProcessOptionsBeamer
+
+%% TUM Corporate Design Colors
+\definecolor{tumblue}{RGB}{0,101,189}
+\definecolor{primary-blue}{RGB}{0,101,189}
+\definecolor{primary-white}{RGB}{255,255,255}
+\definecolor{primary-black}{RGB}{0,0,0}
+
+\definecolor{secondary-grey-0}{RGB}{204,204,204}
+\definecolor{secondary-grey-1}{RGB}{127,127,127}
+\definecolor{secondary-grey-2}{RGB}{51,51,51}
+
+\definecolor{secondary-blue}{RGB}{0,82,147}
+
+\definecolor{secondary-dark-0}{RGB}{0,51,89}
+\definecolor{secondary-dark-1}{RGB}{0,40,71}
+\definecolor{secondary-dark-2}{RGB}{0,25,44}
+\definecolor{secondary-dark-3}{RGB}{0,10,17}
+
+\definecolor{emph-0}{RGB}{152,198,234} % light blue
+\definecolor{emph-1}{RGB}{100,160,200} % dark blue
+\definecolor{emph-2}{RGB}{218,215,203} % ivory
+\definecolor{emph-3}{RGB}{227,114,34} % orange
+\definecolor{emph-4}{RGB}{162,173,0} % green
+
+\definecolor{blue}{RGB}{0,101,189}
+
+% OLD legacy colors
+% =========================================================
+
+\ifyourpkgprefix@darkoption
+ \colorlet{primary}{primary-white}
+ \definecolor{secondary}{RGB}{0,82,147}
+ \definecolor{tertiary}{RGB}{227,114,34}
+ \definecolor{quarterly}{RGB}{162,173,0}
+\else
+ \colorlet{primary}{primary-white}
+ \definecolor{secondary}{RGB}{0,82,147}
+ \definecolor{tertiary}{RGB}{227,114,34}
+ \definecolor{quarterly}{RGB}{162,173,0}
+\fi
+\setbeamercolor{palette primary}{fg=white, bg=primary}
+\setbeamercolor{palette secondary}{fg=white, bg=primary}
+\setbeamercolor{palette tertiary}{fg=white, bg=primary}
+\setbeamercolor{title}{fg=primary, bg=white}
+\setbeamercolor{frametitle}{fg=white, bg=primary}
+\setbeamercolor{titlelike}{fg=primary}
+\setbeamercolor{section number projected}{fg=white, bg=primary}
+\setbeamercolor{item projected}{bg=primary}
+\setbeamercolor{subitem projected}{bg=primary}
+\setbeamercolor{subsubitem projected}{fg=primary}
+\setbeamercolor{itemize item}{fg=emph-4}
+\setbeamercolor{itemize subitem}{fg=emph-4}
+\setbeamercolor{itemize subsubitem}{fg=emph-4}
+\setbeamercolor{enumerate subitem}{fg=white}
+\setbeamercolor{description item}{fg=primary}
+\setbeamercolor{section in toc}{fg=primary}
+\setbeamercolor{alerted text}{fg=tertiary}
+\setbeamercolor{block title alerted}{fg=white, bg=primary}
+\setbeamercolor{block body alerted}{bg=white}
+\setbeamercolor{block title example}{fg=white, bg=primary}
+\setbeamercolor{block body example}{bg=white}
+\setbeamercolor{block body}{bg=white}
+% =========================================================
+
+
+%%% New and shiny color definitions obeying the 'dark' switch
+\pgfdeclareverticalshading[lower.bg,upper.bg]{bmb@transition}{200cm}{color(0pt)=(lower.bg); color(4pt)=(lower.bg); color(4pt)=(upper.bg)}
+
+\newcommand\ttt[1]{{\fdmfamily \footnotesize{#1}}}
+\newcommand\hl[1]{\textbf{\textcolor{emph-3}{#1}}}
+\renewcommand\emph[1]{{\textcolor{tumblue}{#1}}}
+
+\ifyourpkgprefix@darkoption
+ % Blocks
+ \setbeamertemplate{blocks}[rounded][shadow]
+ \setbeamercolor{block title}{fg=white,bg=primary-blue}
+ \setbeamercolor{block body}{fg=black,bg=primary-black!80}
+
+ \setbeamercolor{alerted text}{fg=tumblue}
+
+ % Footer
+ \setbeamercolor*{left foot}{fg=white,bg=primary-black!80}
+ \setbeamercolor*{mid foot}{fg=white,bg=primary-black!80}
+ \setbeamercolor*{right foot}{fg=white,bg=primary-black!80}
+
+ % Head background
+ \setbeamercolor*{back title}{fg=white,bg=primary-black!80} % Head bg
+
+ \setbeamercolor{normal text}{fg=white,bg=primary-black!90}
+ \setbeamercolor{structure}{fg=white}
+ \setbeamercolor{item projected}{use=item,fg=white,bg=item.fg!35}
+ \setbeamercolor*{palette primary}{use=structure,fg=structure.fg}
+ \setbeamercolor*{palette secondary}{use=structure,fg=structure.fg!95!black}
+ \setbeamercolor*{palette tertiary}{use=structure,fg=structure.fg!90!black}
+ \setbeamercolor*{palette quaternary}{use=structure,fg=structure.fg!95!black,bg=black!80}
+ \setbeamercolor*{framesubtitle}{fg=white}
+ \setbeamercolor*{subtitle}{fg=emph-4}
+ \setbeamercolor*{block title}{parent=structure,bg=black!60}
+ \setbeamercolor*{block body}{fg=black,bg=black!10}
+ \setbeamercolor*{block title alerted}{parent=alerted text,bg=black!15}
+ \setbeamercolor*{block title example}{parent=example text,bg=black!15}
+\else
+ % Blocks
+ \setbeamertemplate{blocks}[rounded][shadow]
+ \setbeamercolor{block title}{fg=white,bg=primary-blue}
+ \setbeamercolor{block body}{fg=black,bg=primary-black!80}
+
+ \setbeamercolor*{left foot}{fg=white,bg=secondary-blue}
+ \setbeamercolor*{mid foot}{fg=white,bg=secondary-blue}
+ \setbeamercolor*{right foot}{fg=white,bg=secondary-blue}
+ \setbeamercolor*{back title}{fg=white,bg=secondary-blue}
+
+ % Head background
+ \setbeamercolor*{back title}{fg=white,bg=secondary-blue}
+
+ \setbeamercolor{alerted text}{fg=tumblue}
+
+ \setbeamercolor*{itemize item}{fg=tumblue}
+ \setbeamercolor*{itemize subitem}{fg=tumblue}
+ \setbeamercolor*{itemize subsubitem}{fg=tumblue}
+
+ \setbeamercolor*{description item}{fg=tumblue}
+ \setbeamercolor*{enumerate item}{fg=tumblue}
+ \setbeamercolor*{enumerate subitem}{fg=tumblue}
+ \setbeamercolor*{enumerate subsubitem}{fg=tumblue}
+ \setbeamercolor*{caption name}{fg=tumblue}
+
+\fi
+
+\setbeamercolor{title}{fg=primary-blue}
+
+\setbeamertemplate{navigation symbols}{}
+%\setbeamertemplate{enumerate items}[square]
+
+\setbeamertemplate{frametitle}
+{
+ \vspace{-1ex}
+ \begin{beamercolorbox}[wd=\paperwidth,ht=1cm,dp=0.4cm]{back title}
+ \makebox[\textwidth]{
+ \makebox[\headmargin]{ }
+ \parbox{.8\textwidth}{
+ \begin{tikzpicture}
+ \node[inner sep = 0pt, outer sep = 0pt, text width = .9\textwidth,
+ font = \strut, align = left] (t)
+ {\LARGE\insertframetitle};
+ \node[inner sep = 0pt, outer sep = 0pt, text width = .9\textwidth,
+ below = 0cm of t, font = \strut, align = left, yshift = .25cm]
+ {\scriptsize\insertframesubtitle};
+ \end{tikzpicture}
+ }
+ \hfill
+ \parbox{.065\textwidth}{\vspace*{-.2cm}
+ \resizebox{!}{2ex}{
+ \begin{tikzpicture}[y = -.75cm, x = .75cm, transform shape]
+ \tikzset{logofont/.style={
+ align = left, text width = 6cm, font=\vphantom{TUMy}
+ }}
+ \ifyourpkgprefix@enoption
+ \node[logofont] at (-6, 0.7)
+ {\fontsize{1.2cm}{1.25cm}\selectfont \sffamily Technical};
+ \node[logofont] at (-6, 2.7)
+ {\fontsize{1.2cm}{1.25cm}\selectfont \sffamily University};
+ \node[logofont] at (-6, 4.4)
+ {\fontsize{1.2cm}{1.25cm}\selectfont \sffamily of Munich};
+ \else
+ \node[logofont] at (-6, 0.7)
+ {\fontsize{1.2cm}{1.25cm}\selectfont \sffamily Technische};
+ \node[logofont] at (-6, 2.55)
+ {\fontsize{1.2cm}{1.25cm}\selectfont \sffamily Universit\"at};
+ \node[logofont] at (-6, 4.4)
+ {\fontsize{1.2cm}{1.25cm}\selectfont \sffamily M\"unchen};
+ \fi
+ \fill [primary-white]
+ (0, 0) -- (4, 0) -- (4, 4) -- (5, 4) -- (5, 0) -- (10, 0) --
+ (10, 5) -- (9, 5) -- (9, 1) -- (8, 1) -- (8, 5) -- (7, 5) --
+ (7, 1) -- (6, 1) -- (6, 5) -- (3, 5) -- (3, 1) -- (2, 1) --
+ (2, 5) -- (1, 5) -- (1, 1) -- (0, 1) -- cycle;
+ \end{tikzpicture}
+ }
+ }
+ \makebox[\headmargin]{ }
+ }
+ \end{beamercolorbox}
+}
+
+\defbeamertemplate*{title page}{tum theme}[1][]
+{
+ \makebox[\textwidth]{
+ \makebox[\logoindent]{ }
+ \begin{tikzpicture}[scale=0.4, every node/.style={scale = .4}]
+ \draw[anchor = north west] (0, 0) arc (95:445:1cm) [thick, draw = primary-blue];
+ \draw[anchor = north west] (0.09, 0.2) -- (0.09, -1.8) [thick, draw = primary-blue];
+ \end{tikzpicture}
+ \hfill
+ \begin{tikzpicture}[x = .18cm, y = -.18cm, transform shape]
+ \fill [primary-blue] (0, 0) -- (4, 0) -- (4, 4) -- (5, 4) -- (5, 0) -- (10, 0) --
+ (10, 5) -- (9, 5) -- (9, 1) -- (8, 1) -- (8, 5) -- (7, 5) --
+ (7, 1) -- (6, 1) -- (6, 5) -- (3, 5) -- (3, 1) -- (2, 1) --
+ (2, 5) -- (1, 5) -- (1, 1) -- (0, 1) -- cycle;
+ \end{tikzpicture}
+ \makebox[\logoindent]{ }
+ }
+ \vskip2cm
+ \hspace{\logoindent}\usebeamerfont{title}\inserttitle\par
+ \hspace{\logoindent}\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par
+ \bigskip
+ \hspace{\logoindent}\usebeamerfont{author}\insertauthor\par
+ \hspace{\logoindent}\usebeamerfont{institute}\insertinstitute\par
+ \bigskip
+ \hspace{\logoindent}\usebeamerfont{semester}\@semester\par
+ \hspace{\logoindent}\usebeamerfont{date}\insertdate\par
+ \usebeamercolor[fg]{titlegraphic}\inserttitlegraphic
+}
+
+%insertsectionhead
+
+\ifyourpkgprefix@minimaloption
+\setbeamertemplate{footline}
+{
+ \leavevmode%
+ \hfill
+ \hbox{%
+ \color{primary-black!50}
+ \insertframenumber{} / \inserttotalframenumber\hspace{2ex}
+ }
+ \vspace{2ex}
+ \vskip0pt%
+}
+\else
+\defbeamertemplate*{footline}{tum theme}
+{
+ \leavevmode%
+ \hbox{%
+ \begin{beamercolorbox}[wd=.2\paperwidth,ht=2.25ex,dp=1ex,center]{left foot}%
+ \usebeamerfont{left foot}\insertshortauthor
+ \end{beamercolorbox}%
+ \begin{beamercolorbox}[wd=.6\paperwidth,ht=2.25ex,dp=1ex,center]{mid foot}%
+ \usebeamerfont{mid foot}\beamer@ifempty{\insertsubtitle}{}{~~\insertsubtitle}
+ \end{beamercolorbox}%
+ \begin{beamercolorbox}[wd=.2\paperwidth,ht=2.25ex,dp=1ex,right]{right foot}%
+ % \usebeamerfont{right foot}\@semester\hspace*{2em}
+ %\insertshortdate{}\hspace*{2em}
+ \insertframenumber{} / \inserttotalframenumber\hspace*{2ex}
+ \end{beamercolorbox}}%
+ \vskip0pt%
+}
+\fi
+
+%absteigende Reihenfolge der Kugel Größen
+\useitemizeitemtemplate{%
+ \small\raise1.5pt\hbox{$\blacktriangleright$}%
+}
+\usesubitemizeitemtemplate{%
+ \scriptsize\raise1.5pt\hbox{$\blacktriangleright$}%
+}
+\usesubsubitemizeitemtemplate{%
+ \tiny\raise1.5pt\hbox{$\blacktriangleright$}%
+}
+
+\setbeamersize{text margin left=1em,text margin right=1em}
+
+\mode
+<all>
diff --git a/project/slides/example1.asm b/project/slides/example1.asm
@@ -0,0 +1,28 @@
+ BITS 64
+ global _start
+ section .text
+_start:
+ mov rdi, memfrobbed
+ mov cl, 0x18
+ call _my_memfrob
+
+; do something interesting ...
+
+ mov rdi, memfrobbed
+ mov cl, 0x18
+ call _my_memfrob
+ ret
+
+_my_memfrob:
+ xor byte [rdi+rcx-1], 0x42
+ loop _my_memfrob
+ ret
+ ;db "53cr3t_p4yl04d_g035_h3r3", 0
+ section .data
+memfrobbed:
+ db 0x77, 0x71, 0x21, 0x30,
+ db 0x71, 0x36, 0x1d, 0x32,
+ db 0x76, 0x3b, 0x2e, 0x72,
+ db 0x76, 0x26, 0x1d, 0x25,
+ db 0x72, 0x71, 0x77, 0x1d,
+ db 0x2a, 0x71, 0x30, 0x71
diff --git a/project/slides/example2.asm b/project/slides/example2.asm
@@ -0,0 +1,31 @@
+
+ BITS 64
+ global _start
+ section .text
+_start:
+ push rax
+ push rdx
+ push rsi
+ push rdi
+ mov rax, 1
+ mov rdi, 0
+ mov rsi, memfrobbed
+ mov rdx, 0x18
+ syscall
+ pop rdi
+ pop rsi
+ pop rdx
+ pop rax
+ ret
+
+_my_memfrob:
+ xor byte [rdi+rcx-1], 0x42
+ loop _my_memfrob
+ ret
+
+ section .data
+memfrobbed:
+ ;db "53cr3t_p4yl04d_g035_h3r3", 0
+ db 0x77, 0x71, 0x21, 0x30, 0x71, 0x36, 0x1d, 0x32
+ db 0x76, 0x3b, 0x2e, 0x72, 0x76, 0x26, 0x1d, 0x25
+ db 0x72, 0x71, 0x77, 0x1d, 0x2a, 0x71, 0x30, 0x71
diff --git a/project/slides/i20lecture.cls b/project/slides/i20lecture.cls
@@ -0,0 +1,149 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{i20lecture}[2016/09/01 I20Lecture]
+
+\LoadClass[xcolor={usenames,dvipsnames}]{beamer}
+
+\mode<presentation>{\usetheme[wide]{tum}}
+%% Available Options:
+%% dark Use dark theme (default: off)
+%% en English presentation (default: off)
+%% minimal Be minimalistic (default: off)
+%% wide Produce 16:9 slides (default: on)
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{default}
+\usepackage{amsmath}
+\usepackage{wasysym}
+\usepackage{calc}
+%\usepackage{pdfpcnotes}
+\usepackage{tikz}
+\usetikzlibrary{positioning, calc, arrows, calendar, scopes, backgrounds, patterns,
+ shapes, fit, matrix, petri, decorations.pathreplacing}
+\usepackage{listings}
+\usepackage{booktabs}
+\usepackage{dcolumn}
+\usepackage[defaultmono, scale = .8]{droidmono}
+\usepackage{palatino}
+\usepackage{url}
+\usepackage{pifont}
+\usepackage{subfigure}
+\usepackage[absolute,overlay]{textpos}
+\usefonttheme{serif}
+\newcolumntype{d}[1]{D{.}{.}{#1}}
+\usepackage{standalone}
+\usepackage{eurosym}
+\usepackage{extarrows}
+\usepackage{todonotes}
+
+\usepackage{fancyvrb}
+\renewcommand*\ttdefault{fdm}
+
+% https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings
+\lstset{
+ numbers=left,
+ numberstyle=\tiny\color{gray},
+ stepnumber=1,
+ numbersep=5pt,
+ showspaces=false,
+ showstringspaces=false,
+ showtabs=false,
+ frame=single,
+ rulecolor=\color{black},
+ tabsize=2,
+ captionpos=b,
+ breaklines=true,
+ breakatwhitespace=false,
+ language=C,
+ commentstyle=\itshape\color{Mahogany},
+ stringstyle=\color{BrickRed},
+ keywordstyle=\bfseries\color{OliveGreen},
+ keywordstyle=[2]{\color{MidnightBlue}},
+ keywordstyle=[3]{\color{RoyalPurple}},
+ escapechar=ß,
+ xleftmargin=8pt,
+ xrightmargin=3pt,
+ basicstyle=\scriptsize\fdmfamily,
+ morekeywords={u32, __u32, __be32, __le32,
+ u16, __u16, __be16, __le16,
+ u8, __u8, __be8, __le8,
+ size_t, ssize_t, uint64_t}
+}
+
+%kirschju's masm lstlisting
+\lstnewenvironment{asmcode}{\lstset{
+ language=[x86masm]Assembler,
+ % TODO: Add missing keywords here
+ keywords={mov, call, ret, xor, rep, int, loop, push, syscall, pop,
+ cdqe, cqo, cmpsq, cmpxchg16b, jrcxz, lodsq, movsxd, sub, add,
+ vxorpd, popfq, pushfq, scasq, stosq, iretq, rdtscp, swapgs, leave},
+ keywords=[2]{rax, eax, ax, ah, al,
+ rdx, edx, dx, dh, dl,
+ rcx, ecx, cx, ch, cl,
+ rbx, ebx, bx, bh, bl,
+ rsi, esi, si, sih, sil,
+ rdi, edi, di, dih, dil,
+ rsp, esp, sp, rbp, ebp, bp, rip, eip, ip,
+ r8, r8d, r8w, r8b, r9, r9d, r9w, r9b,
+ r10, r10d, r10w, r10b, r11, r11d, r11w, r11b,
+ r12, r12d, r12w, r12b, r13, r13d, r13w, r13b,
+ r14, r14d, r14w, r14b, r15, r15d, r15w, r15b},
+ keywords=[3]{db, section},
+ comment=[]{},
+ morecomment=[s]{/*}{*/},
+ commentstyle=\itshape\color{Mahogany},
+ identifierstyle=\color{Black},
+ stringstyle=\color{Orange},
+}}{}
+
+\lstnewenvironment{ccode}{\lstset{
+ language=C,
+ keywordstyle=\bfseries\color{LimeGreen},
+ commentstyle=\itshape\color{Mahogany},
+ %identifierstyle=\color{BrickRed},
+ stringstyle=\color{Orange},
+ morekeywords={u32, __u32, __be32, __le32,
+ u16, __u16, __be16, __le16,
+ u8, __u8, __be8, __le8,
+ size_t, ssize_t, uint64_t, uint32_t}
+}}{}
+
+%\newcommand{\currentchapter}{}
+%\let\oldchapter\chapter
+%\renewcommand{\chapter}[1]{
+% \oldchapter{#1}
+% \renewcommand{\currentchapter}{#1}
+%}
+
+\newcommand{\currentsection}{}
+\let\oldsection\section
+\renewcommand{\section}[1]{
+ \oldsection{#1}
+ \renewcommand{\currentsection}{#1}
+ \renewcommand{\currentsubsection}{\ }
+ \renewcommand{\currentsubsubsection}{\ }
+}
+
+\newcommand{\currentsubsection}{}
+\let\oldsubsection\subsection
+\renewcommand{\subsection}[1]{
+ \oldsubsection{#1}
+ \renewcommand{\currentsubsection}{#1}
+ \renewcommand{\currentsubsubsection}{\ }
+}
+
+\newcommand{\currentsubsubsection}{}
+\let\oldsubsubsection\subsubsection
+\renewcommand{\subsubsection}[1]{
+ \oldsubsubsection{#1}
+ \renewcommand{\currentsubsubsection}{#1}
+}
+
+% META
+% =========================================================
+\title[RE-Seminar Winter 16/17]{Seminar Reverse Code Engineering}
+\author[J. Kirsch et al.]{Julian Kirsch, Thomas Kittel, Sergej Proskurin}
+\semester{Wintersemester 2016/17}
+\institute{Lehrstuhl für Sicherheit in der Informatik}
+\date{\today}
+% =========================================================
diff --git a/project/slides/pdfpcnotes.sty b/project/slides/pdfpcnotes.sty
@@ -0,0 +1,42 @@
+\ProvidesPackage{pdfpcnotes}
+
+% create a new file handle
+\newwrite\pdfpcnotesfile
+
+% open file on \begin{document}
+\AtBeginDocument{%
+ \immediate\openout\pdfpcnotesfile\jobname.pdfpc\relax
+ \immediate\write\pdfpcnotesfile{[notes]}
+}
+% define a # http://tex.stackexchange.com/a/37757/10327
+\begingroup
+ \catcode`\#=12
+ \gdef\hashchar{#}%
+\endgroup
+
+
+\def\lastframenumber{0}
+
+% define command \pnote{} that works like note but
+% additionally writes notes to file in pdfpc readable format
+\newcommand{\pnote}[1]{%
+ % keep normal notes working
+ \note{#1}%
+
+ % if frame changed - write a new header
+ \ifdim\theframenumber pt>\lastframenumber pt
+ \let\lastframenumber\theframenumber
+ \begingroup
+ \let\#\hashchar
+ \immediate\write\pdfpcnotesfile{\#\#\# \theframenumber}%
+ \endgroup
+ \fi
+
+ % write note to file
+ \immediate\write\pdfpcnotesfile{\unexpanded{#1}}%
+}
+% close file on \begin{document}
+\AtEndDocument{%
+ \immediate\closeout\pdfpcnotesfile
+}
+
diff --git a/project/slides/presentation.tex b/project/slides/presentation.tex
@@ -0,0 +1,101 @@
+\documentclass{i20lecture}
+
+\subtitle{Session 0}
+
+\begin{document}
+
+\frame{\titlepage}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}
+ \frametitle{First Slide}
+
+ \begin{itemize}
+ \item Whatever
+ \end{itemize}
+
+\end{frame}
+
+\section{First Section}
+\subsection{Assembly Demo}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}[fragile]
+ \frametitle{\insertsection}
+ \framesubtitle{\insertsubsection}
+ \begin{center}
+ \vspace{-.8cm}
+ \begin{tikzpicture}[transform shape]
+ \node at (\textwidth*.28, 0) {};
+ \node at (\textwidth, \textheight/2) {};
+ \node at (\textwidth/2, \textheight/2) {};
+ \node at (\textwidth/2, -\textheight/2) {};
+ \only<2->{
+ \node[yshift=-.2cm, above = 0cm of main.center, draw=BrickRed,
+ minimum width=.42\textwidth, ultra thick, minimum height = .5cm,
+ rounded corners] (redmark) {\hfill};
+ }
+ \node (main) at (.5\textwidth, 0) {
+ \parbox{.4\textwidth}{
+ \lstinputlisting[firstline=4, lastline=14, language={[x86masm]Assembler}]
+ {example1.asm}
+ }
+ };
+ \node[right = .08\textwidth of main] (memfrobbed) {
+ \only<1-2>{\parbox{.4\textwidth}{
+ \lstinputlisting[firstnumber=12, firstline=16, lastline=19, language={[x86masm]Assembler}]
+ {example1.asm}
+ \lstinputlisting[firstnumber=16, firstline=21, lastline=28, language={[x86masm]Assembler}]
+ {example1.asm}
+ }}
+ \only<3->{\parbox{.4\textwidth}{
+ \lstset{rulecolor=\color{BrickRed}}
+ \lstinputlisting[firstline=6, lastline=18, language={[x86masm]Assembler}]
+ {example2.asm}
+ }}
+ };
+ \path[thick, color = BrickRed, ->,>=stealth, out = 30, in = 120,
+ shorten >=1pt]<3->
+ (redmark.east) edge ($(memfrobbed.north west)+(.5,-.2)$);
+ \path[thick, color = BrickRed, ->,>=stealth, out = 240, in = 30,
+ shorten >=1pt]<5->
+ ($(memfrobbed.south west)+(.5,.3)$) edge ($(redmark.east)+(-1.7,-.5)$);
+ \end{tikzpicture}
+ \begin{tikzpicture}[overlay]
+ \only<4>{
+ \node[minimum width = \textwidth/2, minimum height = 3cm, fill = Black,
+ text = ForestGreen] at (-\textwidth/2, \textheight/2){
+ \parbox{\textwidth/2}{
+ \ttfamily \$ ./analyzed\_binary \\
+ \ldots \\
+ 53cr3t\_p4yl04d\_g035\_h3r3 \\
+ \ldots \\
+ \$
+ }
+ }
+ };
+ \end{tikzpicture}
+ \end{center}
+\end{frame}
+
+\subsection{Content}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}
+ \frametitle{\insertsection}
+ \framesubtitle{\insertsubsection}
+
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}
+ \frametitle{Questions?}
+
+ \begin{center}
+ \LARGE Thanks!
+ \end{center}
+
+\end{frame}
+
+\end{document}