* Slightly updated documentation.
This commit is contained in:
parent
1b5ba510be
commit
cd34753adc
24
doc/zzuf.1
24
doc/zzuf.1
@ -10,15 +10,18 @@ zzuf \- multiple purpose fuzzer
|
||||
.I ratio
|
||||
] [
|
||||
.B \-s
|
||||
.I seed[:stop]
|
||||
] [
|
||||
.B \-F
|
||||
.I children
|
||||
.I seed
|
||||
|
|
||||
.B \-s
|
||||
.I start:stop
|
||||
]
|
||||
.PD 0
|
||||
.IP
|
||||
.PD
|
||||
[
|
||||
.B \-F
|
||||
.I children
|
||||
] [
|
||||
.B \-B
|
||||
.I bytes
|
||||
] [
|
||||
@ -185,6 +188,17 @@ to reproduce the same behaviour without using
|
||||
|
||||
.B % vlc fuzzy-movie.avi
|
||||
|
||||
.fi
|
||||
Fuzz
|
||||
.BR mplayer 's
|
||||
input with seeds 0 to 9999, launching up to 3 simultaneous child processes
|
||||
and killing
|
||||
.BR mplayer
|
||||
if it takes more than one minute to read the file:
|
||||
.fn
|
||||
|
||||
.B % zzuf -q -s 0:10000 -F 3 -T 60 -r 0.02 -i movie.avi mplayer movie.avi -- -benchmark -vo null -fps 1000
|
||||
|
||||
.fi
|
||||
.RI
|
||||
.SH BUGS
|
||||
@ -194,7 +208,7 @@ Only the most common file operations are implemented as of now:
|
||||
.BR fopen (),
|
||||
.BR fseek (),
|
||||
etc. One important unimplemented function is
|
||||
.BR fopen ().
|
||||
.BR fscanf ().
|
||||
|
||||
Network fuzzing is not implemented. It is not yet possible to insert or
|
||||
drop bytes from the input, to fuzz according to the file format, or to do
|
||||
|
||||
14
src/zzuf.c
14
src/zzuf.c
@ -206,7 +206,7 @@ int main(int argc, char *argv[])
|
||||
if(child_list[i].status == STATUS_RUNNING
|
||||
&& maxbytes >= 0 && child_list[i].bytes > maxbytes)
|
||||
{
|
||||
fprintf(stderr, "%i: exceeded byte count, sending SIGTERM\n",
|
||||
fprintf(stderr, "seed %i: data exceeded, sending SIGTERM\n",
|
||||
child_list[i].seed);
|
||||
kill(child_list[i].pid, SIGTERM);
|
||||
child_list[i].date = now;
|
||||
@ -217,7 +217,7 @@ int main(int argc, char *argv[])
|
||||
&& maxtime >= 0.0
|
||||
&& difftime(now, child_list[i].date) > maxtime)
|
||||
{
|
||||
fprintf(stderr, "%i: time exceeded, sending SIGTERM\n",
|
||||
fprintf(stderr, "seed %i: time exceeded, sending SIGTERM\n",
|
||||
child_list[i].seed);
|
||||
kill(child_list[i].pid, SIGTERM);
|
||||
child_list[i].date = now;
|
||||
@ -231,7 +231,7 @@ int main(int argc, char *argv[])
|
||||
if(child_list[i].status == STATUS_SIGTERM
|
||||
&& difftime(now, child_list[i].date) > 2.0)
|
||||
{
|
||||
fprintf(stderr, "%i: not responding, sending SIGKILL\n",
|
||||
fprintf(stderr, "seed %i: not responding, sending SIGKILL\n",
|
||||
child_list[i].seed);
|
||||
kill(child_list[i].pid, SIGKILL);
|
||||
child_list[i].status = STATUS_SIGKILL;
|
||||
@ -254,10 +254,10 @@ int main(int argc, char *argv[])
|
||||
continue;
|
||||
|
||||
if(WIFEXITED(status) && WEXITSTATUS(status))
|
||||
fprintf(stderr, "%i: exit %i\n",
|
||||
fprintf(stderr, "seed %i: exit %i\n",
|
||||
child_list[i].seed, WEXITSTATUS(status));
|
||||
else if(WIFSIGNALED(status))
|
||||
fprintf(stderr, "%i: signal %i\n",
|
||||
fprintf(stderr, "seed %i: signal %i\n",
|
||||
child_list[i].seed, WTERMSIG(status));
|
||||
|
||||
if(child_list[i].outfd >= 0)
|
||||
@ -425,8 +425,8 @@ static void version(void)
|
||||
#if defined(HAVE_GETOPT_H)
|
||||
static void usage(void)
|
||||
{
|
||||
printf("Usage: zzuf [ -vqdh ] [ -r ratio ] [ -s seed[:stop] ] [ -F children ]\n");
|
||||
printf(" [ -B bytes ] [ -T seconds ]\n");
|
||||
printf("Usage: zzuf [ -vqdh ] [ -r ratio ] [ -s seed | -s start:stop]\n");
|
||||
printf(" [ -F children ] [ -B bytes ] [ -T seconds ]\n");
|
||||
printf(" [ -i include ] [ -e exclude ] COMMAND [ARGS]...\n");
|
||||
printf("Run COMMAND and randomly fuzz its input files.\n");
|
||||
printf("\n");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user