notpron

Deutsche Lösungen zu Notpron
git clone git://xatko.vsos.ethz.ch/notpron.git
Log | Files | Refs

commit 4e9029c3ca432ed749f3ee06507fa59776e48dc5
Author: Dominik Schmidt <das1993@hotmail.com>
Date:   Mon, 20 May 2013 22:43:17 +0200

Initial commit

Diffstat:
.gitignore | 6++++++
Information.tex | 28++++++++++++++++++++++++++++
Levels.tex | 418+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
NotPron.tex | 16++++++++++++++++
Objects/Graphics/Ext/Information/wingdings.png | 0
Objects/Graphics/Ext/Levels/12/crosscube.jpg | 0
Objects/Graphics/Ext/Levels/8/mus2.jpg | 0
Objects/Graphics/Int/Levels/21/maze.png | 0
Objects/Graphics/Int/Levels/21/maze.xcf.lzma | 0
Objects/Graphics/Int/Levels/25/screen_blue.jpg | 0
Objects/Graphics/Int/Levels/25/screen_red.jpg | 0
Objects/Program/C/atoz.c | 37+++++++++++++++++++++++++++++++++++++
Objects/Program/C/shift.c | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Objects/Program/Javascript/Programs.html | 27+++++++++++++++++++++++++++
Objects/Program/Javascript/atoz.js | 23+++++++++++++++++++++++
Objects/Program/Javascript/shift.js | 12++++++++++++
Objects/Tex/ascii.tex | 38++++++++++++++++++++++++++++++++++++++
Preamble.tex | 88+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
18 files changed, 754 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -0,0 +1,6 @@ +*.aux +*.dvi +*.log +*.out +*.pdf +*.toc diff --git a/Information.tex b/Information.tex @@ -0,0 +1,28 @@ +\section{Asciitabelle} + \begin{table}[H] + \input{Objects/Tex/ascii.tex} + \caption{ASCII-Tabelle} + \label{tbl:asciitable} + \end{table} +\section{Wingdings} + \begin{figure}[H] + \centering + \includegraphics[natwidth=750, natheight=297, width=\textwidth]{Objects/Graphics/Ext/Information/wingdings.png} + \caption{Wingdings Symboltabelle} + \label{fig:wingdings} + \end{figure} +\section{$a\rightarrow z$} +\label{sect:atoz_algorithm} +\subsection{C} + Kompilierbar mit GCC(auch mit der MINGW Toolchain) + \lstinputlisting[language=c,numbers=left, backgroundcolor=\color{silver}]{Objects/Program/C/atoz.c} +\subsection{JavaScript} + \lstinputlisting[language=JavaScript,numbers=left, backgroundcolor=\color{silver}]{Objects/Program/Javascript/atoz.js} + +\section{$x-y$} +\label{sect:x-1_algorithm} +\subsection{C} + Kompilierbar mit GCC(auch mit der MINGW Toolchain) + \lstinputlisting[language=c,numbers=left, backgroundcolor=\color{silver}]{Objects/Program/C/shift.c} +\subsection{JavaScript} + \lstinputlisting[language=JavaScript,numbers=left, backgroundcolor=\color{silver}]{Objects/Program/Javascript/shift.js} diff --git a/Levels.tex b/Levels.tex @@ -0,0 +1,418 @@ +\nplvl{Welcome}{http://notpron.org/notpron/levelone.htm}{-}{-}{-}{Die Türe anklicken...} + +\nplvl{Something was in his way}{http://notpron.org/notpron/not/level2.htm}{-}{-}{Die Adresszeile betrachten}{Die URL in der Adresszeile zu level3.htm ändern.} + +\nplvl{Turn me ON!}{http://www.deathball.net/notpron/false/gototheothersite.htm}{-}{-}{ + \begin{hints} + \hint{Text auf dem GIF-Bild ,,stop beeing so negative''} + \hint{Adresszeile betrachten...} + \hint{Was könnte ,,eingeschaltet'' oder geändert werden?} + \end{hints} +}{ + In der URL \emph{false} zu \emph{true} ändern +} + +\nplvl{Look in the dark...}{http://www.deathball.net/notpron/true/gototheothersite.htm}{-}{-} +{ + \begin{hints} + \hint{Die Information wurde nachträglich in das Bild eingefügt.} + \hint{Es ist eine Schrift.} + \hint{Sie befindet sich auf dem Nachttischchen.} + \hint{Es ist folgender Morsecode:\begin{quote} ...- --- --- -.. --- --- \\ .--. --- .-- . .-.\end{quote}} + \end{hints} +}{ + Den Morsecode auf dem Nachttischchen übersetzen: + + \begin{tabular}{|r|l|} + \hline + ...- --- --- -.. --- --- & VOODOO\\\hline + .--. --- .-- . .-. & POWER\\\hline + \end{tabular} + + Somit ist gemäss den Regenl\footnote{Passwort ohne Abstände/Grossbuchstaben} der Username ,,voodoo'' und das Passwort ,,power''. + + Zum nächsten Level kommt man durch Anklicken der Uhr. +} +\nplvl{Light your torch...}{http://www.deathball.net/notpron/google/shestheoneforme.htm}{voodoo}{power} +{ + \begin{hints} + \hint{Ein Song mit dem Text ,,eyes like an angle, smiles like a devil''} + \hint{Von Big Bad Voodoo Daddy} + \end{hints} +}{ + ,,Simple Songs'' heisst das Stück, und so ist der Username ,,simple'', und das Passwort ,,songs''. + + Der Link befindet sich auf dem Power-Knopf der Fernbedienung. +} +\nplvl{...the source code might help...}{http://www.deathball.net/notpron/nothing/hesgotitall.htm}{simple}{songs} +{ + \begin{hints} + \hint{Die Seite ist grösser als normal} + \hint{Quellcode anschauen.} + \hint{Der folgende Text ist in einem IFrame eingebettet: \begin{quote}108 105 108 107\\117 111 114 104\end{quote}} + \hint{Im Quellcode des erstens Dokumentes findet sich folgender Kommentar: \\\lstinline{<!--ascii is an alternative-->}} + \hint{Jede Zahl representiert einen Wert in der \hpref{tbl:asciitable}{ASCII-Tabelle}} + \hint{Übersetzt lautet es: \begin{quote}lilk\\uorh\end{quote}} + \hint{Der Passworthinweis bei dem Abfragefenster lautet ,,anagram''} + \end{hints} +}{ + In einem versteckten IFrame findet sich eine ASCIIZeichenfolge, welche das verlangte Anagramm von ,,kill hour'' ist. +} +\nplvl{he went to the old school}{http://www.deathball.net/notpron/sdrawkcab/tieman.htm}{kill}{hour} +{ + \begin{hints} + \hint{Im Quellcode finden sich zwei Kommentare:\\\lstinline{<!-- times have changed in deutschland -->}\\\lstinline{<!--what candy wrapper is it?-->}} + \hint{Das Papier ist eine Twix Verpackung} + \hint{Das Lösungswort muss rückwärts geschrieben werden} + \hint{Das Lösungswort muss in die Adresszeile geschrieben werden (\lstinline{http://www.deathball.net/notpron/sdrawkcab/<Lösungswort>.htm})} + \hint{Es wird der Vorgänger von Twix gesucht} + \end{hints} +}{ + Das Bild zeigt ein Twixpapier. Twix hiess früher Raider, und wir werden gebeten, es rückwärts einzugeben. + Dies geschieht in Ermangelung eines Links auf dem Bild in der Adresszeile. +} + +\nplvl{say it loudly and proudly}{http://www.deathball.net/notpron/sdrawkcab/rediar.htm}{kill}{hour} +{ + \begin{hints} + \hint{Das Bild ist irrelevant.} + \hint{Im Quellcode hat sich etwas verändert.} + \hint{Es gibt eine zweite Hintergrundmusik.} + \hint{Die Dateiendung täuscht; es ist gar keine Sounddatei.} + \end{hints} +}{ + Es gibt eine zweite Hintergrundmusik, welches jedoch eine Bilddatei ist: + \begin{center} + \includegraphics[natwidth=640, natheight=100,height=4em]{Objects/Graphics/Ext/Levels/8/mus2.jpg} + \end{center} + Der Bildlink versteckt sich im Loch der Gitarre. +} +\nplvl{revolution}{http://www.deathball.net/notpron/luv2music/paulisdead.htm}{inverted}{levelten} +{ + \begin{hints} + \hint{Sehen Sie sich den Text im Quellcode an.} + \hint{Lesen Sie nur die Buchstaben im <span> Element.} + \hint{Nicht zu weit denken!} + \end{hints} +}{ + Gewisse Buchstaben sind in einem <span></span> eingeschlossen. Liest man nur diese ergibt sich folgender Text: + \begin{quote} + turnmeon + deadman + \end{quote} + Welches sogleich Benuterzname und Passwort ist. + + Der Link befindet sich auf der 9. +} +\nplvl{he was impatient}{http://www.deathball.net/notpron/wrong/roawr.htm}{turnmeon}{deadman} +{ + \begin{hints} + \hint{Das Bild ist irrelevant.} + \hint{Im Quellcode hat sich wieder etwas verändert.} + \hint{Die Musikdatei st eine andere.} + \hint{Die Musik wird zu langsam abgespielt.} + \end{hints} +}{ + In einer unterschiedlichen Musikdatei ist nach beschleunigen der Wiedergabe um ca. 400\% der Text ,,gray world'' zu hören. + + Der Bildlink befindet sich im Ring. +} + +\nplvl{ahead of its time}{http://www.deathball.net/notpron/reality/mystery.htm}{gray}{world} +{ + \begin{hints} + \hint{Sehen Sie sich die Bilddatei genau an.} + \end{hints} +}{ + Die Bilddatei weist im Namen eine höhere Zahl auf (screen12.jpg). Wird der Dateiname auf ,,screen11.jpg'' geändert, sieht man im Bild die Zugangsdaten ,,fucking pans''. + + Der Bildlink befindet sich in der Ofenlampe. +} + +\nplvl{stereo}{http://www.deathball.net/notpron/blame/crossview.htm}{fucking}{pans} +{ + \begin{hints} + \hint{Die Bilder bilden ein sog. Crossview 3D-Bild. Bei diesem wird durch schielen ein 3D-Bild erzeugt. + \begin{figure}[H] + \centering + \includegraphics[natwidth=600, natheight=300, width=0.75\textwidth]{Objects/Graphics/Ext/Levels/12/crosscube.jpg} + \caption{Einfaches Crossviewbild.} + \label{fig:crossview} + \end{figure} + Wie bei Abbildung \ref{fig:crossview} deutlich zu sehen ist, ist das rechte Bild mehr von rechts aufgenommen als das Linke. Die Kamera nimmt also eine Position ähnlich der der Augen ein, + und macht dann je ein Bild. + } + \hint{Ein Gegenstand auf dem Bild verhält sich falsch.} + \end{hints} +}{ + Bei der genauen Examination der 2 Bilder stellt man fest, dass die Fernbedienung sich entgegengesetzt zu den anderen Gegenständen dreht. + + Die Zugangsdaten sind somit remote/control. + + Der Link befindet sich auf den Nummern. +} +\nplvl{lucy not in the sky}{http://www.deathball.net/notpron/ps/afterdeath.htm}{remote}{control} +{ + \begin{hints} + \hint{Aktivieren Sie JavaScript.} + \hint{Fahren sie mit der Maus über das Bild.} + \hint{Im Bild sind Buchstaben versteckt, welche ihre Nummerierung in einem Wort durch überfahren mit der Maus preisgeben.} + \hint{Das Passwort wird aus dem Hinweis bei der Eingabe (,,i live there'') abgeleitet.} + \end{hints} +}{ + Im Bild finden sich durchnummerierte Buchstaben. Zusammen ergeben sie das wort ,,devil''. Das Passwort ist gemäss dem Hinweis im Dialog der Wohnort des Teufels, also ,,hell''. + + Der Link ist auf der Uhr. +} +\nplvl{He knew the feeling}{http://www.deathball.net/notpron/neo/beenthere.htm}{devil}{hell} +{ + \begin{hints} + \hint{Das Bild ist irrelevant.} + \hint{Wer kannte welches Gefühl? Die Antworten sind in der Adresszeile.} + \hint{Die Antwort ist ein französischer Begriff} + \end{hints} +}{ + Aus dem Titel kann abgeleitet werden, dass Neo von Matrix etwas schonmal erlebt hat. Im Zugangsdatendialog verweist man auf die Sprache, welche Französisch sein muss. + + ,,deja vu''\footnote{déjà vu} liegt also auf der Hand. + + Der Bildlink befindet sich auf dem Powerknopf der Fernbedienung. +} +\nplvl{hit the keys}{http://www.deathball.net/notpron/rusty/board.htm}{deja}{vu} +{ + \begin{hints} + \hint{Das Bild ist irrelevant.} + \hint{Im Quellcode steht ein Hinweis: \\\lstinline[keywordstyle=\color{dkgreen}]{<!--this message is ONLY for french people (and maybe belgium): votre clavier est erroné (sorry, just babelfish, + I have no clue if it's good, but you can translate it back-->}\\ + Daraus folgt, dass es mit den Positionen der Buchstaben auf der Tastatur zu tun hat. + } + \hint{Der Code gibt in Klammern die Zeile, ohne die Spalte an.} + \end{hints} +}{ + Der Code im Quellcode, bei welchem in Klammern die Zeile und ohne die Klammern die Spalte steht, führt zu folgenden Wörtern: + \begin{quote} + random\\shit + \end{quote} + + Der Link ist auf dem Ventil des Heizkörpers. +} +\nplvl{resume}{http://www.deathball.net/notpron/zoo/mznvh.htm}{random}{shit} +{ + \begin{hints} + \hint{Es werden die Benutzernamen der Levels gebraucht.} + \hint{Es wird ein Kodierverfahren benötigt, welches mit \lstinline{<!-- invert az-->} beschrieben ist.} + \hint{Das Kodierverfahren basiert auf der Abhängigkeit $a\rightarrow z$. Dies bedeutet, dass ein ,,a'' ein ,,z'' wird, ein ,,b'' zu einem ,,y'', usw. + Daraus lässt sich der Algorithmus $f(x)=\mbox{'z'}-(x- \mbox{'a'})$, bzw $f(x)=122-(x-97)=219-x$ ableiten + ~\footnote{Buchstaben durch ASCII Representation ersetzt(Siehe Tabelle \ref{tbl:asciitable}, S. \pageref{tbl:asciitable})}. + Das Ergebniss muss unter zuziehung der \hpref{tbl:asciitable}{ASCII-Tabelle} wieder in einen Buchstaben gewandelt werden. + + Für Referenzimplementierungen gehen Sie zu Kapitel~\ref{sect:atoz_algorithm} ,,\nameref{sect:atoz_algorithm}'', Seite~\pageref{sect:atoz_algorithm}. + } + \hint{Die Zahlen mit den \# müssen entsprechend dem Kommentar \lstinline{<!-- # = ellwll/hrnkov/proo/... -->} gehandhabt werden, also mit dem Algorithmus übersetzt.} + \hint{Die Zahl steht für die Position des Buchstabens im Benutzername.} + \end{hints} +}{ + Wenn man den der Zahl auf dem Bild entsprechenden Buchstaben aus dem Benutzername des abgebildeten Levels aneinanderreiht, während die mit \# markierten Buchstaben mit dem $a\rightarrow z$ + Algorithmus kodiert werden müssen, ergibt sich folgender Text: + \begin{quote} + doom\\murder + \end{quote} + + Der Link ist auf der rechten unteren Kachel. +} +\nplvl{aliens are coming}{http://www.deathball.net/notpron/finale/pron.htm}{doom}{murder} +{ + \begin{hints} + \hint{Es wird laut dem Kommentar \lstinline{<!--what am I?-->} nach dem Objekt auf dem Bild gefragt.} + \hint{Das Lösungswort ersetzt das ,,pron'' in der URL.} + \hint{Es ist ein Alltagsgegenstand.} + \hint{Er spendet Licht.} + \end{hints} +}{ + Auf dem Bild ist eine Lampe abgebildet. Dementsprechend muss die URL auf ,,lamp.htm'' abgeändert werden. +} +\nplvl{sorry, going on for some more time}{http://www.deathball.net/notpron/finale/lamp.htm}{doom}{murder} +{ + \begin{hints} + \hint{Im Bild findet sich die Lösung nicht.} + \hint{Im Quellcode hat sich etwas verändert.} + \hint{Das Lösungswort wird in der URL eingetragen.} + \hint{Es wird ein absolutes Musikgehör oder ein Programm zur Frequenzanalyse\footnote{Audacity oder ähnlich} benötigt.} + \end{hints} +}{ + Die neue Musikdatei ,,mus4.mp3'' beinhaltet die Tonfolge D,E,A,F. Die neue URL endet demnach mit deaf.htm. +} +\nplvl{he moved it into the right direction}{http://www.deathball.net/notpron/finale/deaf.htm}{doom}{murder} +{ + \begin{hints} + \hint{Das Passwort liegt Kodiert im Quellcode: \lstinline{<!--xfjse tuvgg-->}.} + \hint{Die Hand weist die Richtung der Dekodierung.} + \hint{Es wird ein Algorithmus gebraucht, der die Zahlenwerte der Buchstaben\footnote{Siehe \hpref{tbl:asciitable}{ASCII-Tabelle}} um 1 dekrementiert. + $f_{(x)}=x-1$ + + Für Referenzimplementierungen, sehen Sie Kapitel~\ref{sect:x-1_algorithm} ,,\nameref{sect:x-1_algorithm}'', Seite \pageref{sect:x-1_algorithm} + } + \end{hints} +}{ + Die kodierten Zugangsdaten müssen mit einer Dekrementierung der Zahlenwerte dekodiert werden. Dadurch ergiebt sich die Zeichenkette ,,weird stuff''. + + Der Link befindet sich auf dem Nagel des Fingers. +} +\nplvl{Numbers, Text, Fonts and stuff}{http://www.deathball.net/notpron/windows/something.php}{weird}{stuff} +{ + \begin{hints} + \hint{Es wird eine bestimmte Schriftart benötigt.} + \hint{Die Schriftart heisst \hpref{fig:wingdings}{,,Wingdings''}} + \hint{Alle anderen Sachen müssen ignoriert werden.} + \end{hints} +}{ + Auf dem Blatt befindet sich in Windings umgesetzter Text. + \newcommand{\wds}[1]{{\bfseries \color{red} #1}} + In numerische Werte aufgelöst sieht er folgendermassen aus: + \begin{quote} + \wds{114} 32 \wds{101} $\frac{64}{22.5}*x$ \wds{97} KAP \wds{108} \wds{108} 3 \wds{121}\\ + TC5 \wds{115/116/117} MB \wds{110} $k*\frac{041}{94}-8202$ \wds{102} \wds{97} 213 \wds{105} \wds{114} + \end{quote} + + In ASCII-Zeichen umgewandelt sieht das folgendermassen aus: + + \begin{quote} + \wds{r} 32 \wds{e} $\frac{64}{22.5}*x$ \wds{a} KAP \wds{l} \wds{l} 3 \wds{y}\\ + TC5 \wds{s/t/u} MB \wds{n} $k*\frac{041}{94}-8202$ \wds{f} \wds{a} 213 \wds{i} \wds{r} + \end{quote} + + Daraus lässt sich folgende Zeichenfolge erkennen: + + \begin{quote} + really\\ + unfair + \end{quote} + + Der Link befindet sich auf dem Windowssymbol. +} +\nplvl{the fake trapped him}{http://www.deathball.net/notpron/twentyone/again.htm}{really}{unfair} +{ + \begin{hints} + \hint{Der Kommentar \lstinline[keywordstyle=\color{dkgreen}]{<!--First to beat it: [zeend_22] stupid maze :P-->} berichtet von einem Labyrinth.} + \hint{Das Bild heisst unorthodox.} + \hint{Der Passworthinweis lautet ,,From A to O''} + \hint{Gewisse Farben sind inkorrekt oder passen sonst nicht.} + \end{hints} +}{ + Wenn man die Bilder zu den verschiedenen Farben, die ungültigen (light\_blue und lilac) ausgenommen, übereinanderlegt, ergibt sich ein Labyrinth: + + \begin{figure}[H] + \centering + \includegraphics[natwidth=680, natheight=480, width=0.75\textwidth]{Objects/Graphics/Int/Levels/21/maze.png} + \caption[Level 21 Labyrinth]{Entstandenes Labyrinth. Der rote Punkt ist die Startposition, die schwarzen die Ziele.} + \label{fig:lvl21_maze} + \end{figure} + + Der Lösungsweg bildet die Worte ,,getting'' und ,,further''. + + Der Link befindet sich auf dem $\alpha$ +} +\nplvl{omg jeez!}{http://www.deathball.net/notpron/beepbeep/banana.htm}{getting}{further} +{ + \begin{hints} + \hint{Die Antwort findet sich im Bild.} + \hint{Es ist zu simpel.} + \hint{Die Antwort muss in der Adresszeile eingegeben werden.} + \end{hints} +}{ + Die Antwort ist ,,unexpected'' + + Somit ist die neue URL ,,unexpected.htm'' + + {\tiny \url{http://www.deathball.net/notpron/beepbeep/screeeen22a.jpg} \url{http://www.deathball.net/notpron/beepbeep/screeeen22x.jpg}} +} +\nplvl{I'm the tiniest unit you can see}{http://www.deathball.net/notpron/beepbeep/unexpected.htm}{getting}{further} +{ + \begin{hints} + \hint{Die Antworten müssen in die URL eingetragen werden.} + \hint{Es muss ins Bild gezoomt, und nach einzelnen Pixel gesucht werden.} + \end{hints} +}{ + Gewisse Buchstaben sind mit roten Punkten markiert, welche das Wort ,,music'' bilden. + + Somit ist die nächste URL ,,music.htm'' +} +\nplvl{O\_o}{http://www.deathball.net/notpron/beepbeep/music.htm}{getting}{further} +{ + \begin{hints} + \hint{Von \lstinline{<!--639853835-->} die entsprechenden Buchstaben auf dem Telephon suchen.} + \hint{639853835 $\rightarrow$ mno def wxyz tuv jkl def tuv def jkl} + \hint{Passendes Wort suchen und in die URL einfügen.} + \end{hints} +}{ + Die Nummer im Quellcode muss zu den Zeichen auf einem Telephon zurückgeführt werden. Richtig zusammengesetzt ergeben sie das Wort ,,nextlevel'' + + Folglich ist die nächste Adresse ,,nextlevel.htm'' +} +\nplvl{FF0000}{http://www.deathball.net/notpron/beepbeep/nextlevel.htm}{getting}{further} +{ + \begin{hints} + \hint{FF0000 ist Rot, 0000FF(Passworthinweis) ist blau.} + \hint{Der Kommentar \lstinline{<!--multiply OR limit channels; note to self, tell people the same as in #13: no maths-->} geheisst einem, die einzelnen Farbkanäle anderst zu gewichten. + Den blauen für das Passwort, den roten für den Benutzernamen. + } + \end{hints} +}{ + Auf Geheiss des Quellcodes werden nacheinander die Farbkanäle abgeschaltet: + + \begin{figure}[H] + \centering + \includegraphics[natwidth=680, natheight=480, width=0.75\textwidth]{Objects/Graphics/Int/Levels/25/screen_red.jpg} + \caption{Level 25: Roter Farbkanal.} + \label{fig:lvl25_red} + \end{figure} + + \begin{figure}[H] + \centering + \includegraphics[natwidth=680, natheight=480, width=0.75\textwidth]{Objects/Graphics/Int/Levels/25/screen_blue.jpg} + \caption{Level 25: Blauer Farbkanal.} + \label{fig:lvl25_blue} + \end{figure} + + Daraus ergeben sich folgende zwei Zeilen: + \begin{quote} + DLRIED\\ + VSODLE + \end{quote} + Welche Anagramme für: + \begin{quote} + riddle\\ + solved + \end{quote} + sind. + + Der Link befindet sich auf dem gesamten Bild. +} + +\nplvl{Number twenty six}{http://deathball.net/notpron/screen26/}{riddle}{solved} +{ + \begin{hints} + \hint{Der Kommentar im Quellcode ist irrelevant.} + \hint{Was ist auf dem Bild abgebildet?} + \hint{Es ist ein Reissverschluss, englisch ,,zipper''.} + \hint{Eine Änderung der URL von http://deathball.net/notpron/level26/ nach http://deathball.net/notpron/zipper/ ergibt folgenden Text:\begin{quote}yes, its a zipper, try to ZIP it...\end{quote}} + \hint{mit ZIP ist das Ziparchiv geändert werden.} + \end{hints} +}{ + Wenn man den abgebildeten ,,Zipper'' in der URL einfügt, ergibt sich ein Hinweis auf ein Ziparchiv. + Wird nun das ,,.jpg'' des Bildes mit ,,.zip'' ersetzt, lädt man das Level 26 herunter. +} + +\nplvl{readme}{http://deathball.net/notpron/screen26/screen26.zip}{riddle}{solved} +{ + \begin{hints} + \hint{Der Kommentar im Quellcode ist irrelevant.} + \hint{Was ist auf dem Bild abgebildet?} + \hint{Es ist ein Reissverschluss, englisch ,,zipper''.} + \hint{Eine Änderung der URL von http://deathball.net/notpron/level26/ nach http://deathball.net/notpron/zipper/ ergibt folgenden Text:\begin{quote}yes, its a zipper, try to ZIP it...\end{quote}} + \hint{mit ZIP ist das Ziparchiv geändert werden.} + \end{hints} +}{ + Wenn man den abgebildeten ,,Zipper'' in der URL einfügt, ergibt sich ein Hinweis auf ein Ziparchiv. + Wird nun das ,,.jpg'' des Bildes mit ,,.zip'' ersetzt, kann man das Level 26 herunterladen. +} diff --git a/NotPron.tex b/NotPron.tex @@ -0,0 +1,16 @@ +\documentclass{scrreprt} +\input{Preamble.tex} +\title{Notpron Lösungen} +\author{Dominik Schmidt} +\date{\today} + +\begin{document} + \maketitle + \tableofcontents + + \chapter{Levels} + \input{Levels.tex} + + \chapter{Informationen} + \input{Information.tex} +\end{document} diff --git a/Objects/Graphics/Ext/Information/wingdings.png b/Objects/Graphics/Ext/Information/wingdings.png Binary files differ. diff --git a/Objects/Graphics/Ext/Levels/12/crosscube.jpg b/Objects/Graphics/Ext/Levels/12/crosscube.jpg Binary files differ. diff --git a/Objects/Graphics/Ext/Levels/8/mus2.jpg b/Objects/Graphics/Ext/Levels/8/mus2.jpg Binary files differ. diff --git a/Objects/Graphics/Int/Levels/21/maze.png b/Objects/Graphics/Int/Levels/21/maze.png Binary files differ. diff --git a/Objects/Graphics/Int/Levels/21/maze.xcf.lzma b/Objects/Graphics/Int/Levels/21/maze.xcf.lzma Binary files differ. diff --git a/Objects/Graphics/Int/Levels/25/screen_blue.jpg b/Objects/Graphics/Int/Levels/25/screen_blue.jpg Binary files differ. diff --git a/Objects/Graphics/Int/Levels/25/screen_red.jpg b/Objects/Graphics/Int/Levels/25/screen_red.jpg Binary files differ. diff --git a/Objects/Program/C/atoz.c b/Objects/Program/C/atoz.c @@ -0,0 +1,37 @@ +#ifdef __unix +#include <unistd.h> +#else +#define STDOUT_FILENO 1 +#include <io.h> +#endif +char char_atoz(char c){ + return ('z'+'a'-c); +} +int string_atoz(char *str){ + char *strbase,*strwr; + strbase=strwr=str; + while(*str!='\0'){ + if(*str==' '){ + *strwr=' '; + } + else{ + *strwr=char_atoz(*str); + } + if(*strwr>='a'&&*strwr<='z'){ + strwr++; + } + str++; + } + *strwr='\0'; + return strwr-strbase; +} + +int main(int argc, char **argv){ + unsigned short int i; + for(i=1; i<argc; i++){ + write(STDOUT_FILENO,argv[i], string_atoz(argv[i])); + write(STDOUT_FILENO," ", 1); + } + write(STDOUT_FILENO,"\n", 1); + return 0; +} diff --git a/Objects/Program/C/shift.c b/Objects/Program/C/shift.c @@ -0,0 +1,61 @@ +#ifdef __unix +#include <unistd.h> +#else +#define STDOUT_FILENO 1 +#include <io.h> +#endif +unsigned short int inRange(char c){ + return ((c>='a'&&c<='z')||(c>='A'&&c<='Z')); +} +char shiftChar(char c, unsigned short int shift){ + return (c+shift); +} +int shiftString(char *str, unsigned short int shift){ + char *strbase,*strwr; + strbase=strwr=str; + while(*str!='\0'){ + if(*str==' '){ + *strwr=' '; + } + else{ + *strwr=shiftChar(*str,shift); + } + if(inRange(*strwr)){ + strwr++; + } + str++; + } + *strwr='\0'; + return strwr-strbase; +} +int atoi(const char *str){ + int ret=0; + unsigned short int neg=0; + while(*str!='\0'){ + if(ret==0&&*str=='-'){ + neg=1; + } + if(*str>='0'&&*str<='9'){ + ret*=10; + ret+=(*str-'0'); + } + str++; + } + if(neg==1){ + ret=-ret; + } + return ret; +} +int main(int argc, char **argv){ + unsigned short int i; + if(argc<3){ + return -1; + } + int shift=atoi(argv[1]); + for(i=2; i<argc; i++){ + write(STDOUT_FILENO,argv[i], shiftString(argv[i],shift)); + write(STDOUT_FILENO," ", 1); + } + write(STDOUT_FILENO,"\n", 1); + return 0; +} diff --git a/Objects/Program/Javascript/Programs.html b/Objects/Program/Javascript/Programs.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<HTML> + <head> + <title>a &rarr; z</title> + <script src="atoz.js" type="text/JavaScript"></script> + <script src="shift.js" type="text/JavaScript"></script> + </head> + <body> + <h1 style="text-align:center; border-bottom: 2px black solid;">a &rarr; z</h1> + <div style="text-align:center"> + <p style="font-style:italic;">f<sub>(x)</sub>='z'-(x-'a')</p> + <form> + <textarea rows="20" cols="100"></textarea><p /> + <input type="button" value="Berechnen" onclick="var el=this.parentNode.parentNode.firstChild.nextSibling; el.value=string_atoz(el.value);" /> + </form> + </div> + <h1 style="text-align:center; border-bottom: 2px black solid;">x-y</h1> + <div style="text-align:center"> + <p style="font-style:italic;">f<sub>(x)</sub>=x-y</p> + <form> + <textarea rows="20" cols="100"></textarea><p /> + <input type="text" value="" /> + <input type="button" value="Berechnen" onclick="var el=this.parentNode.parentNode.firstChild.nextSibling; el.value=shiftString(el.value, this.previousSibling.previousSibling.value);" /> + </form> + </div> + </body> +</HTML> diff --git a/Objects/Program/Javascript/atoz.js b/Objects/Program/Javascript/atoz.js @@ -0,0 +1,23 @@ +function char_atoz_pos(string,pos){ + a=("a").charCodeAt(0); + z=("z").charCodeAt(0); + c=string.charCodeAt(pos); + if(c>=a&&c<=z){ + return String.fromCharCode(a+z-c); + } + else{ + return ""; + } +} +function string_atoz(string){ + var i; + var nstr=""; + for(i=0; i<string.length; i++){ + if(string.charAt(i)==" "){ + nstr+=" "; + continue; + } + nstr+=char_atoz_pos(string,i); + } + return nstr; +} diff --git a/Objects/Program/Javascript/shift.js b/Objects/Program/Javascript/shift.js @@ -0,0 +1,12 @@ + +function shiftChar(char, shift){ + return String.fromCharCode(char.charCodeAt(0)+shift); +} +function shiftString(string,shift){ + var i; + var nstr=""; + for(i=0; i<string.length; i++){ + nstr+=shiftChar(string.charAt(i),shift); + } + return nstr; +} diff --git a/Objects/Tex/ascii.tex b/Objects/Tex/ascii.tex @@ -0,0 +1,38 @@ + \begin{longtable}{|c|c|c|c||c|c|c|c|} + \hline + Dez & Hex & Okt & Zeichen & Dez & Hex & Okt & Zeichen\\ + \hline + 64 & 0x40 & 100 & @ & 96 & 0x60 & 140 & ` \\ + 65 & 0x41 & 101 & A & 97 & 0x61 & 141 & a \\ + 66 & 0x42 & 102 & B & 98 & 0x62 & 142 & b \\ + 67 & 0x43 & 103 & C & 99 & 0x63 & 143 & c \\ + 68 & 0x44 & 104 & D & 100 & 0x64 & 144 & d \\ + 69 & 0x45 & 105 & E & 101 & 0x65 & 145 & e \\ + 70 & 0x46 & 106 & F & 102 & 0x66 & 146 & f \\ + 71 & 0x47 & 107 & G & 103 & 0x67 & 147 & g \\ + 72 & 0x48 & 110 & H & 104 & 0x68 & 150 & h \\ + 73 & 0x49 & 111 & I & 105 & 0x69 & 151 & i \\ + 74 & 0x4A & 112 & J & 106 & 0x6A & 152 & j \\ + 75 & 0x4B & 113 & K & 107 & 0x6B & 153 & k \\ + 76 & 0x4C & 114 & L & 108 & 0x6C & 154 & l \\ + 77 & 0x4D & 115 & M & 109 & 0x6D & 155 & m \\ + 78 & 0x4E & 116 & N & 110 & 0x6E & 156 & n \\ + 79 & 0x4F & 117 & O & 111 & 0x6F & 157 & o \\ + 80 & 0x50 & 120 & P & 112 & 0x70 & 160 & p \\ + 81 & 0x51 & 121 & Q & 113 & 0x71 & 161 & q \\ + 82 & 0x52 & 122 & R & 114 & 0x72 & 162 & r \\ + 83 & 0x53 & 123 & S & 115 & 0x73 & 163 & s \\ + 84 & 0x54 & 124 & T & 116 & 0x74 & 164 & t \\ + 85 & 0x55 & 125 & U & 117 & 0x75 & 165 & u \\ + 86 & 0x56 & 126 & V & 118 & 0x76 & 166 & v \\ + 87 & 0x57 & 127 & W & 119 & 0x77 & 167 & w \\ + 88 & 0x58 & 130 & X & 120 & 0x78 & 170 & x \\ + 89 & 0x59 & 131 & Y & 121 & 0x79 & 171 & y \\ + 90 & 0x5A & 132 & Z & 122 & 0x7A & 172 & z \\ + 91 & 0x5B & 133 & [ & 123 & 0x7B & 173 & \{ \\ + 92 & 0x5C & 134 & $\backslash$ & 124 & 0x7C & 174 & $\mid$\\ + 93 & 0x5D & 135 & ] & 125 & 0x7D & 175 & \} \\ + 94 & 0x5E & 136 & \^{} & 126 & 0x7E & 176 & "~ \\ + 95 & 0x5F & 137 & \_ & 127 & 0x7F & 177 & DEL \\ + \hline + \end{longtable} diff --git a/Preamble.tex b/Preamble.tex @@ -0,0 +1,88 @@ +\usepackage[T1]{fontenc} +\usepackage{textcomp} +\usepackage[utf8]{inputenc} +\usepackage[ngerman]{babel} + +\parindent 0pt +\parskip 0.5em + +\usepackage{color} +\usepackage{graphicx} +\usepackage{longtable} +\usepackage{nameref} +\usepackage{float} +\usepackage{pinlabel} +\usepackage[Q=yes]{examplep} + + +\usepackage{hyperref} +\usepackage[all]{hypcap} +\hypersetup{pdfborder = {0 0 0}, colorlinks=true, allcolors=black, urlcolor=blue} + + +\usepackage{listings} +\definecolor{dkgreen}{rgb}{0,0.6,0} +\definecolor{gray}{rgb}{0.5,0.5,0.5} +\definecolor{mauve}{rgb}{0.58,0,0.82} +\definecolor{silver}{rgb}{0.75,0.75,0.75} +\lstdefinelanguage{JavaScript}{ + keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, + ndkeywords={class, export, boolean, throw, implements, import, this}, + ndkeywordstyle=\color{darkgray}\bfseries, + sensitive=false, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + morestring=[b]', + morestring=[b]" +} +\lstset{ + language=HTML, + commentstyle=\color{dkgreen}, + keywordstyle=\color{blue}, + numberstyle=\tiny\color{gray}, + rulecolor=\color{black}, + stringstyle=\color{red}, + basicstyle=\ttfamily\small, + breaklines=true, + breakatwhitespace=true, + tabsize=5, + extendedchars=true, + inputencoding=utf8, + showstringspaces=false, + texcl=false +} +\lstset{literate=% +{Ö}{{\"O}}1 +{Ä}{{\"A}}1 +{Ü}{{\"U}}1 +{ß}{{\ss}}2 +{ü}{{\"u}}1 +{ä}{{\"a}}1 +{ö}{{\"o}}1 +{é}{{\'{e}}}1 +} + +\newcommand{\npurl}[3]{ + \begin{tabular}{|r|l|r|l|} + \hline + \multicolumn{4}{|c|}{\url{#1}} \\\hline + User: & #2 & Passwort: & #3\\\hline + \end{tabular} + +} + +\newcommand{\hpref}[2]{\hyperref[#1]{\color{blue}#2}} + +\newcounter{nplevels} +\newcommand{\nplvlh}[1]{\stepcounter{nplevels} \section{Level \thenplevels~-~#1}} +\newcommand{\nplvl}[6]{ +\clearpage +\nplvlh{#1} +\npurl{#2}{#3}{#4} +\subsection*{Hinweise} +#5 +\subsection*{Lösung} +#6 +} +\newenvironment{hints}{\begin{itemize}}{\end{itemize}} +\newcommand{\hint}{\item}