Skip to content
Snippets Groups Projects
Commit 71658c2f authored by Anh Nguyen-Tuong's avatar Anh Nguyen-Tuong
Browse files

Add random seed option

parent e78ccc30
No related branches found
No related tags found
No related merge requests found
......@@ -52,6 +52,7 @@ static void usage(char* name)
cerr<<"\t[--disable-floating-instrumentation|-I] Instrument first instruction in basic blocks"<<endl;
cerr<<"\t[--enable-context-sensitivity <style>] Use calling context sensitivity, style={callsite,function}"<<endl;
cerr<<"\t[--disable-context-sensitivity] Disable calling context sensitivity"<<endl;
cerr<<"\t[--random-seed|r <value>] Specify random seed"<<endl;
}
int main(int argc, char **argv)
......@@ -77,6 +78,7 @@ int main(int argc, char **argv)
auto breakup_critical_edges=false;
auto floating_instrumentation=false;
auto context_sensitivity=ContextSensitivity_None;
auto random_seed = 0U;
set<string> exitpoints;
srand(getpid()+time(NULL));
......@@ -104,9 +106,10 @@ int main(int argc, char **argv)
{"enable-floating-instrumentation", no_argument, 0, 'i'},
{"disable-floating-instrumentation", no_argument, 0, 'I'},
{"enable-context-sensitivity", required_argument, 0, 'z'},
{"random-seed", required_argument, 0, 'r'},
{0,0,0,0}
};
const char* short_opts="z:e:E:w:sv?hagGdDfFucCiI";
const char* short_opts="r:z:e:E:w:sv?hagGdDfFucCiI";
while(true)
{
......@@ -184,6 +187,11 @@ int main(int argc, char **argv)
else
context_sensitivity=ContextSensitivity_None;
break;
case 'r':
random_seed = strtoul(optarg, NULL, 0);
srand(random_seed);
cout << "Setting random seed to: " << random_seed << endl;
break;
default:
break;
}
......
......@@ -37,6 +37,7 @@ usage()
echo " -i, --enable-floating-instrumentation Select best instrumentation point within basic block"
echo " -I, --disable-floating-instrumentation Use first instruction for instrumentation in basic blocks (default)"
echo " --enable-context-sensitivity <style> style={callsite,function} only function supported currently (off by default)"
echo " -r, --random-seed <value> Specify random seed"
# echo " -l, --enable-locality Maintain code locality (best effort) when instrumenting binary"
# echo " -L, --disable-locality Randomized layout when instrumenting binary"
echo " -v Verbose mode"
......@@ -50,6 +51,8 @@ other_args=""
float_opt=""
context_sensitivity_opt=""
trace_opt=""
zipr_opt=""
random_seed=""
me=$(whoami)
......@@ -197,11 +200,11 @@ parse_args()
shift
case $1 in
function)
context_sensitivity_opt=" -o zax:\"--enable-context-sensitivity function\" "
zax_opt=" -o zax:\"--enable-context-sensitivity function\" "
shift
;;
callsite)
context_sensitivity_opt=" -o zax:--enable-context-sensitivity callsite "
zax_opt=" -o zax:\"--enable-context-sensitivity callsite\" "
echo "Error: context sensitivity <callsite> currently unsupported"
exit 1
;;
......@@ -211,6 +214,13 @@ parse_args()
;;
esac
;;
-r | --random-seed)
shift
random_seed="$1"
zax_opt=" $zax_opt -o zax:\"--random-seed $random_seed\" "
zipr_opt=" $zipr_opt --step-option zipr:\"--zipr:seed $random_seed\" "
shift
;;
-l | --enable-locality)
trace_opt=" --step-option zipr:--traceplacement:on --step-option zipr:true "
shift
......@@ -324,8 +334,8 @@ fi
#
log_msg "Transforming input binary $input_binary into $output_zafl_binary"
zax_opt=" $zax_opt $float_opt $context_sensitivity_opt "
cmd="$ZAFL_TM_ENV $PSZ $input_binary $output_zafl_binary $ida_or_rida_opt -c move_globals=on -c zax=on -o move_globals:--elftables-only $stars_opt $zax_opt $verbose_opt $options $other_args $trace_opt"
zax_opt=" $zax_opt $float_opt "
cmd="$ZAFL_TM_ENV $PSZ $input_binary $output_zafl_binary $ida_or_rida_opt -c move_globals=on -c zax=on -o move_globals:--elftables-only $stars_opt $zax_opt $verbose_opt $options $other_args $trace_opt $zipr_opt"
if [ ! -z "$ZAFL_TM_ENV" ]; then
log_msg "Trace map will be expected at fixed address"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment