StarForce C++ Obfuscator is recommended for the cases when software protection against hacking is crucial. For example for software that contains DRM keys or other sensitive data that can’t be lost. If it happens it affects both software developer and service provider and could cost them a lot of money.
This kind of software protection usually is required for end user devices that provide access to a service, for example to content or nature resource consumption. Hacker is able to crack this device using code analysis that is responsible for interaction between a DRM system and a video player (if it is a content delivery) or for data delivery to a processing center (if it is electricity or some other resource providing service).
Service providers report annually about the multi-million dollar losses resulting from fraud and piracy. In this circumstances the use of StarForce C++ Obfuscator for code protection is economically justified. This StarForce product is one of the best on the market, thanks to a large range of methods of protection and long-term work without discredit.
One of the StarForce C++ Obfuscator’s benefits is its versatility as it can be applied to protect programs designed for any operating systems and any processors, including protection of firmware.
Protection from the loss of
standard DRM keys
Standard DRM systems such as AACS and HDCP are used all over the world to control access to audio and video streams. They provide private keys for each model of the user devices (TV sets, players, consoles, set top boxes). A device key leak leads to pirate content distribution and as a result the discredited key is revoked by the DRM. After that the device stops working and a producer needs to get a new key and pays a lot of money for it. Sometimes, a producer may have a penalty for a device key leak, or its license may be suspended.
StarForce C++ Obfuscator provides protection for the software that is responsible for video/audio streams delivery and use. After obfuscation the code that is working with DRM keys is reliably protected against analysis and reverse engineering.
Protection of measuring equipment (meters) against
analysis and reverse engineering
The prices for the resources are constantly increasing all over the world. Consequently, consumers do not want to pay the total cost for the resources and more often cheat the service providers. Modern Internet technologies provide readings the data from the meters remotely and sending them to the data processing centers over the network. Dishonest consumers crack the measuring equipment and substitute the consumption data. The losses of the service providers are estimated at billions of US dollars.
StarForce C++ Obfuscator allows significantly increase the complexity of reverse engineering for measuring equipment software, and thereby reduce the likelihood of tampering.
Protection from cracking of Conditional Access System
for satellite and cable TV
Conditional Access System (CAS) is used in telecommunication industry to limit access to TV channels. It works the following way: TV channels are delivered encrypted and only subscribers who paid the service have a key to decrypt content. Decryption is performed on a user device – set top box (STB). If a hacker could analyze the software and using reverse engineering extract the key he is able to emulate a card (if it is a card CAS) or make a custom firmware to get illegal access to the content. And what is worse he may publish emulated software on the Internet for mass distribution.
StarForce C++ Obfuscator provides reliable protection against analyses and reverse engineering for firmware that is used in STBs. It helps to decrease the number of pirate connections to satellite and cable service providers.
Protection of a standard
DRM client side
The front end of any DRM system, for example OMA DRM, is vulnerable to the attacks that include reverse engineering, modification and protection disabling. Depending on the DRM, an attack can result in compromising either a certain protected object or all of the protected objects of the user, or all of the protected objects in the system.
StarForce C++ Obfuscator allows reducing the risk of DRM cracking due to significant increase of the reverse engineering complexity. How the obfuscator should be used (i.e. what should be obfuscated and how) depends on the system’s parameters. To get the optimal solution, please, consult StarForce technical team.
Securing the implementation of custom DRM
from reverse engineering
The development of custom DRM is a costly task. If the developer decides to do it, he should in any case solve the problem of securing the DRM code that works on the end user side, from reverse engineering. The developer faces two problems in this case:
Man-hours for creating an efficient protection against reverse engineering are significant.
There is a risk that protection against reverse engineering may not be efficient enough.
StarForce C++ Obfuscator enables the developers to save time for the development of a system that protects DRM against reverse engineering. Using StarForce C++ Obfuscator provides a high efficiency level that is known in advance. The developer estimates the level of efficiency when he decides to buy the obfuscator on the basis of the analysis of the obfuscation results.
StarForce C++ Obfuscator is a stand-alone application protected from copying with the help of StarForce ProActive for Business.
For obfuscation unprotected CPP files are used. In the files the methods with the code that should be protected against reverse engineering are marked with special attributes. The result of the obfuscation is also CPP files but the selected methods in them are obfuscated.
How to use StarForce C++ Obfuscator:
Install the obfuscator. No special operations are required. Just unpack the archive with the obfuscator to any folder on a developer’s computer.
Activate the obfuscator. Run the omniform.exe executable file without any parameters, enter the serial number and activate the product.
Perform test obfuscation. To do that please:
Create the test_input.cpp file with the following contents.
__attribute__((obfuscate(0))) int f1( int a, int b )
if( a > b ) return a;
else return b;
Run the obfuscator with the obfrun.exe test_input.cpp test_output.cpp command.
Make sure that the test_output.cpp file contains the obfuscated code.
Prepare the source files for the obfuscation by adding the obfuscate attribute before the required methods. The simplest way to prepare the files is described above; see user guide for details on how to prepare the files.
Customize the obfuscator to work with the required compiler by editing the configuration files.
Run the obfuscation using command obfrun.exe.
Compile the obfuscated files.
Test the compiled application and make sure its functionality is equivalent to the one from non-obfuscated files.
To make the obfuscator easier to use, it should be integrated into the application build process during the development.