Maxscript encryption or dll are not safe, How we can protect maxscript by using SDK?
Solved! Go to Solution.
Solved by kevinvandecar. Go to Solution.
You can't, everything can be cracked. Autodesk spends millions I'm sure on licensing and it isn't 100% secure. Problem is you can spend more time and money trying to protect your tools then you would loose in loses if you just didn't bother.
Encrypt the Max script if you want to sell it and create a simple licensing system or just sell it. If it is a huge success it will be cracked, there is no way around that. But companies and people that are not theifs will purchase it.
I've found a great plug-in for maxscript protection. It can be helpfull: http://www.scriptspot.com/3ds-max/scripts/maxscript-protector
Mse is not the only way of encryption.
Sorry, the link was broken. The correct link to plug-in: http://www.turbosquid.com/FullPreview/Index.cfm/ID/1089390?referral=crea3d
Yes, I agree with the others here. MAXScript is a scripting language, so in itself it is not possible to perfectly encrypt it.
To answer the commercial question, if you really want the best security, use the C++ SDK. It produces a native DLL that is very hard to crack. This is what many commercial developers do with at least the core functionality. Also remember that a C++ plugin can expose it's functionality to MAXScript and so you might consider just moving your most important IP into a C++ plugin, and then call it from some of your less critical MAXScript code.
As Paul mentioned nothing is 100% secure, but in C++ it is as close as you can get, and it takes deep understanding of binary and assembly code to crack a native DLL. So your best option is to put your important IP there, and then nothing "extra" is needed for encryption. Of course C++ itself can be much harder to code in, so it's a trade off (but you may also gain some performance, depending on what you are doing...). 🙂
Hope it helps,
kevin
I just created this topic two years ago , but useful Thank You!. although I'm not a professional C++ programmer, but C++ works very well in this situation. After thinking about the protecting concepts, I realized (as paul said) that spending a lot of time on protecting the MaxScript is not a good idea and I must focus on coding, promote and support.
The only solution I know for now for those who write in maxscript is this plugin.
@Anonymous wrote:
The only solution I know for now for those who write in maxscript is this plugin.
Using this solution, you lose the opportunity to use your customers as free testers, which for real developers saves a lot of time and money.
I don't use this protection but why would I loose my customers for beta testing? I'm sure one can create a beta testing time by using e.g. crazy registry access for creating many weird keys which makes it almost impossible to be narrowed down, for the case someone uses procmon.
Denis, I'm so happy that I see you in this forum also, I really appreciate it.
I didn't get your point, why we loose them?
the encryption tool with the link above is nothing more than an obfuscater.
it screws all original lines of code and property and function names. in case if this "encrypted" code crashes you will not get any clue where it was happened.
you will get from your client just a message - "your code crashes" and maybe sad smiley at the end
....
how to debug it?
@Anonymous wrote:
The only solution I know for now for those who write in maxscript is this plugin.
don't buy this tool!
it's a fake! it doesn't work
Other not perfect solution is to write certain parts of your code in c# if you don't want to get deep into the C++ SDK. It's also not a perfect solution, you have to use a defuscator here as well, but it's still safer than the maxscript version. Also maxscript can be simply decrypted using free tools over the internet.
C# is a bit harder to decrypt, but not as complicated as learning c++. Also the c# version is version independent in many cases, so you don't have to ship per version dlls. And of course it's much faster than the maxscript version.
I realized over the years that using maxscript is getting more and more old school, you have to do a lot of workarounds to make things work, as well as there are many cases where there are very nasty memory leaks. It's worth the time to learn c# and the max sdk.
I've read this thread and thought I'd jump in.
If you really have a great Maxscript you want to protect, it needs to be rewritten in C++ and compiled as a plugin.
SiNi Software offers a custom service to write this...
https://www.sinisoftware.net/index.php?option=com_content&view=article&id=36&Itemid=526
SiNi have 11 plugins and over 150 tools for 3ds Max 2014-2018. The tools started out as Maxscript and were rewritten in C++ (over 3 million lines of code in 2 years!). The plugins are tied to a licence server for extra security.
The developers also writes bespoke Maxscript for some of the largest companies in the world using 3ds Max.
For public release, C++ is your only choice.
Regards,
Nigel
denisT.MaxDoctor, It's absolutely not a fake. If you have this plugin, update to version 2.1.2. Some issues solved there, now everything works fine in all 3Ds max versions.
Can you show any example - ms file and protected file using Maxscript Protector?
Copy - paste from scriptspot.com about Maxscript Protector:
If we want to use external protector, I think this is not only about MaxScript, Actually we need a more general and stronger protector that works also for all other software packages. The main goal for me to protect MaxScript is not just my source code (Actually I can share it online if someone ask me!). but managing registrations become important (because I earned money from customers). So I think a C++ and exposing some necessary MS inside it should be enough.