Unity3d Obfuscator Keygen Free
Apr 12, 2014. If you're an indie developer, you make your game on your free time and you don't have too much time to spare on the security part of your game because you probably trust the. Here we come with a tool named 'Unity3D obfuscator', this tool allows us to unpack any web player files generated by unity.
We are building a Unity3D plugin. Any game that uses our plugin, when built for some platform also includes our plugin in a form of a dynamic library for that platform. For example, when Android apk is exported from Unity, it will contain our library xyz.so. The library is written in C++.
How can we protect our dynamic library from being stolen? It seems that anybody could 'unzip' an apk Android package, take our library, get exports, take documentation from our free trial, and finaly use the library without being a licensed customer. Are there protection models that are recomended in this use case?
1 Answer
Well, even though it's much harder than with Managed Code, C++ code can be disassembled and thus broken. This however is hard work and only worth it if you have a great mass of consumers. People with such skills will much rather hack the most recent popular AAA game, than wasting their time with a third party Unity library.
This being said: yes you should be able to protect your library.Just have a license key validator in your C++ library. The library refuses to work until it has been presented a license key that it was able to successfully validate.
The license might be
where key
can be used by you to identify the owner of the key, and also by the library to ensure that the license only works for Apps with that specific App-Identifier. verification
is a hash of key
signed with a private key only you know. The matching public key is known to the library and can be used to verify that the license was created by you, and only you.
If you have this code in your library and obfuscate your code using c++ obfuscation tools you should be quite safe. If you don't obfuscate, you should still be quite safe actually.
Edit: you can even do trials with this model. Just add a License-Expire-Time to the key
and your library can stop working when that time has passed.
One possible implementation might be:
A file containing both the key
in cleartext (so that your code and if so desired even a human can read and understand it) and also containing the signed hash (hash of the key
, encrypted with your private key).
The code would read the key
and calculate its hash using the same hash algo. It also would decrypt the signed hash using the public key. If both hashes are the same, the code can be sure that the key
is valid and can progress to checking its contents: is the key
not expired (Expire-Time), is the key
meant for this specific app (App-Id), etc etc.