Una imagen seria
El codigo
Código
#!usr/bin/perl #Finder Pass 0.4 #Version Tk #Coded By Doddy H use Tk; use Tk::ListBox; use Tk::Dialog; use Tk::FileSelect; use Cwd; use LWP::UserAgent; my $nave = LWP::UserAgent->new; $nave->agent( "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12" ); $nave->timeout(5); if ( $^O eq 'MSWin32' ) { use Win32::Console; Win32::Console::Free(); } my $color_fondo = "black"; my $color_texto = "red"; my $ta = MainWindow->new( -background => $color_fondo, -foreground => $color_texto ); $ta->title("Finder Pass 0.4 (C) Doddy Hackman 2012"); $ta->geometry("600x400+20+20"); $ta->resizable( 0, 0 ); $d = $ta->Frame( -relief => "sunken", -bd => 1, -background => $color_fondo, -foreground => $color_texto ); my $max = $d->Menubutton( -text => "Options", -underline => 1, -background => $color_fondo, -foreground => $color_texto, -activebackground => $color_texto )->pack( -side => "left" ); my $aba = $d->Menubutton( -text => "About", -underline => 1, -background => $color_fondo, -foreground => $color_texto, -activebackground => $color_texto )->pack( -side => "left" ); my $exa = $d->Menubutton( -text => "Exit", -underline => 1, -background => $color_fondo, -foreground => $color_texto, -activebackground => $color_texto )->pack( -side => "left" ); $d->pack( -side => "top", -fill => "x" ); $max->command( -label => "Crack", -background => $color_fondo, -foreground => $color_texto, -command => \&cracknow ); $max->command( -label => "Add Hash", -background => $color_fondo, -foreground => $color_texto, -command => \&addhash ); $max->command( -label => "Add File with hashes", -background => $color_fondo, -foreground => $color_texto, -command => \&addfilea ); $max->command( -label => "Clean List", -background => $color_fondo, -foreground => $color_texto, -command => \&cleanow ); $aba->command( -label => "About", -background => $color_fondo, -foreground => $color_texto, -command => \&about ); $exa->command( -label => "Exit", -background => $color_fondo, -foreground => $color_texto, -command => \&salir ); $ta->Label( -text => "Hashes", -background => $color_fondo, -foreground => $color_texto, -font => "Impact" my $had = my $has = $ta->Listbox( -width => 36, -height => 15, -background => $color_fondo, -foreground => $color_texto $ta->Label( -text => "Results", -background => $color_fondo, -foreground => $color_texto, -font => "Impact" my $red = my $res = $ta->Listbox( -width => 36, -height => 15, -background => $color_fondo, -foreground => $color_texto my $status = $ta->Label( -text => "Status : <None>", -background => $color_fondo, -foreground => $color_texto, -font => "Impact1" MainLoop; sub cracknow { my @hashes = $had->get( "0.0", "end" ); my @hashes = repes(@hashes); for my $ha (@hashes) { $status->configure( -text => "[+] Searching .." ); $ta->update; my $re = crackit($ha); if ( $re =~ /false01/ig ) { $red->insert( "end", "Not Found" ); } else { $red->insert( "end", $re ); savefile( "hashes-found.txt", $ha . ":" . $re ); } } $status->configure( -text => "Status : <None>" ); } sub addfilea { my $mediox = MainWindow->new( -background => $color_fondo, -foreground => $color_texto ); $mediox->geometry("390x90+20+20"); $mediox->resizable( 0, 0 ); $mediox->title("Add File"); $mediox->Label( -text => "File : ", -background => $color_fondo, -foreground => $color_texto, -font => "Impact1" my $enafa = $mediox->Entry( -background => $color_fondo, -foreground => $color_texto, -width => 33 $mediox->Button( -text => "Browse", -background => $color_fondo, -foreground => $color_texto, -width => 7, -activebackground => $color_texto, -command => \&bronax $mediox->Button( -text => "Load", -background => $color_fondo, -foreground => $color_texto, -width => 7, -activebackground => $color_texto, -command => \&bronaxx sub bronax { $browse = $mediox->FileSelect( -directory => getcwd() ); my $fileax = $browse->Show; $enafa->configure( -text => $fileax ); } sub bronaxx { my @ve = <OPEN>; close OPEN; for my $no (@ve) { if ( ver_length($no) ) { $had->insert( "end", $no ); } } } } sub addhash { my $plac = MainWindow->new( -background => $color_fondo, -foreground => $color_texto ); $plac->geometry("350x90+20+20"); $plac->resizable( 0, 0 ); $plac->title("Add Hash"); $plac->Label( -text => "Hash : ", -background => $color_fondo, -foreground => $color_texto, -font => "Impact1" my $ewa = $plac->Entry( -background => $color_fondo, -foreground => $color_texto, -width => 33 $plac->Button( -text => "Add", -background => $color_fondo, -activebackground => $color_texto, -foreground => $color_texto, -width => 7, -command => \&addnowa sub addnowa { if ( ver_length( $ewa->get ) ) { $had->insert( "end", $ewa->get ); } else { $ta->Dialog( -title => "Error", -buttons => ["OK"], -text => "Hash invalid", -background => $color_fondo, -foreground => $color_texto, -activebackground => $color_texto )->Show(); } } } sub cleanow { $had->delete( 0.0, "end" ); $red->delete( 0.0, "end" ); } sub about { $ta->Dialog( -title => "About", -buttons => ["OK"], -text => "This program was coded by Doddy Hackman in 2012", -background => $color_fondo, -foreground => $color_texto, -activebackground => $color_text )->Show(); } sub salir { } sub crackit { my %hash = ( 'http://md5.hashcracking.com/search.php?md5=' => { 'tipo' => 'get', 'regex' => "Cleartext of $target is (.*)", }, 'http://www.hashchecker.com/index.php?_sls=search_hash' => { 'variables' => { 'search_field' => $target, 'Submit' => 'search' }, 'regex' => "<td><li>Your md5 hash is :<br><li>$target is <b>(.*)<\/b>", }, 'http://md5.rednoize.com/?q=' => { 'tipo' => 'get', 'regex' => "<div id=\"result\" >(.*)<\/div>" }, 'http://md52.altervista.org/index.php?md5=' => { 'tipo' => 'get', 'regex' => "<br>Password: <font color=\"Red\">(.*)<\/font><\/b>" } ); $ta->update; if ( $hash{$data}{tipo} eq "get" ) { $code = toma( $data . $target ); if ( $code =~ /$hash{$data}{regex}/ig ) { my $found = $1; unless ( $found =~ /\[Non Trovata\]/ ) { last; } } } else { $code = tomar( $data, $hash{$data}{variables} ); if ( $code =~ /$hash{$data}{regex}/ig ) { my $found = $1; last; } } } } sub savefile { close SAVE; } sub repes { my @limpio; foreach $test (@_) { } } sub ver_length { } sub toma { } sub tomar { my ( $web, $var ) = @_; } #The End ?