Abstract:
A method to quantitatively evaluate the robustness of the obfuscated software is proposed in order for programmers to make a choice in different obfuscating schemes. This method aims to measure software robustness during the obfuscating transform from software complexity change and the increase of code functional obscurity, which are relatively independent, each other. First, a system complexity model is constructed from the perspective of system complexity and the diversity of software information. The model contain such elements as software structure, information flow, branch, and loop at nested level, and tries to reflect the robustness from the obfuscating transform on the complexity level. Second, to quantitatively measure the functional obscurity for the obfuscating transform, the experts index score constructs a model for a single transform is constructed by the experts index score. On this basis, transform obscurity composition models for multiple transforms are proposed. Next, the paper describes how applying these two kinds of models can be used to evaluate whether an obfuscating technique is effective, and can sort the given obfuscating scheme set to choose the best one. Also, some examples and corresponding model algorithms are given. Finally, an instance simulation demonstrates in detail the work process for the proposed models.