File encryption for the HTML version

I have a question. Are there any plugins that will allow me to encrypt my game files for the HTML version ? In my game I have some of my arithmetic functions that affect the outcome of the game and I would like to make it as difficult as possible to debug them.

1 Like

Have a look at this manual on application security:

It covers topics such as Lua obfuscation and resource archive encryption.

2 Likes

I have a question about the resource coding process.

1 I followed all the steps described here https://github.com/defold/extension-resource-encryption

a) I changed the key
b) I did a compilation to get the pluginCustomResourceEncryption.jar file
c) I packaged the entire “extension-resource-encryption” project, put it on the local server and added it to game.project.
d) I ran the standard “Project - > Fetch Libraries” but the module did not add to my project. Is this correct ?
e) How can I verify that my files have been encrypted with an extension and not with standard encryption ?

d) I ran the standard “Project - > Fetch Libraries” but the module did not add to my project. Is this correct ?

If it doesn’t show up, under a resourceencryption folder in your project, then it seems your dependency link is wrong somehow.

e) How can I verify that my files have been encrypted with an extension and not with standard encryption ?

You can change the source key in the resourceencryption/src/plugin.cpp to something else, and then it shouldn’t load properly, since the Lua source will be garbled. And if you change it back, it will load again.

1 Like

The game.project file didn’t have the correct library folder defined. I’ve fixed it now. Please update your copy of the project.

2 Likes

Just when I booted my test, it worked :slight_smile:

2 Likes

@britzl @Mathias_Westerdahl

I’ve been playing with it for more than 2h and noticed the following thing:

(a) if I change ONLY the key in “CustomResourceEncryption.java”, compile, add the module to the project - the project (HTML5) starts correctly

b) if I change ONLY the key in “plugin.cpp”, compile, add module to project - project (HTML5) does not start correctly

c) if I change the key in both “CustomResourceEncryption.java” and “plugin.cpp”, the project does not start, in the console I have such errors as in the screenshot.

Are you able to help me something with this ?

Sounds strange. Could it be that you have cached files between your tests and bundle with the wrong archive?

1 Like

Hmmmm you may be right. I’ll check

@britzl You’re right. ! Thanks ! Looks like it’s OK

1 Like

I am currently using extensions : “extension-prometheus” and “extension-resource-encryption”.
I am looking for solutions as to how else the game can be better secured.

In the security article you wrote:

…"Defold does not provide any anti-cheat solutions in the engine or tools and instead defer any such work to one of the many companies specialize in providing anti-cheat solutions for games. "…

Can you write more about these companies and their solutions ?

You will get quite a few hits if you search for “anti-cheat framework” or “anti-cheat solution”. I know that Epic Online Services has an anti-cheat tool. There is also Anybrain which we actually met with at Develop in Brighton last year. Their system looks pretty good and the SDK seems to be relatively straight-forward to implement as a native extension.

1 Like

Thank you. Yes, I found various solutions this way, but not a single one had a plug for Defold. That is why I took the liberty of asking

1 Like