PDA

View Full Version : Storing Private Data on Node...


U.S.S. Speed
01-03-2008, 03:09 AM
[RE-EDIT] Well, I tought I had found the solution to the problem... But nope. Is it possible to store data on a node without it being deletable by error? AppData can be cleaned by a single command. Custom Attributes are stored like an array, and can be deleted quite easily without even knowing their name.

Gravey
01-03-2008, 03:46 AM
EDIT: to answer you question before you edited your post:
Unfortunatly I dont think so but as an alternative you could try using node user properties.

U.S.S. Speed
01-03-2008, 03:56 AM
EDIT: to answer you question before you edited your post:
Unfortunatly I dont think so but as an alternative you could try using node user properties.

I was thinking Custom Attributes... but nope. Too easy to delete.

User properties seams also quite easy to erase... Right?

Gravey
01-03-2008, 04:17 AM
yea i guess so. I'm not sure what you're trying to do exactly but my next suggestion would be to use and ini file. If you're able to share some more info about your aim it might help to find an alternative

U.S.S. Speed
01-03-2008, 04:43 AM
yea i guess so. I'm not sure what you're trying to do exactly but my next suggestion would be to use and ini file. If you're able to share some more info about your aim it might help to find an alternative

I want to make a watermarking script... :)

So, the being able to delete or modify the variables is bad. :D

Gravey
01-03-2008, 05:37 AM
maybe try looking into writing it as a scripted plugin ?

U.S.S. Speed
01-03-2008, 05:52 AM
maybe try looking into writing it as a scripted plugin ?

It's not how to write it... But where to store the variables in a way they can't be easily deleted or modified. Unless I don't understand what you mean?

Bobo
01-03-2008, 09:50 AM
[RE-EDIT] Well, I tought I had found the solution to the problem... But nope. Is it possible to store data on a node without it being deletable by error? AppData can be cleaned by a single command. Custom Attributes are stored like an array, and can be deleted quite easily without even knowing their name.

Max is not a secure system. Unless specifically implemented in C++ (like the lockable DataFlows in PFlow Box #3 for example), you really cannot hide data because it would be a disaster in a production pipeline where anyone can lock something and other people would be screwed. So the concept was never implemented - the Max community is small enough to assume people play nice with each-other. If you don't want somebody to see something, you don't give it to him. ;)
You can "hide" data in AppData and only if somebody is looking for it would find it, since the number of possible "slots" is equal to the number of possible 32 bit integers. If you stored data at an arbitrary position in AppData, only someone knowing the address or actually running a for loop to check every single address would find it. So in a way, AppData is the best place to "hide" watermarks, but there is no way to protect the data against someone who is determined to find it. Also note that AppData can be stored in any OBJECT, including controllers, materials, modifiers, you name it. But all these can be removed, so persistency is not given.

So in short, Max does not provide any means for secure watermarking.

U.S.S. Speed
01-03-2008, 04:27 PM
Max is not a secure system. Unless specifically implemented in C++ (like the lockable DataFlows in PFlow Box #3 for example), you really cannot hide data because it would be a disaster in a production pipeline where anyone can lock something and other people would be screwed. So the concept was never implemented - the Max community is small enough to assume people play nice with each-other. If you don't want somebody to see something, you don't give it to him. ;)
You can "hide" data in AppData and only if somebody is looking for it would find it, since the number of possible "slots" is equal to the number of possible 32 bit integers. If you stored data at an arbitrary position in AppData, only someone knowing the address or actually running a for loop to check every single address would find it. So in a way, AppData is the best place to "hide" watermarks, but there is no way to protect the data against someone who is determined to find it. Also note that AppData can be stored in any OBJECT, including controllers, materials, modifiers, you name it. But all these can be removed, so persistency is not given.

So in short, Max does not provide any means for secure watermarking.

Thanks Bobo. Helps a lot.

CGTalk Moderation
01-03-2008, 04:27 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.