This is definitely a clear threat for software producers and thus to global economy.
Global piracy rate has increased 40% over the past years and nearly $11 billion is lost. With more than half of million developers with some level of access to .NET reengineering tools providing near instant access to source from any .NET binary, organizations across industries are entrusting on obfuscation to managing these risks. Over the years, several software protection techniques have been developed, code obfuscation is one of them and it is very promising.Unauthorized access to source code can offer a quick back entrance into your systems, business processes and revenue streams.
If the control flow is not understood, it is difficult to determine the true content of the message.Also, the control flow is critical to determining the intent of the program. This method changes the called function before running the target program. Another technique is the COOPS (Control Flow Oriented Obfuscation Scheme), which changes the control flow structure of the program. However, this method is easily susceptible to dynamic analysis of the program. Because of this, the original version is difficult to interpret with the human eye. In this case, the obfuscated version is influenced by the dynamic analysis, which causes the obfuscated calling relationship to change. This change is very effective because it enables reverse analyzers to face more abstract functional units. Moreover, it improves the resistance of the software against similarity analysis techniques.
It is important to remember that obfuscation algorithms affect the program's semantics as well as the calling relationship. Another technique is a technique called the bogus function calling graph. COOPS starts from the semantics of the program and transforms it into an interfunction call flow graph.