uin;pass генератор по маскам (Perl)

Discussion in 'PHP' started by The_HuliGun, 22 Jul 2007.

  1. The_HuliGun

    The_HuliGun Elder - Старейшина

    Joined:
    19 May 2007
    Messages:
    191
    Likes Received:
    84
    Reputations:
    11
    Доброго времени суток!
    На досуге написал скрипт генератора пар uin;pass. И не стоит сразу кричать, что тема боян, таких генераторов уже туча, и т. д. Я преследовал скорее идею показать посетителям мощь и простоту языка Perl, нежели написать супер практический многофункциональный скрипт. Я хочу, чтобы новички в программировании познакомились з базовыми конструкциями языка, а все, кто еще не знаком с регулярными выражениями увидели их гибкость и простоту в решении практических задач.

    PHP:
    #!/usr/bin/perl 

     
    $min  100000
     
    $max  999999
     
    $flag 0;   # Флаг маски
     
    $pass;       # Файл с паролями
     
    $t_pass 0;
     
    $t_pair 0;

     
    welcome();

     
    $destination shift @ARGV;
     
    open (OUT,">$destination");

     while ((
    $p ne "-f")&&($p ne "-p")&&($p=shift @ARGV)) 
     {
      if (
    $p eq "-i") { $a shift @ARGV;if ($a =~ m/^\d*$/) {$min $a }; $a shift @ARGV; if ($a =~ m/^\d*$/) {$max $a;}}
      if (
    $p eq "-f") {$pass shift @ARGV;open(IN,"$pass"); last;}
      if (
    $p eq "-p") { last;}
      if (
    $p eq "-m") { $p shift @ARGV; if ($p eq "x"){$flag 1}; if ($p eq "xy"){$flag 2}; if ($p eq "xyz"){$flag 3};};
     }

     if (
    $pass
     { 
      while(<
    IN>) 
       {
        
    $t_pass++;
        
    chomp;
        
    go($_);
       }
      
    finish();
     }

     if (
    $p eq "-p")
      {
       while (
    $p shift @ARGV)
        {
         
    $t_pass++;
         
    go($p);
        }
       
    finish();
      }

     
    sub welcome()
      {
       print
    "\n                UIN;PASS Generator\n";
       print
    "\nUsage: \"perl gen.pl <output file> <options>\"\n";
       print
    "\nOptions:\n";
       print
    "-i Diapazon, example: \"perl gen.pl input.txt -i 10000 20000\"\n";
       print
    "-m Mask, can be x, xy, xyz\n";
       print
    "-f File with passwords in current dir\n";
       print
    "-p Passwords separated by space\n";
       print
    "\nExamples:\n";
       print
    "perl gen.pl uin.txt -m xyz -f pass.txt\n";
       print
    "perl gen.pl uin.txt -i 10000 50000 -p qwerty\n"
       print
    "perl gen.pl uin.txt -m xy -p abc123 monkey grandpa\n";
       print
    "perl gen.pl uin.txt -i 10000 30000 -m xyz -p myicqpass\n";
      };

     
    sub go()
      {
       for (
    $i $min$i <= $max$i++)
        {
         if (!
    $flag) { print OUT "$i;$_[0]\n"$t_pair++; };
         if ((
    $flag == 1)&&($i=~ m/^(\d)\1*$/)) { print OUT "$i;$_[0]\n"$t_pair++; };
         if ((
    $flag == 2)&&($i=~ m/^(\d)\1*(\d)(\1|\2)*$/)) { print OUT "$i;$_[0]\n"$t_pair++; };
         if ((
    $flag == 3)&&($i=~ m/^(\d)\1*(\d)(\1|\2)*(\d)(\1|\2|\4)*$/)) { print OUT "$i;$_[0]\n"$t_pair++; };
        }
      };

     
    sub finish()
      {
       print 
    "\nSuccess!\n";
       print 
    "Generated $t_pair pairs with $t_pass pass and writed to $destination";
      }

     
    # Если не задана опция -i, тогда интервал по дефолту от 100000 до 999999
    Возможности: генерация по маскам x, xy, xyz, использование файла с паролями, ведение статистики по количеству сгенерированных пар. Практичность том, что скрипт позволяет сгенерировать пары на удаленной тачке, если брут производится с дедика или захваченного сервера. ИМХО легче сгенерить файл на месте чем закачивать его на сервер.
     
    4 people like this.
  2. genom--

    genom-- Elder - Старейшина

    Joined:
    9 Jul 2006
    Messages:
    668
    Likes Received:
    416
    Reputations:
    288
    ну такой скрипт на месте накропать дело 1 минуты -- тупо два фора один с номерами др с пачкой пассов и вывод в файл - и все =)
     
    1 person likes this.
  3. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    genom--, да вы crazy coder =\
    Тема баян...показывать простоту языка здесь совсем ни к чему..
    Мб мне создать такое на пхп в 5 строк - покажу простоту языка пхп
     
  4. genom--

    genom-- Elder - Старейшина

    Joined:
    9 Jul 2006
    Messages:
    668
    Likes Received:
    416
    Reputations:
    288
    я в 1 строку могу -- ток она будет длинная )))
     
  5. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    genom--, когда говорят про строки - имеется ввиду строка не больше 1000px в длину =)