Randomize the order of arguments to a function, and optionally
add extra bogus arguments. Useful to run after the
--Transform=Merge transform (to hide the extra selector argument)
or the --Transform=EncodeLiterals --EncodeLiteralsKinds=string transform
(to hide the otherwise obvious signature of the generated
string encoder function).
Options
Option | Arguments | Description |
--Transform |
RndArgs |
Randomize the order of arguments to a function and add extra bogus arguments. |
--RndArgsBogusNo |
INTSPEC |
Number of bogus arguments to add. Default=0. |
Examples
Randomize Function Arguments
|
Reorder and add bogus arguments to fib.
|
tigress --Environment=x86_64:Darwin:Clang:5.1 --Verbosity=1 \
--Transform=RndArgs --Seed=0 --RndArgsBogusNo=2?5 --Functions=fib \
--Transform=CleanUp --CleanUpKinds=annotations \
--out=gen/rndArgs.c test1.c
|
test1.c
⇒
rndArgs.sh.txt
⇒
rndArgs.c
|
Issues
- Doesn't work with functions with varargs.
- Doesn't work for functions whose address is taken
and then called through a function pointer.