-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild-variants.sh
executable file
·130 lines (107 loc) · 3.47 KB
/
build-variants.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/bin/bash
if [ -d "out" ];
then
echo "Build directory exists."
else
echo "Creating build directory.."
mkdir out
fi
echo "Building simple AES implementation.."
gcc -g AES.c -o out/simpleaes
echo "Building unobfuscated variant0.."
gcc -o out/variant0 CHOWAES.c
# Run Tigress obfuscator scripts
echo "Running obfuscator script for variant1.."
./variants/variant1_opaque_encmath_aa_split.sh
echo "vairant3.............."
./variants/variant3_tigress_encode_data.sh
echo "vairant4.............."
./variants/variant4_tigress_virtualize_function.sh
echo "variant5.............."
./variants/variant5_tigress_virtualize_dynamic_obfs.sh
echo "variant6.............."
./variants/variant6_tigress_merge_virtualize_encodelit.sh
echo "variant7.............."
./variants/variant7_tigress_encode_data_encmath_opaque.sh
echo "test variant - WhiteBoxAES.............."
./variants/test_variant_WhiteBoxAES.sh
echo "test variant - BUWhiteBoxAES............"
./variants/test_variant_BUWhiteBoxAES.sh
echo "test variant - WhiteboxDES.............."
./variants/test_variant_WhiteboxDES.sh
echo "test variant - DES......................"
./variants/test_variant_DES.sh
echo "test variant - AES......................"
./variants/test_variant_AES.sh
# Build binaries
cd out
echo "[Tigress] Building variant1.."
gcc -w -o variant1 variant1_CHOWAES_OFS.c
cd ..
echo "[LLVM] Building variant2.."
./variants/variant2_llvm_obfuscator.sh
cd out
echo "[Tigress] Building variant3.."
gcc -w -o variant3 variant3_CHOWAES_OFS.c
echo "[Tigress] Building variant4.."
gcc -w -o variant4 variant4_CHOWAES_OFS.c
echo "[Tigress] Building variant5.."
gcc -w -o variant5 variant5_CHOWAES_OFS.c
echo "[Tigress] Building variant6.."
gcc -w -o variant6 variant6_CHOWAES_OFS.c
echo "[Tigress] Building variant7.."
gcc -w -o variant7 variant7_CHOWAES_OFS.c
echo "[Tigress] Building test variant - WhiteBoxAES.."
gcc -w -o test_WhiteBoxAES_1_variant test_WhiteBoxAES_1_variant.c
echo "[Tigress] Building test variant - BU-Whitebox-Aes.."
gcc -w -o test_BUWhiteBoxAes_variant test_BUWhiteBoxAes_variant.c
echo "[Tigress] Building test variant - WhiteboxDES.."
gcc -w -o test_WhiteboxDES_variant test_WhiteboxDES_variant.c
echo "[Tigress] Building test variant - DES.."
gcc -w -o test_DES_variant test_DES_variant.c
echo "[Tigress] Building test variant - AES.."
gcc -w -o test_AES_variant test_AES_variant.c
cd ..
echo "[LLVM] Building test variant - WhiteBoxAES LLVM obfuscation.."
./variants/test_llvm_WhiteBoxAES.sh
echo "[LLVM] Building test variant - BU-Whitebox-Aes LLVM obfuscation.."
./variants/test_llvm_BUWhiteBoxAES.sh
# LLVM fails compiling this
# echo "[LLVM] Building test variant - WhiteboxDES LLVM.."
# ./variants/test_llvm_WhiteboxDES.sh
echo "[LLVM] Building test variant - DES LLVM.."
./variants/test_llvm_DES.sh
echo "[LLVM] Building test variant - AES LLVM.."
./variants/test_llvm_AES.sh
remove_symbols() {
cd out
echo "Removing debug symbols.."
strip variant1
strip variant2
strip variant3
strip variant4
strip variant5
strip variant6
strip variant7
strip test_WhiteBoxAES_1_variant
strip test_WhiteBoxAES_1_llvm
strip test_BUWhiteBoxAes_variant
strip test_BUWhiteBoxAes_llvm
strip test_WhiteboxDES_variant
# strip test_WhiteboxDES_llvm
strip test_DES_variant
strip test_DES_llvm
strip test_AES_variant
strip test_AES_llvm
cd ..
}
if [ $# -eq 1 ]
then
if [ $1 != "--add-symbols" ]
then
remove_symbols
fi
else
remove_symbols
fi
echo "Done!"