File-Scan
view release on metacpan or search on metacpan
examples/procmail/scanvirus.pl view on Meta::CPAN
}
#---decode_b64_file---------------------------------------------------------
sub decode_b64_file {
my $files = shift;
my $tmp_dir = shift;
my $file = shift;
my ($filename) = ($file =~ /\/?([^\/]+)$/);
my $decoded = join("/", $tmp_dir, "$filename\.eml");
open(ENCFILE, "<$file") or return("Can't open $file: $!\n");
open(DECFILE, join("", ">$decoded")) or return("Can't open $decoded: $!\n");
binmode(DECFILE);
while(<ENCFILE>) { print DECFILE rfc822_base64($_); }
close(DECFILE);
close(ENCFILE);
$files->{$decoded} = "";
return("");
}
#---mhtml_exploit---------------------------------------------------------
sub mhtml_exploit {
my $files = shift;
my $tmp_dir = shift;
my $file = shift;
examples/scan.pl view on Meta::CPAN
if(/^MIME-Version: 1\.0\x0a/o) {
# MHTML exploit
if(my $insidefile = &mhtml_exploit($file)) {
&check($fs, $insidefile);
unlink($insidefile);
}
return("MHTML exploit");
}
if(/^[A-Za-z0-9\+\=\/]{76}\x0d?\x0a[A-Za-z0-9\+\=\/]{76}\x0d?\x0a/o) {
# Base64 encoded file
if(my $decodedfile = &decode_b64_file($TMP_DIR, $file)) {
&check($fs, $decodedfile);
unlink($decodedfile);
}
return("Base64 encoded file");
}
return("");
}
);
for my $p (@{$argv}) {
if(-d $p) {
($p eq "/") or $p =~ s{\/+$}{}g;
&dir_handle($fs, $p);
examples/scan.pl view on Meta::CPAN
return();
}
#---decode_b64_file---------------------------------------------------------
sub decode_b64_file {
my $tmp = shift;
my $file = shift;
my ($filename) = ($file =~ /\/?([^\/]+)$/);
my $decoded = join("/", $tmp, "$filename\.eml");
open(ENCFILE, "<$file") or die("Can't open $file to read: $!\n");
open(DECFILE, join("", ">$decoded")) or die("Can't open $decoded to write: $!\n");
binmode(DECFILE);
while(<ENCFILE>) { print DECFILE decode_base64($_); }
close(DECFILE);
close(ENCFILE);
return($decoded);
}
#---mhtml_exploit-----------------------------------------------------------
sub mhtml_exploit {
my $file = shift;
my ($buff, $filename) = ("", "");
my $size = 1024;
open(FILE, "<$file") or die("Can't open $file: $!\n");
( run in 0.269 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )