Security of .pak files

Thank you a lot for your answer and explaination !

So in this case, I will look deeper on how I can modify the source as you explain me and find a way to have something less obvious so people will not be able to cheat like this.
And thank you for the other answer about the performance. :slight_smile:

Hello everyone,

I did some research about how to export my game and reduce the chance that some people manage to unpack it.

Please, tell me if something is wrong in what I will say.

I now that I can just reduce the chance that someone manage to unpack my game. I can’t totally avoid it.

To reduce the chance, I can choose to encrypt my pak files when exporting my game. I can choose to encrypt only index or all my pak files. In what I read, it seems like encrypt all of them will reduce the performance of my game.

  1. When they say it reduces the performance, is it only at launch, or anytime ?
  2. What it will change to encrypt only the index or all the pak files ? I mean, for security puproses, will it be really better to encrypt all ?

After some more research, I found that encrypting the .pak will only give less chance for common people to unpack my game, because they need the key to unpack it using the unreal engine pack tool. But I found a tutorial of a person that explain how with some reverse engineering we could obtain this key.

I was sure that it was possible for some people to do it, but I really surprise me that it was so much easy… (I don’t say that everyone can do it, but honestly it is not really complicate even for me…). The main problem is that the tutorial is available for all, so even people that haven’t too much knowledge could manage to do it…

All of this is due to the fact that the Unreal Engine source code of each version is available for all (I don’t say it is bad, it is normal since it is for everybody).

3.Is there a way to secure it better ?

I think that if I modify a bit the UE souce code, it would be more safe for my game. If I change the way of how the encryption key are get it would be better, but it is not so easy to do it I think (I didn’t look at it for the moment).

I really thank you for your help and advice about all of this.

I hope I will find a good way to secure it (at least a little).

All the best !

I also looked into this.

The only point in encrypting pak files is to stop people stealing and re-using your assets. It wont stop people stealing or copying the game.

The system detailed online for finding the encryption key relies on having the engine source. If you want to stop people doing this all you have to do is build your engine from source and change the part that de-crypts the pak files. Just change the code to a non-obvious method, like have the key split into chunks in an array ( for instance ) and re-constitute it before decrypting.

As long as the source in that area of the engine is nothing like the publicly available source, people wont be able to reverse engineer it.

EDIT: As far as performance goes, it doesn’t really matter, as the encryption is done in one shot before everything starts ( I assume ).

1 Like