Beim Start siehts so aus:

Es gibt eigentlich nur 2 Menü Puntke die interessant sind.
Crypt Help
und
Web-Tool
Hier zunächst ein paar Anmerkungen zu Crypt Help.
Zunächst
eime Entschuldigung... Das ganze ist einfach gewachsen aus kleinen
Dingen. Ich habe niemals ein Design oder Redesign gemacht. Aus diesem
Grund ist das ganze nicht wirklich intuitiv - oder auch nur gut
durchdacht.
Aber dafür schreibe ich nun ein wenig auf - damit ich selber später nochmal weiß wie ich das ganze zu bedienen habe.
Also... nun das verwirrende Fenster:

Einige Bemerkungen zu Beginn:
- die meisten Sachen haben kleine Tooltip-Texte, die beschreiben, um was es geht.
Also von oben arbeite ich mich nun nach unten vor:
Save Url
Überraschung! Das was in der Url steht wird gespeichert!
Ich weiss nicht mehr genau wofür ich das brauchte, meisten einfach auf einer Seite rechts klicken und speichern tuts ja auch.
Aber zB. für eine Shcokwave Datei, die per script nachgeladen wird. Die kann man nicht so einfach rechtsklicken.
Hier die Url eingeben und die *.swf wird abgespeichert.
Keine Abfrage nach Speicherpfad - es wird ganz platt in das Hauptverzeichnis von "JTooly" gespeichert.
Multi Save Url
Falls
es Mal vorkommen soll, dass man viele Dateien mit einem "Zaehler"
speichern soll. So kann man das mit diesem Button erreichen :-).
Da ich das nur einmal brauchte ist das auch ganz "platt" implementiert. In dem Textfeld neben dem "Replace"-Button
eine
Anzahl eingeben. Die letzten 4 Stellen des Basisdateinamens werden
"gekürzt" und mit einem Vierstelligen Counter ersetzt. Beispiel.:
Eingabe in Url Textfeld (das ist das allererste)
http://www.happige-sicherheit.de/hackits/eineDatei.part000001.rar
Eingabe in das Replace-Textfeld (und dem textfeld noch eins daneben):
4 1
Dann werden die Dateien:
http://www.happige-sicherheit.de/hackits/eineDatei.part000001.rar
http://www.happige-sicherheit.de/hackits/eineDatei.part000002.rar
http://www.happige-sicherheit.de/hackits/eineDatei.part000003.rar
http://www.happige-sicherheit.de/hackits/eineDatei.part000004.rar
In das Hauptverzeichnis von JTooly gespeichert.
So alle folgenden Sachen haben nun irgendwas mit Kryptologie zu tun.
Beziehungsweise Daten und Manipulation von Daten.
Ein paar generelle Sachen:
- Es gibt Zwei Textareas auf der linken Seite. Generell ist immer das obere die EINGABE und das untere die AUSGABE.
- Buttons die BLAU geschrieben sind manipulieren trotzdem nur die EINGABE! (ja verwirrend, ich weiss)
-
Es werden keine DATEN in irgendeiner Form in der Hinterhand gehalten.
Alle Sachen die man anstellen kann geschehen einzig und allein mit dem
was an "TEXT" in der Eingabe steht.
- Dieser Text in der Eingabe wird durch die verschiedenen Manipulationen einfach anders interpriert.
- Nochmal - auch wenn auf einem Button "Dez to Bin" steht - es wird der Text des Eingabefeldes genommen und dieser
wird dann von den Aktionen, die hinter den Buttons liegen interpretiert und in einen anderen Text verwandelt.
- Das ist wichtig zu verstehen, sonst kommen einem manche Sachen sonderbar vor!
Nochmal, um den Unterschied ganz deutlich zu machen:
- Eingabe soll sein 01000001
- Betätigen des Buttons: "Bin To Text" ergibt:
"A"
(das war zu erwarten)
- Betätigen des Buttons: "Text to Bin" ergibt:
00110000 00110001 00110000 00110000 00110000 00110000 00110000 00110001
(Also wurde jede einzelne 0 und 1 des "Textes" genommen, und der ASCII Code wurde in Binärdarstellung
ausgegeben)
- Betätigen des Buttons: "Bin to Dez" ergibt:
65
(Was auch wiederum zu erwarten war)
- Aber betätigen des Buttons: "Hex to Dez" ergibt:
16777217
(Hier wurde die Darstellung als eine Hexzahl interpretiert!)
usw.
Klar?
Mir
ist klar, dass die gewählte Art der Manipulation sowohl Vorteile als
auch Nachteile hat. Aber man kann herlich rumspielen :-).
Also nun gehts weiter mit der Erklärung.
Fangen wir links an und arbeiten uns vor.
Clr WSpaces
Löscht alle Whitespace und Spaces in der Eingabe.
Split
Zerplittert die Eingabe!
Aus dem Textfeld vor Split wird ein "Count" genommen. Jeweils nach so vielen Zeichen wird ein "Splitter" eingefügt.
Der
Splitter wird aus dem Textfeld nach dem "Split-Button" genommen. Per
default ist das ein "SPACE" (ja ich weiss, sieht man schlecht).
Also z.B.
aus
Dr House
wird mit Eingabe von "2" und "<->" in die Textfelder:
Dr<-> H<->ou<->se
Hört sich nicht beeindrucken an, was?
Aber ein anderes Beispiel mag einleuchtender sein:
Eingabe:
127436128944683271648972648723643274832764
wird mit "3" und " " zu ->
127 436 128 944 683 271 648 972 648 723 643 274 832 764
Oder vielleicht noch netter:
abcd16af 12bc172c 172ef98332
Wird mit "Clr WSpaces" gefolgt von "2" " " Split zu:
ab cd 16 af 12 bc 17 2c 17 2e f9 83 32
usw...
rumspielen halt...
<=>
Eingabe Umkehren. Text von hinten nach vorn.
Achtung! TEXT ist gemeint!
Das heisst, dass (Beispiel von oben):
ab cd 16 af 12 bc 17 2c 17 2e f9 83 32
wird zu:
23 38 9f e2 71 c2 71 cb 21 fa 61 dc ba
Also die Zahlen werden nicht von hinten nach vorn geschrieben, so dass die letzte Zahl die erste wird, sondern
die Zeichenkette, die du als Zahl interpretierst wird herumgedreht!
Replace
Einfach was ersetzen. Im folgenden Textfeld steht was gesucht wird - im nächsten mit was ersetzt werden soll.
Einfach straight forward...
Anzahl Zeichen
In dem folgenden textfeld (nicht editierbar) wird die aktuelle Anzahl der Zeichen in der Eingabe ausgegeben.
S & R
Save
und Restore. Ein ganz einfacher kleiner Buffer! Einmal "S" drücken
merkt sich die aktuelle Eingabe. R drücken schreibt die zuletzt
gespeicherte Eingabe zurück.
Ausgabe
Hier werden die Aktionensergebnisse der schwarzen "Button" ausgegeben.
Sprung nach rechts! (Mitte kommt zum Schluss)
Load as hex
... läd eine Datei in die Eingabe. Die Datei wird als 8bit Hex-Zahlen geschrieben.
Unescape
Unescaped die Eingabe. Also
%53%43%52%49%50%54%2
wird zu
SCRIPT
Integer
Hier habe ich mal alles zusammengefasst was so Integer Interpretationen der Eingabe angeht.
Die Buttons sollten eigentlich selbsterklärend sein.
Binär
Hier habe ich mal alles zusammengefasst was so Binär Interpretationen der Eingabe angeht.
Die Buttons sollten eigentlich selbsterklärend sein.
Die kleinen Felder oben zu denen sag ich noch was.
ClusterLen
Gibt an, wie viele Digits zu einem Binärwert zusammengefasst werden sollen.
Dies gilt nur für den Button "Bin to Dez", default ist 8bit. Aber es können auch 6 bit Werte, 16bit Werte 23 bit Werte etc
als Dezimalzahl ausgegeben werden.
Representant
Gibt
an, welches Symbol eine "1" präsentieren soll (alle anderen Symbole
werden dann als 0 gewertet, Spaces und Whitespaces werden GAR nicht
gewertet).
1
Soll der Reprentant die 1 bedeuten? (default) wenn das Häckchen nicht gesetzt ist, heisst das,
dass der Representant die 0 bedeutet, und dann alle anderen Symbole eine 1 bedeuten.
Low is Left
Wo steht das Niederwertige Bit der Binärzahl? (default ist rechts). Wenn das Häckchen gesetzt ist, dann
ist das Zeichen was ganz links steht das niederwertige Bit!
Mit diesen Einstellungen kann man ganz verquere Sachen anstellen, die niemand wirklich benötigt! :-)!
z.B.
Eingabe: "ABABABAB"
Ausgabe ist jeweils "Bin to Dez" Button.
-> Cluster 8,
1->A
low is not left
ergibt: 170
-> Cluster 4,
1->A
low is not left
ergibt: 10 10
-> Cluster 8,
0->A
low is not left
ergibt: 85
-> Cluster 8,
1->A
low is left
ergibt: 85
usw....
Morse
Ganz einfach - halt den text als Morse interpretieren hin oder zurück.
Was lang und was kurz sein soll - kann angegeben werden.
Braille
Hier
habe ich es mir geschenkt die "Löcher" und nicht "Löcher" anzugeben. Es
wird ein "O" als Erhebung benutzt und ein "-" als NICHT Erhebung.
Achtung!
Das ist keine tolle Implementation! die Feinheiten sind nicht berücksichtigt, wie z.B. "Escapesequenzen" für Zahlen! Oder
länderspezifische Sachen!
Mitte unten
Die Sachen hier erwarten eine Eingabe in dem "Search" Feld, also dem Feld neben dem "Replace-Button".
Caesar
Ver- und Entschluessung mit Caesar.
Die 1:1 Verschlüsselung ist "Z".
Vigenère
Ver- und Entschluessung mit Vigenère.
Die 1:1 Verschlüsselung ist "AAA..".
Fibunacci
Ausgabe
der Fibunacci Folge, übertreibts nicht mit der Eingabe. Das ist eine
Rekursive Funktion, irgendwann kommt ein Stack Overflow... Nehmt lieber
Mathematika!
Die Mitte!
Generell!
In den Tabs
sind nochmals Funktionen hinterlegt, welche häufig direkt auf die
Eingabe wirken und die eine bestimmte Darstellung erfordern.
Der Text der Eingabe wird in den einzelnen Tabs erwart als Binär, Dezimal oder Text.
Folgend sind die Bedeutungen der Tabs:
D - Dezimal
B - Binär
# - Hash
pi - Mathe - Sonstiges
$ - Kreditkarten
D
Erwartetes Eingabeformat: Dezimalzahlen durch Spaces getrennt.
Hier kann mit Zahlen herumgespielt werden. Alle Aktionen wirken sich auf die Eingabe aus.
In der Ausgabe wird das Ergebnis der Operationen auf die Zahlen als ASCII Interpretation ausgegeben.
Sprich nach Ausführung der möglichen Aktionen wird immer "automatisch" der "Dez to Text" Button betätigt!
Aktionen:
A - ADD
S - SUB
(Beide nacheinander ausgeführt heben sich auf)
Die Aktionen werden durch 5 Parameter bestimmt:
(ich beschreibe aus Sicht der Addition, Sub genau umgekehrt)
add: dieser Wert wird zu jeder Zahl hinzugezählt
inc: um diesen Wert wird "add" nach jeder Zahl die "behandelt" wird erhöht
alt: Wenn selektiert, dann wird alternierend Addiert / Subtrahiet
wrap:
Wenn selektiert, dann werden alle Ergebniss Modulo 256 genommen (sprich
nur 8 bit Werte, hm, da diese noch signed sein können - eigentlich 9
bit... strange)
unsigned: hier doch noch das signed. wenn wrap und signed selektiert sind,
kann man halt ganz normal im ASCII Bereich addieren und "kommt vorne
wieder raus"
B
Erwartetes Eingabeformat: Binärzahlen, 8 bit, 1=1 und 0=0 durch Spaces getrennt.
(Hm, eigentlich wird hier die Binär-Maske von rechts benutzt - aber die sollte schon sinnvoll eingestellt sein)
Hier kann mit Zahlen herumgespielt werden. Alle Aktionen wirken sich auf die Eingabe aus.
In der Ausgabe wird das Ergebnis der Operationen auf die Zahlen als ASCII Interpretation ausgegeben.
Sprich nach Ausführung der möglichen Aktionen wird immer "automatisch" der "Bin to Text" Button betätigt!
Shift
Innerhalb
jedes 8 bit Clusters der Eingabe die Bits (rechts oder links). Es gibt
hier kein "Carry" flag! Was links oder rechts raus fällt ist weg!
Rol
Innerhalb jedes 8 bit Clusters der Eingabe die Bits
(rechts oder links). Was auf der einen Seite rausfällt - kommt auf der anderen Seite wieder rein.
XOR, AND OR
Jedes 8 Bit-Cluster mit dem Wert des Eingabefeldes.
NOT
"Invertiere" alle 8 Bit-Cluster (eigentlich das gleiche wie "XOR 11111111")
Reverse
Drehe in jedem 8 bit Cluster jeweils alle 8 bit von hinten nach vorn.
# (Hash)
(Ach ja, ja ich kenne JtR und auch Cain...)
Erwartetes Eingabeformat: Darstellungsform des jeweiligen Hashes.
Bei einer WordList Suche wird ein eigener Thread gestartet, dieser kann mit dem roten "X" Button abgebrochen werden!
(und mit ">" fortgesetzt werden)
Die "Standardhashes" funktionieren alle gleich, also nur eine Erklärung für alle:
MD2 MD5 SHA1 CRC32 CRC64
Hash
Der Button mit dem Namen des Hashes erzeugt in der Ausgabe den entsprechenden Hash der Eingabe.
!
Mit dem Ausrufezeichen kann die angegebene (siehe unten) WordList durchsucht werden.
Sprich - es werden alle Woerter der Liste durchgegangen, der so erzeugte Hash mit dem Hash in der Eingabe verglichen.
Wenn beide gleich sind - dann wurde das Wort gefunden - und es steht in der Ausgabe!
DES
Ist eigentlich kein Hash, wird aber an verschiedenen Stellen so benutzt.
Generell werden bei DES nur 8 Zeichen kodiert.
Ein DES "Hash" wird in der Regel als 13 Byte Wert angegeben. Die ersten beiden Bytes sind das Salz in der Suppe :-).
Der Such algo erkennt ob der Eingabewert 13 Byte lang ist und benutzt die ersten 2 Bytes dann entsprechend als Salt.
Wenn
der DES "Hash" nur als 11 Byte angegeben wird, dann wird der Salt aus
dem Search Einagbefeld benutzt (die ersten beiden Bytes). Wenn dort
nichts steht wird mit "AA" aufgefüllt.
Wenn an der kleinen Checkbox
ein Hacken ist und die Eingabe keine 13 Byte lang ist, dann werden alle
256*256 mögliche Salts probiert, sprich die "Wortliste" wird insgesamt
4096 mal abgearbeitet - das könnte dauern.
In der Regel - wenn man den DES schon hat - kennt man aber auch den Salt.
WordList
Es kann eine WordList für die "Hash"-Suche angegeben werden.
(Tipp,
wenn man mehrere durchsuchen will - so kann man die mehreren ganz
leicht konkatenieren, geht under Windows, DOS und Unix - jeweils
wirklich leicht!)
Die
Liste wird immer gesucht in dem Basisverzeichnis von "JTooly/wordlist"
- ich nehme an relative Pfade von da gehen - habs aber nicht
ausprobiert.
Wenn keine weiteren Einstellungen vorgenommen werden, so wird die Wordliste wie angegeben benutzt. Es sind jedoch noch
ein paar Einstellungen möglich:
Ul, U, l
Ul - Upper lower -
jedes Wort der WordList wird konvertiert, so dass der erste Buchstabe gross geschrieben ist und der rest klein
U - Upper-
jedes Wort der WordList wird konvertiert, so dass alle Buchstaben gross geschrieben werden
l - lower-
jedes Wort der WordList wird konvertiert, so dass alle Buchstaben klein geschrieben werden
M, m
M - Maximum, es werden nur Worte benutzt, die die maximale Zeichenlänge M nicht überschreiten
m - Minimum, es werden nur Worte benutzt, die die minimale Zeichenlänge m nicht unterschreiten
Build
Mit den gerade angesprochen Einschränkungen kann eine neue WordList generiert werden. Diese wird gespeichert unter
dem Namen und Pfad der "alten" mit angehängtem "_1"
(Prefixe und PostFixe und Permutationen hab ich doch nicht gemacht...)
Pi
Ein paar mathematische Funktionen, die mir begegnet sind.
Straight forward:
- Primärfaktorzerlegung
- Ganzzahlige Teiler einer Zahl
- Quersumme
$
Brauchte bis her nur eine Masterkartenprüfung...
Hint: Siehe Class "CreditCard"