Skeleton PERL Scripts
pl2py.pl
#!/usr/bin/env perl
#
# $Id:$
#
if ( $#ARGV != 0 ) {
printf "Enter basename of file to convert (i.e. no extension!)\n";
exit(0);
}
$file = $ARGV[0];
print $file;
$pl = $file . ".pl";
$py = $file . ".py";
open IN, "<$pl";
open OUT, ">$py";
while (<IN>) {
chop();
$_ =~ s'/usr/bin/perl'/usr/bin/env python'g;
$_ =~ s/::/./g;
$_ =~ s/\$//g;
$_ =~ s/;//g;
$_ =~ s/use/import/g;
printf OUT "%s\n", $_;
}
close IN;
close OUT;
system("chmod +x $py")
Edit File
#!/usr/bin/env perl
$file = "llheader_jar.log";
open IN, "< $file";
open OUT, "> ntlm.txt";
$typeFlg = -1;
while (<IN>) {
chop();
s/
//;
/^Authorization: / && do {
if ( $typeFlg == 0 ) {
$typeFlg = 1;
s/.*Negotiate *//;
} else {
$typeFlg = 3;
s/.*Negotiate *//;
}
printf OUT "::%d:: %s\n", $typeFlg, $_;
};
/^Parameter \"WWW/ && do {
next if /Negotiate\"/;
/NTLM/ && do {
$typeFlg = 0;
s/"$//;
s/.*"//;
printf OUT "::0:: %s\n", $_;
};
/Parameter \"WWW-Authenticate\" Value \"Negotiate / && do {
$typeFlg = 2;
s/.*Negotiate *//;
s/"$//;
printf OUT "::2:: %s\n", $_;
};
#printf "%s\n", $_;
};
}
close IN;
close OUT;
fix.pl
#!/usr/local/bin/perl
open IN, "< xx.c";
open OUT, "> new.c";
$cnt = 0;
while (<IN>) {
chop();
/\/\/ <[0-9][0-9][0-9][0-9]>/ && do {
s/[0-9][0-9][0-9][0-9]/%04d/;
$l = sprintf $_, $cnt++;
$_ = $l;
printf "%s\n", $_;
};
printf OUT "%s\n", $_;
}
close( OUT );
parser.pl
#!/usr/bin/perl
use IO::Handle;
STDOUT->autoflush(1);
my($total, $current, $icmp);
$current=1;
$icmp=0;
init_parser();
$total=get_info();
foreach $linia (<STDIN>){
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
printf("Analysing line $current of $total");
$current++;
if($linia=~/^.+\s.+\s>>>>\s.+\s.+\s.+/){
my($proto, $srcip, $nic, $dstip, $date, $time)=split(' ', $linia);
$srcip=~tr/:/./;
$dstip=~tr/:/./;
if($proto eq "ICMP"){$icmp=1;}
if(($proto ne "ICMP") && $icmp==1){print PLIK "$linia";goto blah;}
open(PLIK, ">>./$proto/$srcip-$dstip")|| die "Can`t open file ./$proto/$srcip-$dstip: $!\n";
if(($proto eq "ICMP")){ print PLIK "$linia";}
blah:
}
else{
if($linia=~/--end-of-icmp-packet/){
$icmp=0;
print PLIK "\n";
}
else{
$linia=~s/^\n$//;
print PLIK "$linia";
}
}
}
printf("\n");
sub init_parser{
if(!(-d "./TCP")){
mkdir("./TCP", 0744) || die "Can`t create \"tcp\" directory: $!\n";
}
if(!(-d "./UDP")){
mkdir("./UDP", 0744) || die "Can`t create \"udp\" directory: $!\n";
}
if(!(-d "./ICMP")){
mkdir("./ICMP", 0744) || die "Can`t create \"icmp\" directory: $!\n";
}
}
sub get_info{
my($tem, $counter);
$counter=0;
foreach $tem (<STDIN>){
$counter++;
}
seek(STDIN, 0, SEEK_SET);
return $counter;
}
Generate HTTP Requests
#!/usr/local/bin/perl -w
use LWP::UserAgent;
use Time::HiRes 'time','sleep';
$ua = LWP::UserAgent->new;
$request = new HTTP::Request('GET', "http://localhost/index.html");
$hits = 50;
$hps = 100;
# Do 50 hits at 100 hits per second, then 50 at 99 hits per second, ...
while ($hps) {
$i = $hits;
$start = time();
while ($i--) {
$ua->request($request);
sleep (1/$hps);
}
$end = time();
print "$hps ", $hits/($end - $start), "\n";
$hps--;
}