From 1c629deb098a2ee4259b40e81409707353cfb8b1 Mon Sep 17 00:00:00 2001
From: jdh8d <jdh8d@git.zephyr-software.com>
Date: Tue, 26 Nov 2013 17:26:22 +0000
Subject: [PATCH] Former-commit-id: 4946638bfe093251951ce30e413906bcf9a83d15

---
 stock_examples64/Makefile          |  2 +-
 tools/bed.sh                       |  4 ++--
 tools/bed_blackbox.sh              |  2 +-
 tools/bed_manual.sh                |  2 +-
 tools/do_appfw.sh                  |  7 ++++++-
 tools/do_integertransform.sh       |  2 +-
 tools/intxform_detect_benign_fp.sh |  2 +-
 tools/p1xform_v2.sh                |  2 +-
 tools/ps_analyze.sh                | 18 ++++++++++++++++--
 tools/ps_run.sh                    | 10 ++++++----
 10 files changed, 36 insertions(+), 15 deletions(-)

diff --git a/stock_examples64/Makefile b/stock_examples64/Makefile
index 53d2a7aeb..283304b89 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 c766dbe5c..12039126c 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 1ae096e31..067603b6b 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 10a9248a5..598f526b6 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 384d02906..148320f09 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 1b6df2cc1..77eab76b9 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 092a533fb..6824c0f4e 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 b84fec5e0..fc88f3967 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 59f934d02..c5bc18cec 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 86d7fbfb5..8f16284b5 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
-- 
GitLab