07.12.2017, 16:48
I thought I already posted this somewhere (though it might have been in a since deleted thread because of the subject matter).
Protecting models cannot work. The only way to deal with stolen work is a robust reporting and blocking system - keep your source models and images to prove that you are the original author in cases of disputes (and be sure that it really IS your model, not just a similar one - how different are two whitehouse models (say) really going to look?) Why can't it work? The most popular two suggested "solutions" are:
1) Not downloading the data to the client. Cannot possibly ever work! This means you want the client's game to render and display something they don't have. Think about that for a minute because I'm not going to go any deeper in to this than that.
2) Encrypting the data. Also cannot work. In short, because at some point the client must decrypt the model to display it. This means the client must have the code and keys for the decryption. This means the encryption is totally pointless - if I encrypt something, give it to you, then also give you the way to decrypt it, in what way does it remain safe? You can encrypt the model while it is transferring - this is what already happens if you deliver them over HTTPS, but once they arrive at the client they are stored unencrypted. You can store them encrypted on the disk, and only decrypt them when the game starts, but I already explained that if someone has the game, they have the decryption code right there for use. In fact they don't even need to re-use the decryption code, they can pull the data straight out of memory.
I know the next argument as well - reusing code, or pulling stuff out of memory is hard and not everyone can do it. No they can't. But how long do you think it will take before a one-click tool to do it all for you is released?
3) Use a custom model format. Yes, it is different to the one used by San Andreas, but it would be the same format used by every other SA:MP server, so stolen models in the new format would work just fine.
4) Some advanced method like protected memory or a virtual machine to hide the information from other tools. Would also hide the data from the game, and the moment the models need to be rendered, they need to be seen. Plus, that (if even possible) would only work on the most modern of processors (like Ryzen level modern).
Here is the fundamental problem with what you are asking:
Please give us a way for clients to show our custom models, without clients being able to read our custom models. Showing them requires reading them first.
And ZaikerH: What exactly do you think being English has to do with anything? Why is it that you accuse us specifically of being somehow "against" protection? Protection is good, and we are not against it, it just also happens to be impossible and we know that.
Protecting models cannot work. The only way to deal with stolen work is a robust reporting and blocking system - keep your source models and images to prove that you are the original author in cases of disputes (and be sure that it really IS your model, not just a similar one - how different are two whitehouse models (say) really going to look?) Why can't it work? The most popular two suggested "solutions" are:
1) Not downloading the data to the client. Cannot possibly ever work! This means you want the client's game to render and display something they don't have. Think about that for a minute because I'm not going to go any deeper in to this than that.
2) Encrypting the data. Also cannot work. In short, because at some point the client must decrypt the model to display it. This means the client must have the code and keys for the decryption. This means the encryption is totally pointless - if I encrypt something, give it to you, then also give you the way to decrypt it, in what way does it remain safe? You can encrypt the model while it is transferring - this is what already happens if you deliver them over HTTPS, but once they arrive at the client they are stored unencrypted. You can store them encrypted on the disk, and only decrypt them when the game starts, but I already explained that if someone has the game, they have the decryption code right there for use. In fact they don't even need to re-use the decryption code, they can pull the data straight out of memory.
I know the next argument as well - reusing code, or pulling stuff out of memory is hard and not everyone can do it. No they can't. But how long do you think it will take before a one-click tool to do it all for you is released?
3) Use a custom model format. Yes, it is different to the one used by San Andreas, but it would be the same format used by every other SA:MP server, so stolen models in the new format would work just fine.
4) Some advanced method like protected memory or a virtual machine to hide the information from other tools. Would also hide the data from the game, and the moment the models need to be rendered, they need to be seen. Plus, that (if even possible) would only work on the most modern of processors (like Ryzen level modern).
Here is the fundamental problem with what you are asking:
Please give us a way for clients to show our custom models, without clients being able to read our custom models. Showing them requires reading them first.
And ZaikerH: What exactly do you think being English has to do with anything? Why is it that you accuse us specifically of being somehow "against" protection? Protection is good, and we are not against it, it just also happens to be impossible and we know that.
