Nachdem ich im Internet schon öfters nach einem vernünftigen MD5 Cracker gesucht habe, welcher persönlich angepasst werden kann und ich bis auf Cain & Abel nicht viel gefunden, hatte ich die Idee mit einem Freund selbst einen zu schreiben.
Wie der Titel schon sagt, das ganze Projekt ist noch nicht abgeschlossen, aber die Hauptfunktionen sind geschrieben und funktionieren (unter Windows) sehr gut. (Unter Linux gibt es noch “Stack smashing” Probleme, welche wir nicht ergründen konnten.)
Der Funktionsumfang ist wie gesagt sehr beschränkt:
- Dictionary Attack mit Single Hash
- Dictionary Attack mit Hash List
Die Qualität des Crackers hängt momentan nur von der Qualität des Dictionary ab, aber irgendwann kommt vielleicht noch ein Brute Forcer (obwohl dies ab fünf Zeichen schon eine halbe Ewigkeit dauert…).
Was auch noch fehlt ist eine Option um die einzelnen Einträge des Dictionary zu modulieren.
Z.B.:
Dict: Hallo
Modulationen:
- hallo
- HALLO
- hallo1
- hallo2
- hAllo
- haLlo
- halLo
- …
Der Cracker kann im Moment nur 100 Hashes in einer Hashliste verarbeiten, aber dies soll auch noch durch eine Option veränderbar gemacht werden.
Am Schluss möchte ich noch auf einen Blog verweisen, welcher uns die Inspiration und die MD5.cpp & MD5.h geliefert hat und einen Dank an n00bor aussprechen: http://n00bor.org/
Und jetzt noch der Code: MD5Cracker.zip
Content:
- main.cpp
- md5.cpp
- md5.h
- hashes.txt
- list.txt
**UPDATE Coming Soon** (Es git no es paar unbekannti Problem…)
MyGate erhält nun eine neues Verzeichnis!
MyGate::Links
Unter links/ findet man eine Linksammlung. Bis jetzt sind es erst ein paar wenige Links, aber es werden mit der Zeit bestimmt mehr werden! Desweiteren sind die Kategorien auch noch nicht ganz festgelegt.
Bei Vorschlägen schreibt einfach einen Kommentar und ich werde darauf reagieren!
Hier vielleicht noch kurz zum Aufbau der Seite.
Ich habe bis jetzt noch nie mit AJAX gearbeitet und hab es eigentlich mit dieser Seite auch nicht wirklich getan, denn der HTML/Javascript (AJAX) Code ist gar nicht von mir, sondern der ist von einem OpenSource Projekt kopiert! =)
Trotzdem steck auch eigene Arbeit dahinter, nämlich die ganze PHP/MySQL Sache, also wie die Kategorien angeordnet sind und welche Links unter welchem Tab erscheint. Sicherlich wäre das ganze einfacher zu lösen, aber im Moment gefällt es mir so wie es ist!
Viel Spass damit!
GIPP, ist mir eigentlich erst in den Sinn gekommen, als ich den Titel angeschaut habe…
Da ich die Suche für ein Covers von Filme etwas schneller machen wollte, habe ich nach einem GIPP gesucht. Hab auch einen gefunden, doch tollerweise benützt dieser cURL und naja dies kann man ja auch ein wenig anderst lösen, vorallem wenn cURL nicht installiert ist.
Darum hab ich dann meine eigene Funktion, bzw. GIPP geschrieben.
<?php
function googleImageResults($search,$start=0)
{
$html = file_get_contents("http://images.google.ch/images?q=".htmlspecialchars(str_replace(" ","+",$search))."&start=".$start);
//echo $html;
preg_match_all('/dyn.setResults((.+));/', $html, $matches);
$html = $matches[0][0];
// Special chars decode
$html = str_replace("\x3d","=",$html);
$html = str_replace("\x26","&",$html);
$html = str_replace("\x3c","<",$html);
$html = str_replace("\x3e",">",$html);
// Replace Useless Things
$html = str_replace("dyn.setResults(","",$html);
$html = str_replace(");","",$html);
$html = str_replace("[]","",$html);
$html = str_replace("[[","[",$html);
$html = str_replace("]]","]",$html);
$html = str_replace(",,""","",$html);
// Loading in a Array
$images = array();
$imgs = array();
$img = array();
while(strpos($html,"[")!==FALSE)
{
$start = strpos($html,"[");
$end = (strpos($html,"],")===FALSE?strpos($html,"]"):strpos($html,"],"));
$image = substr($html,$start+1,$end-$start-1);
$images[] = $image;
$html = str_replace("[".$image."]","",$html);
}
foreach($images as $image)
{
$image = str_replace('","',"n",$image);
$image = str_replace('"',"",$image);
$img = explode("n",$image);
//echo $image;
$temp = array();
$temp['searchurl'] = $img[0];
$temp['searchhost'] = $img[14];
$temp['searchlanguage'] = substr($img[0],strpos($img[0],"&hl=")+4,strpos($img[0],"&",strpos($img[0],"&hl=")+1)-(strpos($img[0],"&hl=")+4));
$temp['searchstart'] = substr($img[0],strpos($img[0],"&start=")+7,strpos($img[0],"&",strpos($img[0],"&start=")+1)-(strpos($img[0],"&start=")+7));
$temp['searchum'] = $img[15];
$temp['searchcachid'] = $img[2];
$temp['searchusg'] = substr($img[0],strpos($img[0],"&usg=")+5,strpos($img[0],"&",strpos($img[0],"&usg=")+1)-(strpos($img[0],"&usg=")+5));
$temp['fileurl'] = $img[3];
$temp['fileheight'] = substr($img[0],strpos($img[0],"&h=")+3,strpos($img[0],"&",strpos($img[0],"&h=")+1)-(strpos($img[0],"&h=")+3));
$temp['filewidth'] = substr($img[0],strpos($img[0],"&w=")+3,strpos($img[0],"&",strpos($img[0],"&w=")+1)-(strpos($img[0],"&w=")+3));
$temp['filesize'] = substr($img[0],strpos($img[0],"&sz=")+4,strpos($img[0],"&",strpos($img[0],"&sz=")+1)-(strpos($img[0],"&sz=")+4));
$temp['fileformat'] = $img[10];
$temp['fileinfo'] = $img[9];
$temp['thumbnailurl'] = $img[14]."?q=tbn:".$img[2].$img[3];
$temp['thumbnailwidth'] = $img[4];
$temp['thumbnailheight'] = $img[5];
$temp['host'] = $img[11];
$temp['hostsite'] = substr($img[0],strpos($img[0],"&imgrefurl=")+11, strpos($img[0],"&",strpos($img[0],"&imgrefurl=")+1)- (strpos($img[0],"&imgrefurl=")+11));
$temp['hostkeywords'] = $img[6];
$temp['nothing1'] = $img[1];
$temp['nothing2'] = $img[7];
$temp['nothing3'] = $img[8];
$temp['nothing4'] = $img[12];
$temp['nothing5'] = $img[13];
$imgs[] = $temp;
}
return $imgs;
}
?>
Nicht gerade der beste Schreibstil, aber ich komm irgendwie nie so richt mit regulären Ausdrücken klar, darum das ganze strpos/substr Zeugs…
Am Ende erhält man ein normales Index-Array mit mehreren Assoziierten-Arrays.
Die «nothing» Inhalte enthalten normalerweise nichts, aber vielleicht findet jemand mehr darüber raus…
Die «unknow» Inhalte hab ich bis jetzt einfach nicht zuordnen können. Aber da gibt es auch noch weitere Sachen, bei denen ich den Sinn noch nicht begriffen habe (z.B. ’searchum› oder ’searchusg›).
Also für allen nicht so experimentier freudigen:
<?php
include("fileMitDer_googleImageResults_Funktion");
$images = googleImageResults("James Bond");
$jamesBondBild = $images[0]['fileurl'];
$images2 = googleImageResults("James Bond",21);
$jBBOffSet21 = $images[0]['fileurl'];
?>
So ich hoffe man kommt nach und das Script findet irgendwo seinen Zweck!
Sorry dass es nicht so schön dargestellt wird…
PHP ist schon toll. MySQL natürlich auch! Doch ist es nicht mühsam, wenn man eine Tabelle mit ~1000 Einträgen hat und merkt, dass man in einem Feld etwas vergessen hat wegzulassen?
Die “normale” Lösung wäre nun, ein PHP Skript zu schreiben, welches die Tabelle komplett runterlädt, denn Fehler mit PHP-Funktionen reparieren und denn wieder alles in die Tabelle einfügen. Nach mehrmaligem wiederholen von solch einer Prozedur wird man bald einmal nach einem besseren Weg suchen … und in SQL selbst finden!
Mein Problem:
Wie es ist:
Sean Connery::James Bond
Skinner::imdb:nm0000125
Ursula Andress::Honey Ryder
Skinner::imdb:nm0000266
Joseph Wiseman::Dr. No
Skinner::imdb:nm0936476
Jack Lord::Felix Leiter
Skinner::imdb:nm0520437
Wie es sein sollte:
Sean Connery::James Bond::imdb:nm0000125
Ursula Andress::Honey Ryder::imdb:nm0000266
Joseph Wiseman::Dr. No::imdb:nm0936476
Jack Lord::Felix Leiter::imdb:nm0520437
Meine Lösung in SQL:
Anzeigen (zur Kontrolle):
SELECT REPLACE([spalten_name],’[such_string]’,’[ersetz_string]’) FROM [tabelle];
z.B. SELECT REPLACE(actors,’nSkinner›,») FROM videodb_videodata;
Ersetzten (wenn Kontrolle OK):
UPDATE [tabelle] SET [spalten_name] = REPLACE([spalten_name],’[such_string]’,’[ersetz_string]’);
z.B. UPDATE videodb_videodata SET actors = REPLACE(actors,’nSkinner›,»);
Nun gut dieses Problem wäre gelöst! Doch Moment mal, da hab ich in jedem Feld noch einen Zeilenumbruch, welcher nicht dort sein sollte. Doch zum Glück besitzt SQL auch noch weitere praktische Funktionen!
Entfernen eines Zeichen am Schluss
Wie es ist:
…
Maxwell Shaw::Communications Foreman (uncredited)::imdb:nm0789871
Bob Simmons::James Bond in Gunbarrel Sequence (uncredited)::imdb:nm0799689
Wie es sein soll:
…
Maxwell Shaw::Communications Foreman (uncredited)::imdb:nm0789871
Bob Simmons::James Bond in Gunbarrel Sequence (uncredited)::imdb:nm0799689
= nichts, soll nur Umbruch veranschaulichen
Lösung
Anzeigen (zur Kontrolle):
SELECT SUBSTR([spalten_name],[start_pos_beginnt_1],{[länge]}) FROM [tabelle];
z.B. SELECT SUBSTR(actors,1,LENGTH(actors)) FROM videodb_videodata;
Ersetzten (wenn Kontrolle OK):
UPDATE [tabelle] SET [spalten_name] = SUBSTR([spalten_name],[start_pos_beginnt_1],{[länge]});
z.B. UPDATE videodb_videodata SET actors = SUBSTR(actors,1,LENGTH(actors));
Nun für ein wenig mehr erfahrene Personen war dies nun wohl offensichtlich, aber vielleicht kann es ja au anderen von Nutzen sein.
Eine kurze Übersicht über die verschiedenen Befehle in SQL findet man hier (English).
Die Probleme sind aus dem Arbeiten mit VideoDB [1] [2] [3] und eigenen Update Skripts entstanden.
[1] http://www.videodb.net/blog/
[2] http://sourceforge.net/projects/videodb/
[3] http://www.splitbrain.org/projects/videodb
Monitor aus!
Seit dem ich nun ein neues Notebook habe (Dell Inspiron 640m), fehlt mir die FN-Tastenkombination um den Monitor auszuschalten. Da ich nicht jedes Mal in Standby fahren oder den Deckel schliessen möchte, habe ich nach einer Alternative gesucht und bin nach kurzem Suchen und ausprobieren auf eine befriedigende Lösung gestossen.
Standby.exe – Quelle
Als Alternative gibt es ein Programm welche eine grafische Oberfläche hat und zuerst noch einen drei Sekunden langen Countdown hat.
MonOff.exe – Quelle
Multi-Taskbar
Da ich seit kurzem mit zwei Monitoren Arbeite, habe ich oft das Problem gehabt, dass meine Taskbar einfach zu klein war. Deshalb hab ich mich auf die Suche gemacht nach einer anständigen Lösung und tatsächlich gibt es da eine: UltraMon
UltraMon_2.7.1_en_x32.msi
Leider lässt sich die Freeversions nur als Trial verwenden. "But Google is your best friend!"
Um die Kommentare zu sehen, müssen Sie Ihr Passwort eingeben.
Geschrieben am 22.06.2009 von admin in
Games,
Reallife,
Windows
Da ich nun schon des Öfteren Abkürzungen während des Chattens erklären musste, dachte ich mir, ich könnte hier ja auch eine kleine Liste anfügen:
- np = no problem = kein Problem / keine Ursache
- kp = kei Problem = kein Problem / keine Ursache
- kp (im Hochdeutschen Sinne) = kein Plan = keine Ahnung haben
- kA = keine Ahnung
- cya = See (C) You (Ya) = Man sieht sich!
- cu = See (C) You (u) = Man sieht sich!
- bye = Tschüss!
- bb = byebye = Tschüss!
- tt = till tomorrow = Bis Morgen!
- sw = sleep well = Schlaf gut!
- thx = Thanks! = Danke!
- wayd? = What are you doing? = Was machst du?
- how r u? = How are (r) you (u)? = Wie geht es dir?
- hay? = (H)ow (a)re (y)ou? = Wie geht es dir?
- btw = by the way = überigens
- nvm = nevermind = egal
Um meine Sammlung von Witzigkeiten noch zu erweiteren, hier noch eine Web Comic über Web Design.
Ich möchte hier nicht viel darüber schreiben, denn die Comics sprechen für sich selbst!
Hier gehts zur Website: «The Brads – a comic about web desgin»
Ganz am Ende möchte ich noch eine Danksagung an meine Bruder aussprechen für den Tipp und auf seinen Blog verweisen: r d u e . n e t
Zuerst wollte ich den vorherigen Beitrag editieren, aber ich denke die nächste Website hat einen eigenen Post verdient!
Text Witze sind ja schon was tolles, doch Comics haben den grossen Vorteil nonverbale Kommunikation und verschiedene Aktionen darzustellen. Ausserdem lässt sich ein Dialog dadurch viel besser gestallten.
Check it out – xkcd – A Webcomic of romance, sarcasm, math, and language.
Und hier eine kleine Vorschau:
Nebst dem, dass Mathematik, wenn man es beherrscht oder ein interessantes Thema gefunden hat, zum Teil wirklich unterhaltsam ist, gibt es auch viele Witze. Jedoch muss man für Viele Mathematik wieder verstehen, aber nicht für Alle!
Eine grosse Sammlung findet sich hier.
Hier noch ein paar Witze als Vorschau:
* Was ist denn mit Deiner süßen kleinen Freundin, der Mathematikerin?» – «Die habe ich verlassen… ich rufe sie an – da erzählt sie, daß sie im Bett liegt und sich mit 3 Unbekannten rumplagt…
* Wer sagt 8tung, wenn er heiße Suppen ser4t? Ein Kellner, der Mathematik studiert hat.
* In Karlsruhe wurde vor kurzem sogar ein Epsilon entdeckt, das ist so klein, wenn man es durch zwei teilt wird es negativ!
* Warum verwechseln Mathematiker Weihnachten und Halloween? Weil Oct 31 = Dec 25
Naja die Liste könnte man endlos weiterführen, aber warum das Rad zweimal erfinden? -> Die ultimatiefste Mathe-Witzesammlung
« vorherige Seite —
nächste Seite »