linux-rootkit

Feature-rich interactive rootkit that targets Linux kernel 4.19, accompanied by a dynamic kernel memory analysis GDB plugin for in vivo introspection (e.g. using QEMU)
git clone git://git.deurzen.net/linux-rootkit
Log | Files | Refs

commit 029f0e11d30363a1f6617bb4236a91681e98789f
parent ae66fd3ec58516f740d55fec3e4d8b0d109f4d18
Author: Tizian Leonhardt <tizianleonhardt@web.de>
Date:   Fri,  5 Feb 2021 13:07:02 +0100

Add slides template

Diffstat:
Aproject/slides/Makefile | 9+++++++++
Aproject/slides/beamerthemetum.sty | 319+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aproject/slides/example1.asm | 28++++++++++++++++++++++++++++
Aproject/slides/example2.asm | 31+++++++++++++++++++++++++++++++
Aproject/slides/i20lecture.cls | 149+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aproject/slides/pdfpcnotes.sty | 42++++++++++++++++++++++++++++++++++++++++++
Aproject/slides/presentation.tex | 101+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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}