Cracken mit Firefox

von Khark am 14. Juni 2006 um 00:47 Uhr

Wieso der Internet Explorer scheiße ist, hat mir eben wieder eines dieser Hacker-Games gezeigt. Konkret ging es um das Spiel Apprentice von http://wargames.dievo.org/. Aktuell bin ich in Level 9 durch! Die Aufgabe in Level 8 bestand aus einer grauen Seite mit dem Text “Hi there!”.

Im Quelltext stand nur folgendes: (Umgebrochen aus Gründen der Lesbarkeit.)

<script type=”text/javascript”><!–
function ROL(S, I){for(var i=0,il=S.length,N=”";i document.write(ROL('AmyrqCAmjfiCAynyqjCFUUWJSYNHJ%?%|fwlfrjx3zsn}
3xj%2%Qj{jq=A4ynyqjCAxy~qjCA&22%GTI^rfwlns?%5%5%5%5@%gfhplwtzs
i2fyyfhmrjsy?%kn}ji@%f?qnsp%yj}y2ijhtwfynts?%stsj@%htqtw?%(hhhhhh%f?
{nxnyji%yj}y2ijhtwfynts?%stsj@%htqtw?%(hhhhhh%f?mt{jw%yj}y2ijhtwfynts?
%zsijwqnsj@%htqtw?%(55555522CA4XY^QJCA4mjfiCAgti~%glhtqtwB'(IgIgI
g'CAyfgqj%|niymB'655*'%mjnlmyB'655*'%gtwijwB'5'%hjqqufiinslB'5'C
%%AywC%%%%Ayi%mjnlmyB'6'%{fqnlsB'ytu'C%Anrl%xwhB'334fuujwjsy
nhj3oul'CA4yiC%%A4ywC%%AywC%%%%Ayi%mjnlmyB'8>:’%{fqnlsB’ytu\
‘C%%%%%%Ayfgqj%|niymB’<7=’%gtwijwB’5′%hjqqufiinslB’75′C%%%%
%%%%AywC%%%%%%%%%%Ayi%|niymB’;;>’CAktsy%xnjB’7′%kfhjB’[jw
ifsf’CA&22mn1%rjjy%~tz%ns%q{qqq>3umu22CMn%ymjwj&AgwCAuC%%%%
%%%%%%A4ktsyCA4yiC%%%%%%%%A4ywC%%%%%%A4yfgqjC%%%%A4yi
C%%A4ywC%%AywC%%%%Ayi%mjnlmyB’6′%{fqnlsB’gtyytr’CAnrl%xwhB\
’334fuujwjsynhjdktty3oul’CA4yiC%%A4ywCA4yfgqjCA4gti~CA4myrqC’,-5))
–></script>

Warnung: Alle Leute die das Spiel noch spielen wollen, sollten hier aufhören zu lesen. Spoilergefahr!

Ich ging das ganze so an, das ich erstmal TV geguckt habe. Dabei kam mir die Idee einfach ein Script zu schreiben, was mir die ganze entschlüsselte Ausgabe bequem in ein .txt File schreibt. Dabei erinnerte ich mich etwas später an den Text Schädlingen auf der Spur Teil 5. Auf Seite 3 in diesem Text nutze der Autor ein ActiveX-Skript, um eben genau das gleiche zu machen.
Das Skript eingefügt und den ganzen oberen Kladderadatsch in die Ausgabefunktion gepackt. Fertig. Dann liegt unter C:\test.txt eine nette HTML-Datei mit dem entschlüsselten Link zu Level 9. Das ganze dauerte, mit Brainstorming und Ablenkung durch TV, gut 2 Stunden.
– Setzt aber den Internet Explorer voraus, der einen auch noch wegen der ActiveX-Funktion nett warnt.

Und so löste jchome das Problem:
Seite in Firefox öffnen, die Seite mit Strg+A markieren, Rechtsklick –> Auswahl Quelltext anzeigen.

Dann hat man den verschl. und entschlüsselten Quellcode im Source-Code Fenster von Firefox und kann bequem das HTML-Kommentar mit dem Link zu Level 9 lesen.

Hat den Vorteil: Klappt immer und überall.

Der IE kann sowas übrigens nicht. Dort sieht man nur das verschlüsselte Zeugs. Und eine Funktion alá “Auswahl Quelltext anzeigen” kennt der IE nicht.
– Typisch mal wieder.

Der Preis für die stilvollste Lösung geht aber eindeutig an mich. Den Award für Effizenz gebe ich aber an jchome ab :)

Technischer Ansatz: (Wenn man es so nennen will.)
Irgendwie muss der Firefox ja das “Hi there!” ausgeben, da im Quelltext ja nicht mehr außer dieser JavaScriptfunktion steht. Dazu muss Firefox diese ausführen und den resultierenden HTML-Code anzeigen.
Ich kam aber erst später auf die Idee mich zu fragen, wie das “Hi there!” eigentlich auf die Seite kommt, wenn nur der verschl. Kram im Quellcode steht. Genauer gesagt erst, nachdem ich festgestellt hatte, das der entschl. HTML-Code 1:1 dem der vorherigen Levels gleicht (das Layout) und dort auch “Hi there!” steht..

Verständniss von JavaScript und clientbasierten Scriptsprachen: +1

6 Antworten zu “Cracken mit Firefox”

  1. Simon sagt:

    Wie kommt man in Level 3 weiter?

  2. Simon sagt:

    Nevermind… war zu einfach *duh*…

  3. Simon sagt:

    Level 8 ist btw. auch in Opera und Internet Explorer extem einfach zu lösen… einfach einen Bookmark auf “javascript:alert(document.body.innerHTML);” erstellen…

  4. Zarquod sagt:

    Warum denn so kompliziert? Das ist z.B. mit Python eine Sache von zwei Minuten. Dafür reicht sogar der interaktive Modus, man muss nicht mal ein Script anlegen. Wenn der verschlüsselte Kram in “encoded” liegt:

    >>> for c in encoded:
    … decoded = decoded + chr(ord(c)-5)

    >>> decoded

    Das war’s, die Lösung liegt vor einem.

  5. Stefan sagt:

    Könnte jemand eventuell den Link zu diesem ominösen Level 8 posten? Der oben kopierte Quelltext ist leider nicht mehr zu gebrauchen, weil WordPress diesen maskiert hat.

  6. Khark sagt:

    Schlag dich doch bis Level 8 durch :)
    Da lernt man viel mehr, als einfach nur den Link anzuklicken.