Software piracy has become the scourge of our times. We are downloading from Internet everything:
The worst is that the Polish society accepts that behaviour. A few years ago, the normal situation was to install illegal OS by computer shops when you purchase PC. Due to larger number of controls that behaviour has been stop. There was too much to lose by shops.
Right now similar situation is with mobile applications. Sometimes I am surprised that people can spend over than an hour to find somewhere app that cost 1 euro. What is more strange, people can pay for access to that illegal content, instead of paying for app.
Right now in case of Windows Phone situation is quite ok. At the beginning of Windows Phone Store users could install paid applications without paying. There were even free applications that could download app from Windows Phone Store, change to full version and install on phone. Right now it is not possible. Microsoft have introduced XAP encryption.
The piracy issue has the other side. Instead of stealing applications by users, developers can steal the code and publish similar app. Right now you can get for free good tools for revers engineering. For example you can use dotPeek for decompiling application.
After that you just need to copy obtained source code to Visual Studio and compile it. Grrrr…. Our weeks of work will be easily changed into minutes…
I will be honest with you. For me it is ok if you follow other applications when you are preparing your own one. Even more – this is the first thing I am doing when I have a new idea. I am checking if somebody has already published application similar to my idea. If yes – I am installing all similar apps and making list of thing that are good or bad. Then after that analyses I decide if I should start development process. Sometimes I decide not to start work on my idea. There are already quite good applications in Windows Phone Store and there is no purpose to make another clone. But I never copy somebody’s code – [mark]this is totally unfair[/mark].
You need to obfuscate your code to secure for that situation. Unfortunate you will not find any free and universal tool that can be used to secure all of our projects. Because of that I have started to use Babel Obfuscator. After small research I decided that this tool will be suitable for me – the price and features were ok for me.
I hope that everybody is aware that this tool cannot guarantee 100% protection of our software. It can only increase difficultness of reverse engineering. In most cases it means that you need to spend more time to get the code from application. And that is the point. We should increase that time to level that reverse engineering will be unprofitable.
Obfuscation of our app in Babel Obfuscator is really easy. You just need to add our application to Babel Obfuscator and select some options that you would like to use. And that is all. You can see whole process on screens below:
As a result you will get obfuscated application:
As you can see, it is not so easy to get know what that method is doing. Names have been encrypted and the flow of application has been also changed.
Of course you can get code from such protected application. It is not a big issue. The problem is that it is really hard to guess what that code is doing.
And for me – the person who treat creation of application as a hobby – the Babel Obfuscator is enough. It is doing what it should. Of course that there are more expensive application with additional features but we should consider if we really need those features.
Or maybe you can recommend me application for obfuscation that should I try?