Community
3ds Max Programming
Welcome to Autodesk’s 3ds Max Forums. Share your knowledge, ask questions, and explore popular 3ds Max SDK, Maxscript and Python topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Protecting Maxscript

19 REPLIES 19
SOLVED
Reply
Message 1 of 20
MehdiZangenehBar
4703 Views, 19 Replies

Protecting Maxscript

Maxscript encryption or dll are not safe, How we can protect maxscript by using SDK?

19 REPLIES 19
Message 2 of 20

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. 

Paul Neale

http://paulneale.com


Paul Neale




EESignature

Message 3 of 20

So, How we can make plugins commercial?

Message 4 of 20

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. 

Paul Neale

http://paulneale.com


Paul Neale




EESignature

Message 5 of 20
dimok135
in reply to: MehdiZangenehBar

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.

Message 6 of 20
dimok135
in reply to: dimok135

Sorry, the link was broken. The correct link to plug-in: http://www.turbosquid.com/FullPreview/Index.cfm/ID/1089390?referral=crea3d

Message 7 of 20

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

 

 

 


Kevin Vandecar
Developer Technical Services
Autodesk Developer Network



Message 8 of 20

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.

Message 9 of 20
dimok135
in reply to: dimok135

The only solution I know for now for those who write in maxscript is this plugin.

Message 10 of 20
denisT.MaxDoctor
in reply to: dimok135


@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.

Message 11 of 20
istan
in reply to: denisT.MaxDoctor

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.

Message 12 of 20

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?

Message 13 of 20

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?

Message 14 of 20
denisT.MaxDoctor
in reply to: dimok135


@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

Message 15 of 20

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.

Message 16 of 20
nigel.hunt
in reply to: miklos.gabor

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

 

 

 

Message 17 of 20
dimok135
in reply to: denisT.MaxDoctor

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.

Message 18 of 20
miauuuu
in reply to: dimok135

Can you show any example - ms file and protected file using Maxscript Protector?

https://miauu-maxscript.com/
Message 19 of 20
miauuuu
in reply to: miauuuu

Copy - paste from scriptspot.com about Maxscript Protector:

Originally Posted by Submitted by 3DZver on Mon, 2018-01-29 16:06.: Submitted by 3DZver on Mon, 2018-01-29 16:06.
Maxscript Protector absolutely non-working toolI read a lot about Maxscript Protector. Basically bad reviews, and if there were praise comments - then these comments post the developers
themselves. I did not regret money and purchase this script specifically
to check how it works. None of the scripts I tried to protect with this
tool, and did not work after that. I wrote to the authors of this
script and reported on, but they did not even bother to answer.
My verdict: Maxscript Protector absolutely non-working tool and I do not advise anyone to buy it.
https://miauu-maxscript.com/
Message 20 of 20
MehdiZangenehBar
in reply to: miauuuu

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.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report