{'fraction_non_alphanumeric': 0.02334384858044164, 'fraction_numerical': 0.0018927444794952682, 'mean_word_length': 5.076628352490421, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Analyzing the Robustness of Clone Detection Tools Regarding Code Obfuscation

Research has shown that 7% to 23% of a typical source code system consists of cloned code. Some clones are introduced intentionally, but a majority is unintenionally created. To find these clones, several code clone detection tools have been developed. They are used in several fields such as detection of software plagiarism, malware detection or code quality enhancing. However, this process is very computation intensive and takes a lot of time depending on the size of the source code. There’s a technique called code obfuscation to further complicate the detection of code clones. The aim of code obfuscation is to obscure source code fragments (in this case code clones). The purpose of this study is to investigate the effects of source code obfuscation on the performance of code clone detection tools. To this end, we conducted a case study to evaluate the robustness of these tools. For the case study, we developed an obfuscator to automatically apply several obfuscations on copies of the subject system. We then analyzed the obfuscated copies in combination with the original code with four clone detectors, each using a different technique (textual, token, AST, PDG). Our results reveal that the tokenand tree-based detection technique are robust against simple transformations, but are vulnerable against more complex ones. In contrast, the PDG-based technique is more robust against complex obfuscations. Finally, the textual-based technique showed no robustness against obfuscations at all.