Ezzel kódolom és adom le a keresési parancsot (asszem):
Kód:
($0 =~ m,(.*)/[^/]+,) && unshift (@INC, $1); # UNIX
($0 =~ m,(.*)\\[^\\]+,) && unshift (@INC, $1); # Windows
if ($ENV{'REQUEST_METHOD'} eq 'GET') {
my $buffer = $ENV{'QUERY_STRING'};
my @pairs = split(/&/, $buffer);
foreach my $pair (@pairs) {
my ($name, $value) = split(/=/, $pair);
$name=~tr/+/ /;
$name=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/ge;
$value =~tr/+/ /;
$value =~ s/%C5%91/chr(0xF5)/eg;
$value =~ s/\xc3(.)/chr(ord($1) + 0x40)/eg;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/ge;
if ($f{$name}) {$f{$name} = $f{$name} . ',' . $value}
else {$f{$name} = $value}
}
}
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, my $buffer, $ENV{'CONTENT_LENGTH'});
my @pairs = split(/&/, $buffer);
foreach my $pair (@pairs) {
my ($name, $value) = split(/=/, $pair);
$name=~ tr/+/ /;
$name=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%C5%91/chr(0xF5)/eg;
$value =~ s/\xc3(.)/chr(ord($1) + 0x40)/eg;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
if ($f{$name}) {$f{$name} = $f{$name} . ',' . $value}
else {$f{$name} = $value}
}
}
if ($f{'action'} eq 'zeigen'){
&Search;
}else{
&search;
}
Ezt átküldöm a crawlernek, ami ezzel értelmez:
Kód:
read(STDIN, $input, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $input);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%C5%91/chr(0xF5)/eg;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
#$value =~ s/<([^>]|\n)*>//g;
$in{$name} = $value;
}
}
else
{
$in = ( grep( !/^-/, @ARGV )) [0];
$in =~ s/\\&/&/g; } @in = split(/&/,$in);
foreach $i (0 .. $#in) {
$in[$i] =~ s/\+/ /g;
($key, $val) = split(/=/,$in[$i],2);
$key =~ s/%(..)/pack("c",hex($1))/ge;
$val =~ s/%(..)/pack("c",hex($1))/ge;
$in{$key} .= "\0" if (defined($in{$key}));
$in{$key} .= $val; } return length($in);
}
my @a;
Majd a kapott eredményre valami ugyan ilyen vissza felé megoldás van.. meg benne még 20 ilyen kódsorozat, amik pl. kikapkodják az értelmetlen jeleket, levagdossák.. értelmezik a szóközt stb..ú
eddig úgy nézki, hogy ez a rész lesz az orvosság rá:
$value =~ s/%C5%91/chr(0xF5)/eg;
hogy hexában felfogja, hogy pontosan melyik fajta ő betű kell..
Könyvjelzők