# A Framework to Quantify the Quality of Source Code Obfuscation
## 6 Experiment
### Resilience Measurement Results  
Figure 5 displays the outcomes of the four indicators used to assess Resilience. In Figure 5, the units for symbolic execution time and analysis time measurements are in milliseconds, while coverage and optimization measurements are expressed as percentages. Neither Stunnix C/C++ Obfuscator nor Semantic Designs C-GCC4 Obfuscator influenced coverage or optimization values in our experiments. Conversely, there was an impact on symbolic time and analysis time, indicating that data or code structure alterations can affect the tool's time to analysis. Table 5 details the quantification results for obfuscation Resilience.  
\begin{table}
\begin{tabular}{c c c c c c} \hline \hline \multirow{2}{*}{**Tools**} & \multicolumn{5}{c}{**Resilience (ms,\%)**} \\ \cline{2-6}  & \multicolumn{2}{c}{**Symbolic Execution Time**} & **Code Coverage** & **Static Analysis Time** & **Code Optimization** \\ \hline Baseline & Average & \(55.81\) & \(73.17\) & \(104.95\) & \(55.02\) \\ \hline Stunnix C/C++ Obfuscator & Average & \(38.66\) & \(73.13\) & \(109.04\) & \(55.02\) \\  & Growth Rate & \(-25.77\%\) & \(0.05\%\) & \(7.21\%\) & \(0\%\) \\ \hline Semantic Designs C Obfuscator & Average & \(54.92\) & \(73.05\) & \(108.69\) & \(55.02\) \\  & Growth Rate & \(6.01\%\) & \(0.15\%\) & \(8.29\%\) & \(0\%\) \\ \hline Obfuscator LLVM & Average & \(84.38\) & \(64.80\) & \(278.08\) & \(15.63\) \\  & Growth Rate & \(74.89\%\) & \(-10.58\%\) & \(402.55\%\) & \(-72.55\%\) \\ \hline Tigress C Obfuscator (Level 1) & Average & \(47.24\) & \(70.41\) & \(109.26\) & \(52.34\) \\  & Growth Rate & \(-13.96\%\) & \(4.08\%\) & \(12.33\%\) & \(-4.03\%\) \\ \hline Tigress C Obfuscator (Level 2) & Average & \(481.89\) & \(80.90\) & \(118.47\) & \(58.01\) \\  & Growth Rate & \(486.02\%\) & \(-11.30\%\) & \(29.83\%\) & \(8.95\%\) \\ \hline Tigress C Obfuscator (Level 3) & Average & \(666.15\) & \(79.27\) & \(118.71\) & \(60.68\) \\  & Growth Rate & \(693.74\%\) & \(-9.44\%\) & \(37.45\%\) & \(15.31\%\) \\ \hline \hline \end{tabular}
\end{table}
Table 5: Results of measurement for quantifying obfuscation quality—Resilience.  
Figure 4: Potency measurement results.  
Tigress Obfuscator and Obfuscator LLVM both demonstrated increased symbolic time and analysis time. Notably, the symbolic time exhibited a markedly upward trend with the addition of options in Tigress Obfuscator, while Obfuscator LLVM led to a significant increase in analysis time. This characteristic emerges because while the Bogus Control Flows technique does not substantially impede symbolic execution, it considerably increases the number of instructions that need to be analyzed statically. Furthermore, as the Bogus Control Flows introduce a substantial amount of redundant code that is not executed, we observed that the optimization value for Obfuscator LLVM decreased notably. Regarding coverage measurements, Obfuscator LLVM decreased, whereas Tigress Obfuscator increased when we added the obfuscation options. This occurs because, although the total number of instructions increased due to the added obfuscation option, the analysis effectively addressed the increased volume of instructions.