Newer
Older
$PS $1 $2 --backend zipr --step move_globals=on --step selective_cfi=on --step-option selective_cfi:--multimodule --step-option move_globals:--cfi --step-option fix_calls:--fix-all --step-option zipr:"--add-sections false"
$PS $1 $2 --backend zipr --step move_globals=on --step selective_cfi=on --step-option selective_cfi:--multimodule --step-option move_globals:--cfi --step-option fix_calls:--fix-all --step-option selective_cfi:--color --step-option zipr:"--add-sections false"
}
get_correct()
{
cp libfib.so.orig libfib.so
cp libfib2.so.orig libfib2.so
./fib.exe $1 > correct
}
test()
{
n=$2
get_correct $n
cp $3 libfib.so
cp $4 libfib2.so
./$1 $n > out
cmp out correct
if [ $? = 1 ]; then
fails=$(expr $fails + 1 )
echo test failed $1 $2 $3 $4
echo "=== out ==="
cat out
echo "======"
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
else
passes=$(expr $passes + 1 )
echo test passed.
fi
}
build()
{
gcc -o libfib.so libfib.c -w -shared -fPIC
gcc -o libfib2.so libfib2.c -w -shared -fPIC
gcc -o fib.exe fib.c -w -L. -lfib -lfib2
gcc -o fib.exe.pie fib.c -fPIC -fpie -pie -w -L. -lfib -lfib2
mv libfib.so libfib.so.orig
mv libfib2.so libfib2.so.orig
}
protect()
{
do_cfi ./fib.exe ./fib.exe.cfi
do_cfi ./libfib.so.orig ./libfib.so.cfi
do_cfi ./libfib2.so.orig ./libfib2.so.cfi
do_coloring_cfi ./fib.exe ./fib.exe.cfi.color
do_coloring_cfi ./libfib.so.orig ./libfib.so.cfi.color
do_coloring_cfi ./libfib2.so.orig ./libfib2.so.cfi.color
}
clean()
{
rm out
rm correct
rm -Rf fib.exe* peasoup_exe* lib*.so*
}
report ()
{
total=$(expr $passes + $fails)
echo "Passes: $passes / $total"
echo "Fails : $fails / $total"
}
main()
{
build
protect
test fib.exe 2 libfib.so.orig libfib2.so.orig
test fib.exe 3 libfib.so.orig libfib2.so.orig
test fib.exe 4 libfib.so.orig libfib2.so.orig
test fib.exe 5 libfib.so.orig libfib2.so.orig
test fib.exe 2 libfib.so.cfi libfib2.so.orig
test fib.exe 3 libfib.so.cfi libfib2.so.orig
test fib.exe 4 libfib.so.cfi libfib2.so.orig
test fib.exe 5 libfib.so.cfi libfib2.so.orig
test fib.exe 2 libfib.so.orig libfib2.so.cfi
test fib.exe 3 libfib.so.orig libfib2.so.cfi
test fib.exe 4 libfib.so.orig libfib2.so.cfi
test fib.exe 5 libfib.so.orig libfib2.so.cfi
test fib.exe 2 libfib.so.cfi libfib2.so.cfi
test fib.exe 3 libfib.so.cfi libfib2.so.cfi
test fib.exe 4 libfib.so.cfi libfib2.so.cfi
test fib.exe 5 libfib.so.cfi libfib2.so.cfi
test fib.exe.cfi 2 libfib.so.orig libfib2.so.orig
test fib.exe.cfi 3 libfib.so.orig libfib2.so.orig
test fib.exe.cfi 4 libfib.so.orig libfib2.so.orig
test fib.exe.cfi 5 libfib.so.orig libfib2.so.orig
test fib.exe.cfi 2 libfib.so.cfi libfib2.so.orig
test fib.exe.cfi 3 libfib.so.cfi libfib2.so.orig
test fib.exe.cfi 4 libfib.so.cfi libfib2.so.orig
test fib.exe.cfi 5 libfib.so.cfi libfib2.so.orig
test fib.exe.cfi 2 libfib.so.orig libfib2.so.cfi
test fib.exe.cfi 3 libfib.so.orig libfib2.so.cfi
test fib.exe.cfi 4 libfib.so.orig libfib2.so.cfi
test fib.exe.cfi 5 libfib.so.orig libfib2.so.cfi
test fib.exe.cfi 2 libfib.so.cfi libfib2.so.cfi
test fib.exe.cfi 3 libfib.so.cfi libfib2.so.cfi
test fib.exe.cfi 4 libfib.so.cfi libfib2.so.cfi
test fib.exe.cfi 5 libfib.so.cfi libfib2.so.cfi
test fib.exe.cfi.color 2 libfib.so.orig libfib2.so.orig
test fib.exe.cfi.color 3 libfib.so.orig libfib2.so.orig
test fib.exe.cfi.color 4 libfib.so.orig libfib2.so.orig
test fib.exe.cfi.color 5 libfib.so.orig libfib2.so.orig
test fib.exe.cfi.color 2 libfib.so.cfi libfib2.so.orig
test fib.exe.cfi.color 3 libfib.so.cfi libfib2.so.orig
test fib.exe.cfi.color 4 libfib.so.cfi libfib2.so.orig
test fib.exe.cfi.color 5 libfib.so.cfi libfib2.so.orig
test fib.exe.cfi.color 3 libfib.so.orig libfib2.so.cfi
test fib.exe.cfi.color 5 libfib.so.orig libfib2.so.cfi
test fib.exe.cfi.color 2 libfib.so.cfi libfib2.so.cfi
test fib.exe.cfi.color 3 libfib.so.cfi libfib2.so.cfi
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
test fib.exe.cfi.color 4 libfib.so.cfi libfib2.so.cfi
test fib.exe.cfi.color 5 libfib.so.cfi libfib2.so.cfi
test fib.exe 2 libfib.so.cfi.color libfib2.so.orig
test fib.exe 3 libfib.so.cfi.color libfib2.so.orig
test fib.exe 4 libfib.so.cfi.color libfib2.so.orig
test fib.exe 5 libfib.so.cfi.color libfib2.so.orig
test fib.exe 2 libfib.so.orig libfib2.so.cfi.color
test fib.exe 3 libfib.so.orig libfib2.so.cfi.color
test fib.exe 4 libfib.so.orig libfib2.so.cfi.color
test fib.exe 5 libfib.so.orig libfib2.so.cfi.color
test fib.exe 2 libfib.so.cfi.color libfib2.so.cfi.color
test fib.exe 3 libfib.so.cfi.color libfib2.so.cfi.color
test fib.exe 4 libfib.so.cfi.color libfib2.so.cfi.color
test fib.exe 5 libfib.so.cfi.color libfib2.so.cfi.color
test fib.exe.cfi 2 libfib.so.cfi.color libfib2.so.orig
test fib.exe.cfi 3 libfib.so.cfi.color libfib2.so.orig
test fib.exe.cfi 4 libfib.so.cfi.color libfib2.so.orig
test fib.exe.cfi 5 libfib.so.cfi.color libfib2.so.orig
test fib.exe.cfi 2 libfib.so.orig libfib2.so.cfi.color
test fib.exe.cfi 3 libfib.so.orig libfib2.so.cfi.color
test fib.exe.cfi 4 libfib.so.orig libfib2.so.cfi.color
test fib.exe.cfi 5 libfib.so.orig libfib2.so.cfi.color
test fib.exe.cfi 2 libfib.so.cfi.color libfib2.so.cfi.color
test fib.exe.cfi 3 libfib.so.cfi.color libfib2.so.cfi.color
test fib.exe.cfi 4 libfib.so.cfi.color libfib2.so.cfi.color
test fib.exe.cfi 5 libfib.so.cfi.color libfib2.so.cfi.color
test fib.exe.cfi.color 2 libfib.so.cfi.color libfib2.so.orig
test fib.exe.cfi.color 3 libfib.so.cfi.color libfib2.so.orig
test fib.exe.cfi.color 4 libfib.so.cfi.color libfib2.so.orig
test fib.exe.cfi.color 5 libfib.so.cfi.color libfib2.so.orig
test fib.exe.cfi.color 2 libfib.so.orig libfib2.so.cfi.color
test fib.exe.cfi.color 3 libfib.so.orig libfib2.so.cfi.color
test fib.exe.cfi.color 4 libfib.so.orig libfib2.so.cfi.color
test fib.exe.cfi.color 5 libfib.so.orig libfib2.so.cfi.color
test fib.exe.cfi.color 2 libfib.so.cfi.color libfib2.so.cfi.color
test fib.exe.cfi.color 3 libfib.so.cfi.color libfib2.so.cfi.color
test fib.exe.cfi.color 4 libfib.so.cfi.color libfib2.so.cfi.color
test fib.exe.cfi.color 5 libfib.so.cfi.color libfib2.so.cfi.color