NAME
File::Scan - Perl extension for Scanning files for Viruses
SYNOPSIS
use File::Scan;
$fs = File::Scan->new([, OPTION ...]);
$fs->scan([FILE]);
if(my $e = $fs->error) { print "$e\n"; }
if(my $c $fs->skipped) { print "file skipped ($c)\n"; }
DESCRIPTION
This module is designed to allows users to scan files for known viruses. The purpose is to provide a perl module to make plataform independent virus scanners.
METHODS
new([, OPTION ...])
This method create a new File::Scan object. The following keys are available:
- extension => 'string'
-
add the specified extension to the infected file
- move => 'directory'
-
move the infected file to the specified directory
- copy => 'directory'
-
copy the infected file to the specified directory
- mkdir => octal_number
-
if the value is set to octal number then make the specified directories (example: mkdir => 0755).
- delete => 0 or 1
-
if the value is set to 1 delete the infected file
- max_txt_size => 'size in kbytes'
-
scan only the text file if the file size is less then max_txt_size. The default value is 5120 kbytes. Set to 0 for no limit.
- max_bin_size => 'size in kbytes'
-
scan only the binary file if the file size is less then max_bin_size. The default value is 10240 kbytes. Set to 0 for no limit.
scan([FILE])
This method scan a file for viruses and return the name of virus if a virus is found.
skipped()
This method return a code number if the file was skipped and 0 if not. The following skipped codes are available:
- 0 - file not skipped
- 1 - file is not vulnerable
- 2 - file has zero size
- 3 - the size of file is small
- 4 - the text file size is greater that the 'max_txt_size' argument
- 5 - the binary file size is greater that the 'max_bin_size' argument
error()
This method return a error message if a error happens.
AUTHOR
Henrique Dias <hdias@esb.ucp.pt>
CREDITS
Thanks to Rui de Castro, Sergio Castro and Ricardo Oliveira for the help.
Thanks to Fernando Martins for the personal collection of viruses.
SEE ALSO
perl(1).