The Unity3D is a cross-platform game engine developed by Unity Technologies. It was first announced and released in June 2005. As of 2018, the engine had been extended to support more than 25 platforms. Unity3D engine can be used to create the 3D/2D video game, the visual construction project, virtual reality projects, and augmented reality games, as well as simulations and other experiences. The engine has been adopted by industries outside video gaming, such as film, automotive, architecture, engineering and construction.
With unique and rich feature available in cross platform, highly efficient development environment, language and tools, rich plug in unit and easy to use features; the Unity3D has become popular engine in many industry.
The C# language has been used to develop the Unity 3D application, and use the .NET frame, the mono runtime used to be the interpreter and execute the Unity3D application. Which extremely enhance the application execution efficiency. Together with some potential security issue at same time.
The core assembly file of Unity3D, Assembly-CSharp.dll, is the standard .NET file format. With rich metadata information, includes, method name class names, class definition etc, if hacker use some of tools, such as DnSpy, it will quite easy to them to decompiled, tampered the code logic, algorithm, and all method names, class names will be exposed.
When the core logic and algorithm has been de-compiled, it is quite easy to generate the different kind of cheating plug in tools and sell online to some game users, with these plug in tools, the gaming user may get the game rule, modified code to acquire special power, life, maximum vision, increase the accuracy for shooters, etc., it will bring some cheating behaviors and cause revenue loss due to the leaking the code logic and algorithm.
The resource file, data, picture, animation, etc, which take a lot of cost, effort invested by gaming developer or industry software developer, will be archived to be a "Asset Bundle" file with Unity editor in compiling stage. The "Asset Bundle" file is open compressed file format and use the Asset Studio to parse, illustrate and extract the resource.
For Unity 3D gaming, especially for the multiplayer online game, some of sketch modeling, scenario in gaming also spent lot of time, money to invest by developer. These resource also need to be protected by developer, otherwise it is also easier to be copy and re used to develop for second developed for other similar game or industry software. In some instance, it may cause un-predictable loss to industry software vendors.
Following protection and security technology has been combined and used to protect the U3D application and dramatically enhance the security level of protected U3D application.
Encrypt the dll, every method of the assembly will be protected by Virbox Protector; some of protector use this way to protect the U3D assembly, to encrypt all of dll, and use the load functions in the hookmono: mono_image_open_from_data_with_name, to decrypt, the weakness to this encryption mode is too simple and not secured. The plaint text will be exposed by memory dump when decrypted.
For Virbox Protector, encrypt every method of the dll, assembly, only one method will be decrypt every time, and decrypt it to memory in random address to make sure the protected code can not be dumped in memory, and then with the unique binary instruction block compiling and linking technology, all of your critical code, logic will be obfuscated and virtualized dynamically to enhance security to the protected code and your IP.
Before Protection:
After Protection:
Virbox Protector supports to protect and encrypt the Resource which to protect the U3D application resource. Use the DSProtector, a plug in unit, to protect and encrypt the .resS and resource files. To prevent these resource file from crack and for illegal use. Usually, these resource file also take a lot of effort and investment by software developer. It need to be protected together your code, and key algorithm logic also.
Virbox Protector provides anti debug function to protect U3D application, it will detect the if debug tool existed when protected U3D application executed. And quit the application in case debug tools detected to prevent the hacker to debug your U3D application. With this anti debug function, it provides the developer with dynamic protection function to defense the hacker attack when the software be installed in user premise.
For more detail process how to use Virbox Protect and DS Protector to protect the Unity3D program, you may take a reference from the U3D user manual. Or contact us for detail @ info@senselcok.