diff --git a/stock_examples64/Makefile b/stock_examples64/Makefile index 53d2a7aeb763f2cc3291dcd5201e95ed764f9286..283304b89bdf602564b284943baf37d3a770b38d 100644 --- a/stock_examples64/Makefile +++ b/stock_examples64/Makefile @@ -16,7 +16,7 @@ all: env_check ${protected_exes} .stock.protected: .PHONY - ${PEASOUP_HOME}/tools/ps_analyze64.sh $< $@ + ${PEASOUP_HOME}/tools/ps_analyze64.sh $< $@ --step ilr=off $(protected_exes): ${STRATA}/lib/x86_64_linux/libstrata.a .PHONY diff --git a/tools/bed.sh b/tools/bed.sh index c766dbe5c3772addb948a891950b172bded7be1f..12039126c727a54e424422397182fc5459d885f0 100755 --- a/tools/bed.sh +++ b/tools/bed.sh @@ -21,7 +21,7 @@ fi #generate the bspri code echo "Generating bspri" -$SECURITY_TRANSFORMS_HOME/tools/spasm/spasm $aspri $bspri $TOP_LEVEL/stratafier.o.exe $TOP_LEVEL/libstrata.so.symbols +$SECURITY_TRANSFORMS_HOME/tools/spasm/spasm $aspri $bspri $TOP_LEVEL/a.ncexe $TOP_LEVEL/stratafier.o.exe $TOP_LEVEL/libstrata.so.symbols status=$? if [ ! $status -eq 0 ]; then echo "BED: spasm error -- spasm exited with non-zero status ($status)" @@ -75,4 +75,4 @@ fi echo "BED TEST SUCCESS" -exit 0 \ No newline at end of file +exit 0 diff --git a/tools/bed_blackbox.sh b/tools/bed_blackbox.sh index 1ae096e31ab183cdad54ac313e3564c776188481..067603b6b7489cceeaad37655a9c43f55916cf73 100755 --- a/tools/bed_blackbox.sh +++ b/tools/bed_blackbox.sh @@ -22,7 +22,7 @@ bspri=$3 SCRIPT_NAME=$PEASOUP_DIR/manual_test_wrapper # generate the bspri code -$SECURITY_TRANSFORMS_HOME/tools/spasm/spasm $aspri $bspri $PEASOUP_DIR/stratafier.o.exe $PEASOUP_DIR/libstrata.so.symbols +$SECURITY_TRANSFORMS_HOME/tools/spasm/spasm $aspri $bspri $PEASOUP_DIR/a.ncexe $PEASOUP_DIR/stratafier.o.exe $PEASOUP_DIR/libstrata.so.symbols if [ ! $? -eq 0 ]; then echo "BED: spasm error -- exiting" exit 1 diff --git a/tools/bed_manual.sh b/tools/bed_manual.sh index 10a9248a5e6097f76a457c1f17792752e419cbcb..598f526b6dcee4df869c5a3f0d674f438803cf4c 100755 --- a/tools/bed_manual.sh +++ b/tools/bed_manual.sh @@ -18,7 +18,7 @@ aspri=$2 bspri=$3 # generate the bspri code -$SECURITY_TRANSFORMS_HOME/tools/spasm/spasm $aspri $bspri $PEASOUP_DIR/stratafier.o.exe $PEASOUP_DIR/libstrata.so.symbols +$SECURITY_TRANSFORMS_HOME/tools/spasm/spasm $aspri $bspri $PEASOUP_DIR/a.ncexe $PEASOUP_DIR/stratafier.o.exe $PEASOUP_DIR/libstrata.so.symbols if [ ! $? -eq 0 ]; then echo "BED: spasm error -- exiting" exit 1 diff --git a/tools/do_appfw.sh b/tools/do_appfw.sh index 384d0290665eeb22877ce61df3206ad2d99ad39a..148320f0914870509f6b1b7ef511c6ea511f481b 100755 --- a/tools/do_appfw.sh +++ b/tools/do_appfw.sh @@ -1,5 +1,8 @@ #!/bin/sh +bits=$1 +shift + program=$1 find_string_log=$2 @@ -9,4 +12,6 @@ cp $program.sigs $program.sigs.orig # copy application firewall library # for now, it's only SQL -cp $SECURITY_TRANSFORMS_HOME/appfw/lib/libappfw.so . +cp $SECURITY_TRANSFORMS_HOME/appfw/lib/libappfw.so$(bits) libappfw.so + +$PEASOUP_HOME/tools/update_env_var.sh DO_APPFW 1 diff --git a/tools/do_integertransform.sh b/tools/do_integertransform.sh index 1b6df2cc1af59c2ca78d7dbb802ad2d6df8c1fdf..77eab76b94f6a5a9e00d9810b0882688963bd255 100755 --- a/tools/do_integertransform.sh +++ b/tools/do_integertransform.sh @@ -60,7 +60,7 @@ fi # generate aspri, and assemble it to bspri # echo "INT: Generate temporary aspri --> bspri for integer transform" # $SECURITY_TRANSFORMS_HOME/libIRDB/test/generate_spri.exe $tempcloneid $INTEGER_ASPRI -# $SECURITY_TRANSFORMS_HOME/tools/spasm/spasm $INTEGER_ASPRI $INTEGER_BSPRI stratafier.o.exe +# $SECURITY_TRANSFORMS_HOME/tools/spasm/spasm $INTEGER_ASPRI $INTEGER_BSPRI a.ncexe stratafier.o.exe # if [ $? -eq 0 ]; then # produce list of instruction addresses that trigger an integer detector diff --git a/tools/intxform_detect_benign_fp.sh b/tools/intxform_detect_benign_fp.sh index 092a533fbd468310d0eb4a9b3a9e237711a06749..6824c0f4ed511360ccb7b9156e36ea00db36edac 100755 --- a/tools/intxform_detect_benign_fp.sh +++ b/tools/intxform_detect_benign_fp.sh @@ -46,7 +46,7 @@ $SECURITY_TRANSFORMS_HOME/tools/transforms/integertransformdriver.exe $tempclone # generate aspri, and assemble it to bspri echo "intxform(detect-benign-fp): Generate temporary aspri --> bspri for integer transform" $SECURITY_TRANSFORMS_HOME/libIRDB/test/generate_spri.exe $($PEASOUP_HOME/tools/is_so.sh a.ncexe) $tempcloneid $INTEGER_ASPRI -$SECURITY_TRANSFORMS_HOME/tools/spasm/spasm $INTEGER_ASPRI $INTEGER_BSPRI stratafier.o.exe libstrata.so.symbols +$SECURITY_TRANSFORMS_HOME/tools/spasm/spasm $INTEGER_ASPRI $INTEGER_BSPRI a.ncexe stratafier.o.exe libstrata.so.symbols # generate script to run instrumented binary DETECTOR_BINARY=benignfp.detector diff --git a/tools/p1xform_v2.sh b/tools/p1xform_v2.sh index b84fec5e0986f7ef17d4250b88a92b699ca51937..fc88f3967e53701c91dfc202fbfa8c6fa7bc20b5 100755 --- a/tools/p1xform_v2.sh +++ b/tools/p1xform_v2.sh @@ -14,7 +14,7 @@ bspri=$3 P1_DIR=p1.xform/$fname #generate the bspri code -$SECURITY_TRANSFORMS_HOME/tools/spasm/spasm $aspri $bspri $TOP_LEVEL/stratafier.o.exe $TOP_LEVEL/libstrata.so.symbols +$SECURITY_TRANSFORMS_HOME/tools/spasm/spasm $aspri $bspri $TOP_LEVEL/a.ncexe $TOP_LEVEL/stratafier.o.exe $TOP_LEVEL/libstrata.so.symbols if [ $? -ne 0 ]; then echo "Spasm failure in performing validation" diff --git a/tools/ps_analyze.sh b/tools/ps_analyze.sh index 59f934d024a4adaca4724a84b1ae06f253489110..c5bc18cecfa9ee1c00a0ffad244186e557498bdb 100755 --- a/tools/ps_analyze.sh +++ b/tools/ps_analyze.sh @@ -29,6 +29,9 @@ intxform_warnings_only=0 # default: integer warnings only mode is off intxform_detect_fp=1 # default: detect benign false positives is on # but if determine_program is off, it's a no-op + + + # # By default, big data approach is off # To turn on the big data approach: modify check_options() @@ -537,6 +540,17 @@ mkdir $newdir # store the original executable as a.ncexe cp $orig_exe $newdir/$newname.ncexe +file $orig_exe|grep 32-bit >/dev/null 2>&1 +if [ $? = 0 ]; then + if [ `uname -p` = 'x86_64' ]; then + STRATA_HOME=$STRATA_HOME32 + STRATA=$STRATA32 + fi + arch_bits=32 +else + arch_bits=64 +fi + # # setup libstrata.so. We'll setup two versions, one with symbols so we can debug, and a stripped, faster-loading version. # by default, use the faster version. copy in the .symbosl version for debugging @@ -667,7 +681,7 @@ perform_step find_strings none $SECURITY_TRANSFORMS_HOME/libIRDB/test/find_strin # # analyze binary for string signatures # -perform_step appfw none $PEASOUP_HOME/tools/do_appfw.sh $newname.ncexe logs/find_strings.log +perform_step appfw none $PEASOUP_HOME/tools/do_appfw.sh $arch_bits $newname.ncexe logs/find_strings.log # # check signatures to determine if we know which program this is. @@ -746,7 +760,7 @@ fi # generate aspri, and assemble it to bspri perform_step generate_spri mandatory $SECURITY_TRANSFORMS_HOME/libIRDB/test/generate_spri.exe $($PEASOUP_HOME/tools/is_so.sh a.ncexe) $cloneid a.irdb.aspri -perform_step spasm mandatory $SECURITY_TRANSFORMS_HOME/tools/spasm/spasm a.irdb.aspri a.irdb.bspri stratafier.o.exe libstrata.so.symbols +perform_step spasm mandatory $SECURITY_TRANSFORMS_HOME/tools/spasm/spasm a.irdb.aspri a.irdb.bspri a.ncexe stratafier.o.exe libstrata.so.symbols perform_step fast_spri spasm $PEASOUP_HOME/tools/fast_spri.sh a.irdb.bspri a.irdb.fbspri # preLoaded_ILR step diff --git a/tools/ps_run.sh b/tools/ps_run.sh index 86d7fbfb5208e5f6ab04db338512e2ca2e51e273..8f16284b5db7b06daa600d21993d52a339a3e641 100755 --- a/tools/ps_run.sh +++ b/tools/ps_run.sh @@ -30,13 +30,15 @@ shift 2; # Run the program with the proper env. vars set., and the arguments to the program specified # - +DO_APPFW=0 +if [ $DO_APPFW = 1 ]; then + APPFW_DB=$datapath/appfw.db + APPFW_SIGNATURE_FILE=$datapath/a.ncexe.sigs.$$ + LD_PRELOAD=$datapath/libappfw.so +fi command=" -LD_PRELOAD=$datapath/libappfw.so LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$datapath -APPFW_DB=$datapath/appfw.db -APPFW_SIGNATURE_FILE=$datapath/a.ncexe.sigs.$$ STRATA_WATCHDOG=0 STRATA_NUM_HANDLE=0 STRATA_DOUBLE_FREE=0