wirefuzz: add -S option for exclusive rule load

pull/1851/head
Victor Julien 10 years ago
parent 0a22ba7e23
commit 0d77c4d560

@ -2,7 +2,7 @@
#Author:William Metcalf <william.metcalf@gmail.com>
#File:wirefuzz.pl
#Copyright (C) 2010 Open Information Security Foundation
#Copyright (C) 2010-2015 Open Information Security Foundation
#You can copy, redistribute or modify this Program under the terms of
#the GNU General Public License version 2 as published by the Free
@ -55,7 +55,7 @@ use Capture::Tiny 'capture';
use List::Util 'shuffle';
use Devel::GDB;
use File::Find;
use Getopt::Long;
use Getopt::Long qw(:config no_ignore_case);
use File::Basename;
#globals
@ -65,6 +65,7 @@ my @files;
my $suricatabin;
my $loopnum;
my $rules;
my $rules_exclusive = 0;
my $logdir;
my $configfile;
my $editeratio;
@ -80,7 +81,7 @@ my $keeplogs;
my $file_was_fuzzed = 0;
Getopt::Long::Configure("prefix_pattern=(-|--)");
GetOptions( \%config, qw(n=s r=s c=s e=s v=s p=s l=s s=s x=s k y z=s h help) );
GetOptions( \%config, qw(n=s r=s c=s e=s v=s p=s l=s s=s S=s x=s k y z=s h help) );
&parseopts();
@ -169,6 +170,16 @@ sub parseopts {
print("parseopts: rules file not specified or doesn't exist\n");
}
# exclusive rules file: do we have a path and does it exist
if ( $config{S} && -e $config{S} ) {
$rules = $config{S};
$rules_exclusive = 1;
print "parseopts: telling suricata to use rules file exclusively " . $rules . "\n";
}
else {
print("parseopts: rules file not specified or doesn't exist\n");
}
#log dir does it exist
if ( $config{l} && -e $config{l} ) {
$logdir = $config{l};
@ -276,6 +287,7 @@ sub printhelp {
-r=<filemask for pcaps to read>
-n=<(optional) number of iterations or if not specified will run until error>
-s=<(optional) path to ids rules file will be passed as -s to suricata>
-S=<(optional) path to ids rules file will be passed as -S to suricata>
-e=<(optional) editcap error ratio to introduce if not specified will not fuzz. Valid range for this is 0.00 - 1.0>
-p=<path to the suricata bin>
-l=<(optional) log dir for output if not specified will use current directory.>
@ -426,7 +438,11 @@ while ( $successcnt < $loopnum ) {
. $fuzzedfile . " -l "
. $logdir;
if ( defined $rules ) {
$fullcmd = $fullcmd . " -s " . $rules;
if ($rules_exclusive == 1) {
$fullcmd = $fullcmd . " -S " . $rules;
} else {
$fullcmd = $fullcmd . " -s " . $rules;
}
}
print "suricata: $fullcmd \n";
my $starttime = time();

Loading…
Cancel
Save